summaryrefslogtreecommitdiff
path: root/tp/maintain
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-09-26 23:06:02 +0000
committer <>2015-02-03 11:56:22 +0000
commite0b511b834f3529395df67126a7314097c2cf97e (patch)
tree89945ae53183ab2acdc61659c8b0b3e57e4a1f3a /tp/maintain
parent2d8ae7b161658c4a589172db0072fc99f76fa979 (diff)
downloadtexinfo-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_texinfo-tarball/texinfo-5.2.tar.xz.HEADtexinfo-5.2master
Diffstat (limited to 'tp/maintain')
-rw-r--r--tp/maintain/MANIFEST_generated_files89
-rw-r--r--tp/maintain/Makefile_perl_po94
-rwxr-xr-xtp/maintain/all_tests.sh59
-rw-r--r--tp/maintain/catalog.xml.in5
-rwxr-xr-xtp/maintain/change_perl_modules_version.sh13
-rwxr-xr-xtp/maintain/clean_perl_module_files.sh9
-rw-r--r--tp/maintain/language-subtag-registry45337
-rw-r--r--tp/maintain/lib/README12
-rw-r--r--tp/maintain/lib/Text-Unidecode/ChangeLog13
-rw-r--r--tp/maintain/lib/Text-Unidecode/MANIFEST188
-rw-r--r--tp/maintain/lib/Text-Unidecode/MANIFEST.SKIP3
-rw-r--r--tp/maintain/lib/Text-Unidecode/Makefile.PL20
-rw-r--r--tp/maintain/lib/Text-Unidecode/README98
-rw-r--r--tp/maintain/lib/Text-Unidecode/TODO.txt103
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode.pm432
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x00.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x01.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x02.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x03.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x04.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x05.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x06.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x07.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x09.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x10.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x11.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x12.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x13.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x14.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x15.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x16.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x17.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x18.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x20.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x21.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x22.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x23.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x24.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x25.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x26.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x27.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x28.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x30.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x31.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x32.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x33.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x50.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x51.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x52.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x53.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x54.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x55.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x56.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x57.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x58.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x59.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x60.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x61.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x62.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x63.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x64.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x65.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x66.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x67.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x68.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x69.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x70.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x71.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x72.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x73.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x74.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x75.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x76.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x77.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x78.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x79.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x80.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x81.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x82.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x83.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x84.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x85.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x86.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x87.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x88.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x89.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x90.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x91.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x92.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x93.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x94.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x95.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x96.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x97.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x98.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x99.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9a.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9b.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9c.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9d.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9e.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9f.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa0.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa1.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa2.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa3.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa4.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xac.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xad.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xae.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xaf.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb0.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb1.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb2.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb3.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb4.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb5.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb6.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb7.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb8.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb9.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xba.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbb.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbc.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbd.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbe.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbf.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc0.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc1.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc2.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc3.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc4.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc5.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc6.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc7.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc8.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc9.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xca.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcb.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcc.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcd.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xce.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcf.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd0.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd1.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd2.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd3.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd4.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd5.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd6.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd7.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xf9.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfa.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfb.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfc.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfd.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfe.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xff.pm20
-rw-r--r--tp/maintain/lib/Text-Unidecode/test.pl96
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/Changes58
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/MANIFEST17
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/META.yml22
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/Makefile.PL120
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/README77
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/SIGNATURE39
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install.pm281
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Base.pm70
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Can.pm82
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Fetch.pm93
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Makefile.pm237
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Metadata.pm336
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Win32.pm65
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/WriteAll.pm43
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/lib/Unicode/EastAsianWidth.pm516
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/t/0-signature.t27
-rw-r--r--tp/maintain/lib/Unicode-EastAsianWidth/t/1-basic.t30
-rwxr-xr-xtp/maintain/lib/libintl-perl/COPYING.LESSER515
-rw-r--r--tp/maintain/lib/libintl-perl/ChangeLog2894
-rw-r--r--tp/maintain/lib/libintl-perl/Credits40
-rw-r--r--tp/maintain/lib/libintl-perl/FAQ7
-rw-r--r--tp/maintain/lib/libintl-perl/MANIFEST390
-rw-r--r--tp/maintain/lib/libintl-perl/META.yml11
-rw-r--r--tp/maintain/lib/libintl-perl/Makefile.PL244
-rw-r--r--tp/maintain/lib/libintl-perl/MyInstall.pm43
-rw-r--r--tp/maintain/lib/libintl-perl/NEWS127
-rw-r--r--tp/maintain/lib/libintl-perl/README274
-rw-r--r--tp/maintain/lib/libintl-perl/README-oldversions10
-rw-r--r--tp/maintain/lib/libintl-perl/README.solaris125
-rwxr-xr-xtp/maintain/lib/libintl-perl/README.win32110
-rw-r--r--tp/maintain/lib/libintl-perl/REFERENCES48
-rw-r--r--tp/maintain/lib/libintl-perl/ReleaseNotes127
-rw-r--r--tp/maintain/lib/libintl-perl/THANKS40
-rw-r--r--tp/maintain/lib/libintl-perl/TODO24
-rw-r--r--tp/maintain/lib/libintl-perl/gettext_xs/Makefile.PL57
-rw-r--r--tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.pm201
-rw-r--r--tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.xs281
-rwxr-xr-xtp/maintain/lib/libintl-perl/lib/Locale/Messages.pm1027
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/Recode.pm370
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Aliases.pm749
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Conversions.pm463
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData.pm179
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ASMO_449.pm876
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST_EURO.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP10007.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1250.pm1137
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1251.pm1145
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1252.pm1137
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1253.pm1113
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1254.pm1133
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1256.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1257.pm1122
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CSN_369103.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CWI.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/DEC_MCS.pm1116
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm943
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_CA_FR.pm995
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO.pm954
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm943
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_A.pm943
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_S.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm943
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FR.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm924
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IT.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_PT.pm943
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_UK.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_US.pm953
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ECMA_CYRILLIC.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm1135
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_PS.pm1135
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GOST_19768_74.pm1091
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7.pm885
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7_OLD.pm888
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK_CCITT.pm883
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/HP_ROMAN8.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM037.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM038.pm955
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1004.pm1129
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1026.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1047.pm1148
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM256.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM273.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM274.pm955
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM275.pm955
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM277.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM278.pm1148
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM280.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM281.pm955
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM284.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM285.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM290.pm1025
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM297.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM420.pm1128
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM423.pm1127
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM424.pm1069
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM437.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM500.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM850.pm1148
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM851.pm1145
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM852.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM855.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM857.pm1141
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM860.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM861.pm1148
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM862.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM863.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM864.pm1133
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM865.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM866.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM868.pm1097
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM869.pm1130
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM870.pm1126
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM871.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM874.pm1083
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM875.pm1133
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM880.pm1127
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM891.pm890
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM903.pm890
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM904.pm897
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM905.pm1129
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM918.pm1095
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IEC_P27_1.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS.pm864
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_8.pm779
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_CYRILLIC.pm866
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_10367_BOX.pm1012
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_2033_1983.pm732
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427.pm891
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427_EXT.pm788
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5428.pm849
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_1.pm612
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_10.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_11.pm1070
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_13.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_14.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_15.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_16.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_2.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_3.pm1136
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_4.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_5.pm1149
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_6.pm1061
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_7.pm1140
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_8.pm1077
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_9.pm1150
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_R.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_RU.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_T.pm1107
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_U.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI_8.pm1015
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK.pm888
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK_1.pm890
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACARABIC.pm1094
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCROATIAN.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCYRILLIC.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACGREEK.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACHEBREW.pm1062
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACICELAND.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACINTOSH.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACROMANIA.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTHAI.pm1134
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTURKISH.pm1142
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACUKRAINE.pm1146
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_IS.pm1140
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_SAMI.pm1147
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_UK.pm1144
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_DANO.pm890
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_SEFI.pm890
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NEXTSTEP.pm1142
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/SAMI_WS2.pm1137
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/TIS_620.pm1068
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/US_ASCII.pm227
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/UTF_8.pm196
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/VISCII.pm1135
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/_Encode.pm100
-rwxr-xr-xtp/maintain/lib/libintl-perl/lib/Locale/TextDomain.pm1051
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/Util.pm1208
-rwxr-xr-xtp/maintain/lib/libintl-perl/lib/Locale/gettext_pp.pm1031
-rwxr-xr-xtp/maintain/lib/libintl-perl/lib/Locale/gettext_xs.pod109
-rw-r--r--tp/maintain/lib/libintl-perl/lib/Locale/libintlFAQ.pod258
-rw-r--r--tp/maintain/lib/libintl-perl/sample/README462
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/MANIFEST30
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/Makefile.PL54
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/README-NLS200
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/TRANSLATIONS41
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/bin/simplecal.pl105
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 995 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 810 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1053 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 497 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1012 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1061 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1029 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1014 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1027 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1037 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mobin0 -> 1017 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/lib/SimpleCal.pm136
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/Makefile97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/PACKAGE26
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/POTFILES.in2
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/ar.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/ar_SA.po91
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/de.po98
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/de_AT.po92
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/fr.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/ga.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/it.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/nl.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/org.imperia.simplecal.pot93
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/pt.po97
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/pt_BR.po91
-rw-r--r--tp/maintain/lib/libintl-perl/sample/simplecal/po/ru.po97
-rwxr-xr-xtp/maintain/lib/libintl-perl/test.pl127
-rw-r--r--tp/maintain/lib/libintl-perl/tests/00gettext.t32
-rw-r--r--tp/maintain/lib/libintl-perl/tests/00recode.t32
-rw-r--r--tp/maintain/lib/libintl-perl/tests/01trivial.t65
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02asmo_449.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02atari-st-euro.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02atari-st.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp10007.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1250.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1251.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1252.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1253.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1254.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1256.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cp1257.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02csn_369103.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02cwi.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02dec-mcs.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de-a.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-ca-fr.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no-a.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-es-a.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-es-s.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-es.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se-a.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-fr.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-is-friss.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-it.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-pt.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-uk.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ebcdic-us.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ecma-cyrillic.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02georgian-academy.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02georgian-ps.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02gost_19768-74.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02greek-ccitt.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02greek7-old.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02greek7.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02hp-roman8.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm037.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm038.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm1004.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm1026.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm1047.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm256.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm273.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm274.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm275.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm277.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm278.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm280.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm281.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm284.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm285.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm290.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm297.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm420.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm423.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm424.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm437.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm500.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm850.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm851.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm852.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm855.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm857.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm860.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm861.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm862.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm863.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm864.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm865.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm866.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm868.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm869.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm870.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm871.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm874.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm875.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm880.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm891.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm903.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm904.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm905.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02ibm918.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iec_p27-1.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02inis-8.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02inis-cyrillic.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02inis.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-1.t398
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-10.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-11.t376
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-13.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-14.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-15.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-16.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-2.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-3.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-4.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-5.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-6.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-7.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-8.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso-8859-9.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso_10367-box.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso_2033-1983.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso_5427-ext.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso_5427.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02iso_5428.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02koi-8.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02koi8-r.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02koi8-ru.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02koi8-t.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02koi8-u.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02latin-greek-1.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02latin-greek.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02mac-is.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02mac-sami.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02mac-uk.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macarabic.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02maccroatian.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02maccyrillic.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macgreek.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02machebrew.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02maciceland.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macintosh.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macromania.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macthai.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macturkish.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02macukraine.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02nats-dano.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02nats-sefi.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02nextstep.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02sami-ws2.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02tis-620.t367
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02us-ascii.t269
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02utf-8.t124
-rw-r--r--tp/maintain/lib/libintl-perl/tests/02viscii.t399
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03_tester_david_pp.t73
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03_tester_david_xs.t73
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_pp.t104
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_xs.t104
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_pp.t88
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_xs.t88
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bindtextdomain_pp.t67
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03bindtextdomain_xs.t67
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcgettext_pp.t86
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcgettext_xs.t86
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcngettext_pp.t139
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcngettext_xs.t139
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcnpgettext_pp.t143
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcnpgettext_xs.t143
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcpgettext_pp.t72
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dcpgettext_xs.t72
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dgettext_pp.t85
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dgettext_xs.t85
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dngettext_pp.t141
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dngettext_xs.t141
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dnpgettext_pp.t144
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dnpgettext_xs.t144
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dpgettext_pp.t73
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03dpgettext_xs.t73
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03gettext_pp.t91
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03gettext_xs.t91
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03language_pp.t90
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03ngettext_pp.t155
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03ngettext_xs.t155
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03npgettext_pp.t157
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03npgettext_xs.t157
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03pgettext_pp.t78
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03pgettext_xs.t78
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03textdomain_pp.t53
-rw-r--r--tp/maintain/lib/libintl-perl/tests/03textdomain_xs.t53
-rw-r--r--tp/maintain/lib/libintl-perl/tests/04find_domain_bug.t75
-rw-r--r--tp/maintain/lib/libintl-perl/tests/04scalar_noop.t54
-rw-r--r--tp/maintain/lib/libintl-perl/tests/05parse_accept.t55
-rw-r--r--tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/additional.mobin0 -> 1025 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/existing.mobin0 -> 1225 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/additional.mobin0 -> 494 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/existing.mobin0 -> 433 bytes
-rw-r--r--tp/maintain/lib/libintl-perl/tests/po/Makefile47
-rw-r--r--tp/maintain/lib/libintl-perl/tests/po/additional.de.po58
-rw-r--r--tp/maintain/lib/libintl-perl/tests/po/additional.de_AT.po16
-rw-r--r--tp/maintain/lib/libintl-perl/tests/po/existing.de.po76
-rw-r--r--tp/maintain/lib/libintl-perl/tests/po/existing.de_AT.po16
-rwxr-xr-xtp/maintain/prepare_perl_module_files.sh43
-rwxr-xr-xtp/maintain/prepare_perl_standalone_module_archive.sh17
-rwxr-xr-xtp/maintain/regenerate_cmd_tests.sh164
-rwxr-xr-xtp/maintain/regenerate_converters_documentation.sh12
-rwxr-xr-xtp/maintain/regenerate_docstr.sh60
-rwxr-xr-xtp/maintain/regenerate_documentlanguages.pl78
-rwxr-xr-xtp/maintain/regenerate_file_lists.pl100
-rw-r--r--tp/maintain/template.pod71
610 files changed, 269819 insertions, 0 deletions
diff --git a/tp/maintain/MANIFEST_generated_files b/tp/maintain/MANIFEST_generated_files
new file mode 100644
index 0000000..038c8f2
--- /dev/null
+++ b/tp/maintain/MANIFEST_generated_files
@@ -0,0 +1,89 @@
+LocaleData/cs/LC_MESSAGES/texinfo.mo
+LocaleData/da/LC_MESSAGES/texinfo.mo
+LocaleData/de_AT/LC_MESSAGES/texinfo.mo
+LocaleData/de/LC_MESSAGES/texinfo.mo
+LocaleData/de.us-ascii/LC_MESSAGES/texinfo_document.mo
+LocaleData/eo/LC_MESSAGES/texinfo_document.mo
+LocaleData/eo/LC_MESSAGES/texinfo.mo
+LocaleData/es/LC_MESSAGES/texinfo.mo
+LocaleData/es.us-ascii/LC_MESSAGES/texinfo_document.mo
+LocaleData/fr/LC_MESSAGES/texinfo_document.mo
+LocaleData/fr/LC_MESSAGES/texinfo.mo
+LocaleData/he/LC_MESSAGES/texinfo.mo
+LocaleData/hr/LC_MESSAGES/texinfo.mo
+LocaleData/hu/LC_MESSAGES/texinfo_document.mo
+LocaleData/hu/LC_MESSAGES/texinfo.mo
+LocaleData/id/LC_MESSAGES/texinfo.mo
+LocaleData/it/LC_MESSAGES/texinfo_document.mo
+LocaleData/it/LC_MESSAGES/texinfo.mo
+LocaleData/ja/LC_MESSAGES/texinfo.mo
+LocaleData/nb/LC_MESSAGES/texinfo.mo
+LocaleData/nl/LC_MESSAGES/texinfo_document.mo
+LocaleData/nl/LC_MESSAGES/texinfo.mo
+LocaleData/no.us-ascii/LC_MESSAGES/texinfo_document.mo
+LocaleData/pl/LC_MESSAGES/texinfo_document.mo
+LocaleData/pl/LC_MESSAGES/texinfo.mo
+LocaleData/pt_BR.us-ascii/LC_MESSAGES/texinfo_document.mo
+LocaleData/pt.us-ascii/LC_MESSAGES/texinfo_document.mo
+LocaleData/ro/LC_MESSAGES/texinfo.mo
+LocaleData/ru/LC_MESSAGES/texinfo.mo
+LocaleData/rw/LC_MESSAGES/texinfo.mo
+LocaleData/sl/LC_MESSAGES/texinfo.mo
+LocaleData/sv/LC_MESSAGES/texinfo.mo
+LocaleData/tr/LC_MESSAGES/texinfo.mo
+LocaleData/uk/LC_MESSAGES/texinfo.mo
+LocaleData/vi/LC_MESSAGES/texinfo.mo
+LocaleData/zh_CN/LC_MESSAGES/texinfo.mo
+LocaleData/zh_TW/LC_MESSAGES/texinfo.mo
+po/cs.po
+po/da.po
+po/de_AT.po
+po/de.po
+po_document/de.us-ascii.po
+po_document/eo.po
+po_document/es.us-ascii.po
+po_document/fr.po
+po_document/hu.po
+po_document/it.po
+po_document/Makefile
+po_document/nl.po
+po_document/no.us-ascii.po
+po_document/PACKAGE
+po_document/pl.po
+po_document/POTFILES.in
+po_document/pt_BR.us-ascii.po
+po_document/pt.us-ascii.po
+po_document/texinfo_document.pot
+po/eo.po
+po/es.po
+po/fr.po
+po/he.po
+po/hr.po
+po/hu.po
+po/id.po
+po/it.po
+po/ja.po
+po/Makefile
+po/nb.po
+po/nl.po
+po/PACKAGE
+po/pl.po
+po/POTFILES.in
+po/ro.po
+po/ru.po
+po/rw.po
+po/sl.po
+po/sv.po
+po/texinfo.pot
+po/tr.po
+po/uk.po
+po/vi.po
+po/zh_CN.po
+po/zh_TW.po
+t/include_dir/figure.txt
+t/include_dir/f--ile.png
+t/include_dir/f--ile.txt
+t/include_dir/inc_file.texi
+t/include_dir/incl-incl.txi
+t/include_dir/macro_included.texi
+t/include_dir/section_file.texi
diff --git a/tp/maintain/Makefile_perl_po b/tp/maintain/Makefile_perl_po
new file mode 100644
index 0000000..8b0a26e
--- /dev/null
+++ b/tp/maintain/Makefile_perl_po
@@ -0,0 +1,94 @@
+# Makefile for various po files.
+# Slightly modified from the example in libintl-perl
+
+srcdir = .
+libdir = ..
+
+#CATALOGS = $(addsuffix .po, LINGUAS)
+CATALOGS = $(LINGUAS)
+MO_FILES = $(addsuffix .mo, $(LINGUAS))
+
+MSGMERGE = msgmerge
+MSGFMT = msgfmt
+XGETTEXT = xgettext
+CATOBJEXT = .po
+
+include PACKAGE
+
+TD = $(strip $(DOMAIN))
+
+default: help
+
+all: $(TD).pot update-po update-mo install
+
+help:
+ @echo "Available targets:"
+ @echo " pot - remake master catalog"
+ @echo " update-po - merge po files"
+ @echo " update-mo - regenerate mo files"
+ @echo " install - install mo files"
+ @echo " all - all of the above"
+
+POTFILES = $(srcdir)/POTFILES.in \
+ $(shell cat $(srcdir)/POTFILES.in)
+
+pot: $(TD).pot
+
+clean:
+ rm -f *~ *.bak *.mo
+
+# FIXME: The parameter --from-code is only needed if your sources contain
+# any 8 bit data (even in comments). UTF-8 is only a guess here, but it
+# will at least accept any 8 bit data.
+#
+# The parameter "--language=perl" is not strictly needed because the
+# source language of all our files will be auto-detected by xgettext
+# by their filename extension. You should even avoid this parameter
+# if you want to extract strings from multiple source languages.
+$(TD).pot: $(POTFILES)
+ $(XGETTEXT) --output=$(srcdir)/$(TD).pox --from-code=utf-8 \
+ --add-comments=TRANSLATORS: --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder="$(COPYRIGHT_HOLDER)" \
+ --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
+ $(XGETTEXT_OPTIONS) \
+ --language=perl && \
+ rm -f $@ && mv $(TD).pox $@
+
+install: $(MO_FILES)
+ cd $(srcdir); \
+ targetdir='$(libdir)/LocaleData'; \
+ languages='$(LINGUAS)'; \
+ for lang in $$languages; do \
+ mkdir -p "$$targetdir/$$lang/LC_MESSAGES" || exit 1; \
+ dest="$$targetdir/$$lang/LC_MESSAGES/$(TD).mo"; \
+ cat="$$lang.mo"; \
+ echo "installing $$cat as $$dest"; \
+ cp -f $$cat $$dest && chmod 644 $$dest || exit 1; \
+ done
+
+update-mo: $(MO_FILES)
+
+update-po:
+ $(MAKE) $(TD).pot
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(TD).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+.SUFFIXES:
+.SUFFIXES: .po .mo
+
+.po.mo:
+ $(MSGFMT) --check --statistics --verbose -o $@ $<
+
diff --git a/tp/maintain/all_tests.sh b/tp/maintain/all_tests.sh
new file mode 100755
index 0000000..927f6cf
--- /dev/null
+++ b/tp/maintain/all_tests.sh
@@ -0,0 +1,59 @@
+#! /bin/sh
+
+# Helper script for tests.
+
+command=$1
+if [ $# -gt 0 ]; then
+ shift
+ test_name=$1
+fi
+
+cmds_list="clean|generate|output|diff|texis"
+
+if [ z"$command" = 'z' ]; then
+ echo "Need an arg $cmds_list"
+ exit 1
+fi
+
+if [ "$command" = 'clean' ]; then
+ rm -f t/results/*/*.pl.new
+ rm -rf t/results/*/*/out_*/
+elif [ "$command" = 'diff' ]; then
+ if [ z"$test_name" = 'z' ]; then
+ for result in t/results/*/*.pl; do
+ diff -a -U 3 $result $result.new
+ done
+ for result in t/results/*/*/res*/; do
+ out=`echo $result | sed 's;res\([^/]*/\)$;out\1;'`
+ diff -a -u --exclude=CVS --exclude=.svn -r $result $out
+ done
+ else
+ for result in t/results/$test_name/*.pl; do
+ diff -a -u $result $result.new
+ done
+ for result in t/results/$test_name/*/res*/; do
+ out=`echo $result | sed 's;res\([^/]*/\)$;out\1;'`
+ diff -a -u --exclude=CVS --exclude=.svn -r $result $out
+ done
+ fi
+else
+ # commands that require PERL
+ . ./defs || exit 1
+
+ if [ "$command" = 'generate' ]; then
+ for file in t/*.t; do
+ $PERL -w $file -g
+ done
+ elif [ "$command" = 'output' ]; then
+ for file in t/*.t; do
+ $PERL -w $file -o
+ done
+ elif [ "$command" = 'texis' ]; then
+ for file in t/*.t; do
+ $PERL -w $file -c
+ done
+ else
+ echo "Unknown command ($cmds_list)"
+ exit 1
+ fi
+fi
diff --git a/tp/maintain/catalog.xml.in b/tp/maintain/catalog.xml.in
new file mode 100644
index 0000000..9c7407b
--- /dev/null
+++ b/tp/maintain/catalog.xml.in
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+ <rewriteSystem systemIdStartString="http://www.gnu.org/software/texinfo/dtd/@TEXINFO_DTD_VERSION@/" rewritePrefix="file://@abs_top_srcdir@/util/" />
+</catalog>
diff --git a/tp/maintain/change_perl_modules_version.sh b/tp/maintain/change_perl_modules_version.sh
new file mode 100755
index 0000000..9c1d40c
--- /dev/null
+++ b/tp/maintain/change_perl_modules_version.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+VERS=$1
+if test z"$VERS" = "zauto" ; then
+ VERS=`grep '^VERSION = ' Makefile | sed 's/^VERSION = *//'`
+fi
+if test z"$VERS" = "z" ; then
+ exit 1
+fi
+
+
+#find Texinfo/ -name '*.pm' | xargs sed -i -e 's/\$VERSION = '"'"'\([0-9.]\+\)'"'"'/$VERSION = '"'$VERS'"'/'
+find Texinfo/ -name '*.pm' | xargs perl -pi -e 's/\$VERSION = '"'"'([0-9.]+)'"'"'/\$VERSION = '"'$VERS'"'/'
diff --git a/tp/maintain/clean_perl_module_files.sh b/tp/maintain/clean_perl_module_files.sh
new file mode 100755
index 0000000..c62eb24
--- /dev/null
+++ b/tp/maintain/clean_perl_module_files.sh
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+mv texi2any texi2any-perl
+rm COPYING
+rm pm_to_blib
+rm -rf blib
+rm -rf po po_document
+(cd ../ && ./config.status)
+make texi2any
diff --git a/tp/maintain/language-subtag-registry b/tp/maintain/language-subtag-registry
new file mode 100644
index 0000000..b6f7945
--- /dev/null
+++ b/tp/maintain/language-subtag-registry
@@ -0,0 +1,45337 @@
+File-Date: 2011-12-02
+%%
+Type: language
+Subtag: aa
+Description: Afar
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ab
+Description: Abkhazian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: ae
+Description: Avestan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: af
+Description: Afrikaans
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ak
+Description: Akan
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: am
+Description: Amharic
+Added: 2005-10-16
+Suppress-Script: Ethi
+%%
+Type: language
+Subtag: an
+Description: Aragonese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ar
+Description: Arabic
+Added: 2005-10-16
+Suppress-Script: Arab
+Scope: macrolanguage
+%%
+Type: language
+Subtag: as
+Description: Assamese
+Added: 2005-10-16
+Suppress-Script: Beng
+%%
+Type: language
+Subtag: av
+Description: Avaric
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ay
+Description: Aymara
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: az
+Description: Azerbaijani
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ba
+Description: Bashkir
+Added: 2005-10-16
+%%
+Type: language
+Subtag: be
+Description: Belarusian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: bg
+Description: Bulgarian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: bh
+Description: Bihari languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: bi
+Description: Bislama
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bm
+Description: Bambara
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bn
+Description: Bengali
+Added: 2005-10-16
+Suppress-Script: Beng
+%%
+Type: language
+Subtag: bo
+Description: Tibetan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: br
+Description: Breton
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bs
+Description: Bosnian
+Added: 2005-10-16
+Suppress-Script: Latn
+Macrolanguage: sh
+%%
+Type: language
+Subtag: ca
+Description: Catalan
+Description: Valencian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ce
+Description: Chechen
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ch
+Description: Chamorro
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: co
+Description: Corsican
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cr
+Description: Cree
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: cs
+Description: Czech
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: cu
+Description: Church Slavic
+Description: Church Slavonic
+Description: Old Bulgarian
+Description: Old Church Slavonic
+Description: Old Slavonic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cv
+Description: Chuvash
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cy
+Description: Welsh
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: da
+Description: Danish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: de
+Description: German
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: dv
+Description: Dhivehi
+Description: Divehi
+Description: Maldivian
+Added: 2005-10-16
+Suppress-Script: Thaa
+%%
+Type: language
+Subtag: dz
+Description: Dzongkha
+Added: 2005-10-16
+Suppress-Script: Tibt
+%%
+Type: language
+Subtag: ee
+Description: Ewe
+Added: 2005-10-16
+%%
+Type: language
+Subtag: el
+Description: Modern Greek (1453-)
+Added: 2005-10-16
+Suppress-Script: Grek
+%%
+Type: language
+Subtag: en
+Description: English
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: eo
+Description: Esperanto
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: es
+Description: Spanish
+Description: Castilian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: et
+Description: Estonian
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: eu
+Description: Basque
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: fa
+Description: Persian
+Added: 2005-10-16
+Suppress-Script: Arab
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ff
+Description: Fulah
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: fi
+Description: Finnish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: fj
+Description: Fijian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: fo
+Description: Faroese
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: fr
+Description: French
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: fy
+Description: Western Frisian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ga
+Description: Irish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: gd
+Description: Scottish Gaelic
+Description: Gaelic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gl
+Description: Galician
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: gn
+Description: Guarani
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: gu
+Description: Gujarati
+Added: 2005-10-16
+Suppress-Script: Gujr
+%%
+Type: language
+Subtag: gv
+Description: Manx
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ha
+Description: Hausa
+Added: 2005-10-16
+%%
+Type: language
+Subtag: he
+Description: Hebrew
+Added: 2005-10-16
+Suppress-Script: Hebr
+%%
+Type: language
+Subtag: hi
+Description: Hindi
+Added: 2005-10-16
+Suppress-Script: Deva
+%%
+Type: language
+Subtag: ho
+Description: Hiri Motu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: hr
+Description: Croatian
+Added: 2005-10-16
+Suppress-Script: Latn
+Macrolanguage: sh
+%%
+Type: language
+Subtag: ht
+Description: Haitian
+Description: Haitian Creole
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: hu
+Description: Hungarian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: hy
+Description: Armenian
+Added: 2005-10-16
+Suppress-Script: Armn
+%%
+Type: language
+Subtag: hz
+Description: Herero
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ia
+Description: Interlingua (International Auxiliary Language
+ Association)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: id
+Description: Indonesian
+Added: 2005-10-16
+Suppress-Script: Latn
+Macrolanguage: ms
+%%
+Type: language
+Subtag: ie
+Description: Interlingue
+Description: Occidental
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ig
+Description: Igbo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ii
+Description: Sichuan Yi
+Description: Nuosu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ik
+Description: Inupiaq
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: in
+Description: Indonesian
+Added: 2005-10-16
+Deprecated: 1989-01-01
+Preferred-Value: id
+Suppress-Script: Latn
+Macrolanguage: ms
+%%
+Type: language
+Subtag: io
+Description: Ido
+Added: 2005-10-16
+%%
+Type: language
+Subtag: is
+Description: Icelandic
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: it
+Description: Italian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: iu
+Description: Inuktitut
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: iw
+Description: Hebrew
+Added: 2005-10-16
+Deprecated: 1989-01-01
+Preferred-Value: he
+Suppress-Script: Hebr
+%%
+Type: language
+Subtag: ja
+Description: Japanese
+Added: 2005-10-16
+Suppress-Script: Jpan
+%%
+Type: language
+Subtag: ji
+Description: Yiddish
+Added: 2005-10-16
+Deprecated: 1989-01-01
+Preferred-Value: yi
+%%
+Type: language
+Subtag: jv
+Description: Javanese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: jw
+Description: Javanese
+Added: 2005-10-16
+Deprecated: 2001-08-13
+Preferred-Value: jv
+Comments: published by error in Table 1 of ISO 639:1988
+%%
+Type: language
+Subtag: ka
+Description: Georgian
+Added: 2005-10-16
+Suppress-Script: Geor
+%%
+Type: language
+Subtag: kg
+Description: Kongo
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ki
+Description: Kikuyu
+Description: Gikuyu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kj
+Description: Kuanyama
+Description: Kwanyama
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kk
+Description: Kazakh
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: kl
+Description: Kalaallisut
+Description: Greenlandic
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: km
+Description: Central Khmer
+Added: 2005-10-16
+Suppress-Script: Khmr
+%%
+Type: language
+Subtag: kn
+Description: Kannada
+Added: 2005-10-16
+Suppress-Script: Knda
+%%
+Type: language
+Subtag: ko
+Description: Korean
+Added: 2005-10-16
+Suppress-Script: Kore
+%%
+Type: language
+Subtag: kr
+Description: Kanuri
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ks
+Description: Kashmiri
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ku
+Description: Kurdish
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: kv
+Description: Komi
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: kw
+Description: Cornish
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ky
+Description: Kirghiz
+Description: Kyrgyz
+Added: 2005-10-16
+%%
+Type: language
+Subtag: la
+Description: Latin
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: lb
+Description: Luxembourgish
+Description: Letzeburgesch
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: lg
+Description: Ganda
+Added: 2005-10-16
+%%
+Type: language
+Subtag: li
+Description: Limburgan
+Description: Limburger
+Description: Limburgish
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ln
+Description: Lingala
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: lo
+Description: Lao
+Added: 2005-10-16
+Suppress-Script: Laoo
+%%
+Type: language
+Subtag: lt
+Description: Lithuanian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: lu
+Description: Luba-Katanga
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lv
+Description: Latvian
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: mg
+Description: Malagasy
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: mh
+Description: Marshallese
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: mi
+Description: Maori
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mk
+Description: Macedonian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: ml
+Description: Malayalam
+Added: 2005-10-16
+Suppress-Script: Mlym
+%%
+Type: language
+Subtag: mn
+Description: Mongolian
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: mo
+Description: Moldavian
+Description: Moldovan
+Added: 2005-10-16
+Deprecated: 2008-11-22
+Preferred-Value: ro
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: mr
+Description: Marathi
+Added: 2005-10-16
+Suppress-Script: Deva
+%%
+Type: language
+Subtag: ms
+Description: Malay (macrolanguage)
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: mt
+Description: Maltese
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: my
+Description: Burmese
+Added: 2005-10-16
+Suppress-Script: Mymr
+%%
+Type: language
+Subtag: na
+Description: Nauru
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: nb
+Description: Norwegian Bokmål
+Added: 2005-10-16
+Suppress-Script: Latn
+Macrolanguage: no
+%%
+Type: language
+Subtag: nd
+Description: North Ndebele
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ne
+Description: Nepali
+Added: 2005-10-16
+Suppress-Script: Deva
+%%
+Type: language
+Subtag: ng
+Description: Ndonga
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nl
+Description: Dutch
+Description: Flemish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: nn
+Description: Norwegian Nynorsk
+Added: 2005-10-16
+Suppress-Script: Latn
+Macrolanguage: no
+%%
+Type: language
+Subtag: no
+Description: Norwegian
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: nr
+Description: South Ndebele
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: nv
+Description: Navajo
+Description: Navaho
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ny
+Description: Nyanja
+Description: Chewa
+Description: Chichewa
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: oc
+Description: Occitan (post 1500)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: oj
+Description: Ojibwa
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: om
+Description: Oromo
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: or
+Description: Oriya
+Added: 2005-10-16
+Suppress-Script: Orya
+%%
+Type: language
+Subtag: os
+Description: Ossetian
+Description: Ossetic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pa
+Description: Panjabi
+Description: Punjabi
+Added: 2005-10-16
+Suppress-Script: Guru
+%%
+Type: language
+Subtag: pi
+Description: Pali
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pl
+Description: Polish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ps
+Description: Pushto
+Description: Pashto
+Added: 2005-10-16
+Suppress-Script: Arab
+Scope: macrolanguage
+%%
+Type: language
+Subtag: pt
+Description: Portuguese
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: qu
+Description: Quechua
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: rm
+Description: Romansh
+Suppress-Script: Latn
+Added: 2005-10-16
+%%
+Type: language
+Subtag: rn
+Description: Rundi
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ro
+Description: Romanian
+Description: Moldavian
+Description: Moldovan
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ru
+Description: Russian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: rw
+Description: Kinyarwanda
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sa
+Description: Sanskrit
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sc
+Description: Sardinian
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: sd
+Description: Sindhi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: se
+Description: Northern Sami
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sg
+Description: Sango
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sh
+Description: Serbo-Croatian
+Added: 2005-10-16
+Scope: macrolanguage
+Comments: sr, hr, bs are preferred for most modern uses
+%%
+Type: language
+Subtag: si
+Description: Sinhala
+Description: Sinhalese
+Added: 2005-10-16
+Suppress-Script: Sinh
+%%
+Type: language
+Subtag: sk
+Description: Slovak
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sl
+Description: Slovenian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sm
+Description: Samoan
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sn
+Description: Shona
+Added: 2005-10-16
+%%
+Type: language
+Subtag: so
+Description: Somali
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sq
+Description: Albanian
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: sr
+Description: Serbian
+Added: 2005-10-16
+Macrolanguage: sh
+%%
+Type: language
+Subtag: ss
+Description: Swati
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: st
+Description: Southern Sotho
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: su
+Description: Sundanese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sv
+Description: Swedish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: sw
+Description: Swahili (macrolanguage)
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ta
+Description: Tamil
+Added: 2005-10-16
+Suppress-Script: Taml
+%%
+Type: language
+Subtag: te
+Description: Telugu
+Added: 2005-10-16
+Suppress-Script: Telu
+%%
+Type: language
+Subtag: tg
+Description: Tajik
+Added: 2005-10-16
+%%
+Type: language
+Subtag: th
+Description: Thai
+Added: 2005-10-16
+Suppress-Script: Thai
+%%
+Type: language
+Subtag: ti
+Description: Tigrinya
+Added: 2005-10-16
+Suppress-Script: Ethi
+%%
+Type: language
+Subtag: tk
+Description: Turkmen
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tl
+Description: Tagalog
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tn
+Description: Tswana
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: to
+Description: Tonga (Tonga Islands)
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tr
+Description: Turkish
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ts
+Description: Tsonga
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tt
+Description: Tatar
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tw
+Description: Twi
+Added: 2005-10-16
+Macrolanguage: ak
+%%
+Type: language
+Subtag: ty
+Description: Tahitian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ug
+Description: Uighur
+Description: Uyghur
+Added: 2005-10-16
+%%
+Type: language
+Subtag: uk
+Description: Ukrainian
+Added: 2005-10-16
+Suppress-Script: Cyrl
+%%
+Type: language
+Subtag: ur
+Description: Urdu
+Added: 2005-10-16
+Suppress-Script: Arab
+%%
+Type: language
+Subtag: uz
+Description: Uzbek
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ve
+Description: Venda
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: vi
+Description: Vietnamese
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: vo
+Description: Volapük
+Added: 2005-10-16
+%%
+Type: language
+Subtag: wa
+Description: Walloon
+Added: 2005-10-16
+%%
+Type: language
+Subtag: wo
+Description: Wolof
+Added: 2005-10-16
+%%
+Type: language
+Subtag: xh
+Description: Xhosa
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: yi
+Description: Yiddish
+Added: 2005-10-16
+Suppress-Script: Hebr
+Scope: macrolanguage
+%%
+Type: language
+Subtag: yo
+Description: Yoruba
+Added: 2005-10-16
+%%
+Type: language
+Subtag: za
+Description: Zhuang
+Description: Chuang
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: zh
+Description: Chinese
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: zu
+Description: Zulu
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: aaa
+Description: Ghotuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aab
+Description: Alumu-Tesu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aac
+Description: Ari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aad
+Description: Amal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aae
+Description: Arbëreshë Albanian
+Added: 2009-07-29
+Macrolanguage: sq
+%%
+Type: language
+Subtag: aaf
+Description: Aranadan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aag
+Description: Ambrak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aah
+Description: Abu' Arapesh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aai
+Description: Arifama-Miniafia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aak
+Description: Ankave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aal
+Description: Afade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aam
+Description: Aramanik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aan
+Description: Anambé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aao
+Description: Algerian Saharan Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: aap
+Description: Pará Arára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aaq
+Description: Eastern Abnaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aas
+Description: Aasáx
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aat
+Description: Arvanitika Albanian
+Added: 2009-07-29
+Macrolanguage: sq
+%%
+Type: language
+Subtag: aau
+Description: Abau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aav
+Description: Austro-Asiatic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: aaw
+Description: Solong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aax
+Description: Mandobo Atas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aaz
+Description: Amarasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aba
+Description: Abé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abb
+Description: Bankon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abc
+Description: Ambala Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abd
+Description: Manide
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abe
+Description: Western Abnaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abf
+Description: Abai Sungai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abg
+Description: Abaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abh
+Description: Tajiki Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: abi
+Description: Abidji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abj
+Description: Aka-Bea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abl
+Description: Lampung Nyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abm
+Description: Abanyom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abn
+Description: Abua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abo
+Description: Abon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abp
+Description: Abellen Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abq
+Description: Abaza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abr
+Description: Abron
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abs
+Description: Ambonese Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abt
+Description: Ambulas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abu
+Description: Abure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abv
+Description: Baharna Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: abw
+Description: Pal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abx
+Description: Inabaknon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aby
+Description: Aneme Wake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: abz
+Description: Abui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aca
+Description: Achagua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acb
+Description: Áncá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acd
+Description: Gikyode
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ace
+Description: Achinese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: acf
+Description: Saint Lucian Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ach
+Description: Acoli
+Added: 2005-10-16
+%%
+Type: language
+Subtag: aci
+Description: Aka-Cari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ack
+Description: Aka-Kora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acl
+Description: Akar-Bale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acm
+Description: Mesopotamian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: acn
+Description: Achang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acp
+Description: Eastern Acipa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acq
+Description: Ta'izzi-Adeni Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: acr
+Description: Achi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acs
+Description: Acroá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: act
+Description: Achterhoeks
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acu
+Description: Achuar-Shiwiar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acv
+Description: Achumawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: acw
+Description: Hijazi Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: acx
+Description: Omani Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: acy
+Description: Cypriot Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: acz
+Description: Acheron
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ada
+Description: Adangme
+Added: 2005-10-16
+%%
+Type: language
+Subtag: adb
+Description: Adabe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: add
+Description: Dzodinka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ade
+Description: Adele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adf
+Description: Dhofari Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: adg
+Description: Andegerebinha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adh
+Description: Adhola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adi
+Description: Adi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adj
+Description: Adioukrou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adl
+Description: Galo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adn
+Description: Adang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ado
+Description: Abu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adp
+Description: Adap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adq
+Description: Adangbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adr
+Description: Adonara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ads
+Description: Adamorobe Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adt
+Description: Adnyamathanha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adu
+Description: Aduge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adw
+Description: Amundava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: adx
+Description: Amdo Tibetan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ady
+Description: Adyghe
+Description: Adygei
+Added: 2005-10-16
+%%
+Type: language
+Subtag: adz
+Description: Adzera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aea
+Description: Areba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aeb
+Description: Tunisian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: aec
+Description: Saidi Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: aed
+Description: Argentine Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aee
+Description: Northeast Pashayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aek
+Description: Haeke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ael
+Description: Ambele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aem
+Description: Arem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aen
+Description: Armenian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aeq
+Description: Aer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aer
+Description: Eastern Arrernte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aes
+Description: Alsea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aeu
+Description: Akeu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aew
+Description: Ambakich
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aey
+Description: Amele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aez
+Description: Aeka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afa
+Description: Afro-Asiatic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: afb
+Description: Gulf Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: afd
+Description: Andai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afe
+Description: Putukwam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afg
+Description: Afghan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afh
+Description: Afrihili
+Added: 2005-10-16
+%%
+Type: language
+Subtag: afi
+Description: Akrukay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afk
+Description: Nanubae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afn
+Description: Defaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afo
+Description: Eloyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afp
+Description: Tapei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afs
+Description: Afro-Seminole Creole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aft
+Description: Afitti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afu
+Description: Awutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: afz
+Description: Obokuitai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aga
+Description: Aguano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agb
+Description: Legbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agc
+Description: Agatu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agd
+Description: Agarabi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: age
+Description: Angal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agf
+Description: Arguni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agg
+Description: Angor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agh
+Description: Ngelima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agi
+Description: Agariya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agj
+Description: Argobba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agk
+Description: Isarog Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agl
+Description: Fembe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agm
+Description: Angaataha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agn
+Description: Agutaynen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ago
+Description: Tainae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agp
+Description: Paranan
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see apf, prf
+%%
+Type: language
+Subtag: agq
+Description: Aghem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agr
+Description: Aguaruna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ags
+Description: Esimbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agt
+Description: Central Cagayan Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agu
+Description: Aguacateco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agv
+Description: Remontado Dumagat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agw
+Description: Kahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agx
+Description: Aghul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agy
+Description: Southern Alta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: agz
+Description: Mt. Iriga Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aha
+Description: Ahanta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahb
+Description: Axamb
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahg
+Description: Qimant
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahh
+Description: Aghu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahi
+Description: Tiagbamrin Aizi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahk
+Description: Akha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahl
+Description: Igo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahm
+Description: Mobumrin Aizi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahn
+Description: Àhàn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aho
+Description: Ahom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahp
+Description: Aproumu Aizi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahr
+Description: Ahirani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ahs
+Description: Ashe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aht
+Description: Ahtena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aia
+Description: Arosi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aib
+Description: Ainu (China)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aic
+Description: Ainbai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aid
+Description: Alngith
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aie
+Description: Amara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aif
+Description: Agi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aig
+Description: Antigua and Barbuda Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aih
+Description: Ai-Cham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aii
+Description: Assyrian Neo-Aramaic
+Added: 2009-07-29
+Macrolanguage: syr
+%%
+Type: language
+Subtag: aij
+Description: Lishanid Noshan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aik
+Description: Ake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ail
+Description: Aimele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aim
+Description: Aimol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ain
+Description: Ainu (Japan)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: aio
+Description: Aiton
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aip
+Description: Burumakok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aiq
+Description: Aimaq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: air
+Description: Airoran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ais
+Description: Nataoran Amis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ait
+Description: Arikem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aiw
+Description: Aari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aix
+Description: Aighon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aiy
+Description: Ali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aja
+Description: Aja (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ajg
+Description: Aja (Benin)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aji
+Description: Ajië
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ajp
+Description: South Levantine Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ajt
+Description: Judeo-Tunisian Arabic
+Added: 2009-07-29
+Macrolanguage: jrb
+%%
+Type: language
+Subtag: aju
+Description: Judeo-Moroccan Arabic
+Added: 2009-07-29
+Macrolanguage: jrb
+%%
+Type: language
+Subtag: ajw
+Description: Ajawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ajz
+Description: Amri Karbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akb
+Description: Batak Angkola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akc
+Description: Mpur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akd
+Description: Ukpet-Ehom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ake
+Description: Akawaio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akf
+Description: Akpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akg
+Description: Anakalangu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akh
+Description: Angal Heneng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aki
+Description: Aiome
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akj
+Description: Aka-Jeru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akk
+Description: Akkadian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: akl
+Description: Aklanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akm
+Description: Aka-Bo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ako
+Description: Akurio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akp
+Description: Siwu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akq
+Description: Ak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akr
+Description: Araki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aks
+Description: Akaselem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akt
+Description: Akolet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aku
+Description: Akum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akv
+Description: Akhvakh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akw
+Description: Akwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akx
+Description: Aka-Kede
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aky
+Description: Aka-Kol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: akz
+Description: Alabama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ala
+Description: Alago
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alc
+Description: Qawasqar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ald
+Description: Alladian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ale
+Description: Aleut
+Added: 2005-10-16
+%%
+Type: language
+Subtag: alf
+Description: Alege
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alg
+Description: Algonquian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: alh
+Description: Alawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ali
+Description: Amaimon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alj
+Description: Alangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alk
+Description: Alak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: all
+Description: Allar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alm
+Description: Amblong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aln
+Description: Gheg Albanian
+Added: 2009-07-29
+Macrolanguage: sq
+%%
+Type: language
+Subtag: alo
+Description: Larike-Wakasihu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alp
+Description: Alune
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alq
+Description: Algonquin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alr
+Description: Alutor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: als
+Description: Tosk Albanian
+Added: 2009-07-29
+Macrolanguage: sq
+%%
+Type: language
+Subtag: alt
+Description: Southern Altai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: alu
+Description: 'Are'are
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alv
+Description: Atlantic-Congo languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: alw
+Description: Alaba-K’abeena
+Description: Wanbasana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alx
+Description: Amol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aly
+Description: Alyawarr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: alz
+Description: Alur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ama
+Description: Amanayé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amb
+Description: Ambo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amc
+Description: Amahuaca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ame
+Description: Yanesha'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amf
+Description: Hamer-Banna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amg
+Description: Amarag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ami
+Description: Amis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amj
+Description: Amdang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amk
+Description: Ambai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aml
+Description: War-Jaintia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amm
+Description: Ama (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amn
+Description: Amanab
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amo
+Description: Amo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amp
+Description: Alamblak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amq
+Description: Amahai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amr
+Description: Amarakaeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ams
+Description: Southern Amami-Oshima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amt
+Description: Amto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amu
+Description: Guerrero Amuzgo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amv
+Description: Ambelau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amw
+Description: Western Neo-Aramaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amx
+Description: Anmatyerre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amy
+Description: Ami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: amz
+Description: Atampaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ana
+Description: Andaqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anb
+Description: Andoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anc
+Description: Ngas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: and
+Description: Ansus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ane
+Description: Xârâcùù
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anf
+Description: Animere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ang
+Description: Old English (ca. 450-1100)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: anh
+Description: Nend
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ani
+Description: Andi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anj
+Description: Anor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ank
+Description: Goemai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anl
+Description: Anu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anm
+Description: Anal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ann
+Description: Obolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ano
+Description: Andoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anp
+Description: Angika
+Added: 2006-03-08
+%%
+Type: language
+Subtag: anq
+Description: Jarawa (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anr
+Description: Andh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ans
+Description: Anserma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ant
+Description: Antakarinya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anu
+Description: Anuak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anv
+Description: Denya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anw
+Description: Anaang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anx
+Description: Andra-Hus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: any
+Description: Anyin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: anz
+Description: Anem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoa
+Description: Angolar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aob
+Description: Abom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoc
+Description: Pemon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aod
+Description: Andarum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoe
+Description: Angal Enen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aof
+Description: Bragat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aog
+Description: Angoram
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoh
+Description: Arma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoi
+Description: Anindilyakwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoj
+Description: Mufian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aok
+Description: Arhö
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aol
+Description: Alor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aom
+Description: Ömie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aon
+Description: Bumbita Arapesh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aor
+Description: Aore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aos
+Description: Taikat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aot
+Description: A'tong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aox
+Description: Atorada
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aoz
+Description: Uab Meto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apa
+Description: Apache languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: apb
+Description: Sa'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apc
+Description: North Levantine Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: apd
+Description: Sudanese Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ape
+Description: Bukiyip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apf
+Description: Pahanan Agta
+Added: 2010-03-11
+%%
+Type: language
+Subtag: apg
+Description: Ampanang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aph
+Description: Athpariya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: api
+Description: Apiaká
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apj
+Description: Jicarilla Apache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apk
+Description: Kiowa Apache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apl
+Description: Lipan Apache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apm
+Description: Mescalero-Chiricahua Apache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apn
+Description: Apinayé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apo
+Description: Ambul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: app
+Description: Apma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apq
+Description: A-Pucikwar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apr
+Description: Arop-Lokep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aps
+Description: Arop-Sissano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apt
+Description: Apatani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apu
+Description: Apurinã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apv
+Description: Alapmunte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apw
+Description: Western Apache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apx
+Description: Aputai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apy
+Description: Apalaí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: apz
+Description: Safeyoka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqa
+Description: Alacalufan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: aqc
+Description: Archi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqd
+Description: Ampari Dogon
+Added: 2011-08-16
+%%
+Type: language
+Subtag: aqg
+Description: Arigidi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aql
+Description: Algic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: aqm
+Description: Atohwaim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqn
+Description: Northern Alta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqp
+Description: Atakapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqr
+Description: Arhâ
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aqz
+Description: Akuntsu
+Added: 2010-03-11
+%%
+Type: language
+Subtag: arb
+Description: Standard Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: arc
+Description: Official Aramaic (700-300 BCE)
+Description: Imperial Aramaic (700-300 BCE)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ard
+Description: Arabana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: are
+Description: Western Arrarnta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arh
+Description: Arhuaco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ari
+Description: Arikara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arj
+Description: Arapaso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ark
+Description: Arikapú
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arl
+Description: Arabela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arn
+Description: Mapudungun
+Description: Mapuche
+Added: 2005-10-16
+%%
+Type: language
+Subtag: aro
+Description: Araona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arp
+Description: Arapaho
+Added: 2005-10-16
+%%
+Type: language
+Subtag: arq
+Description: Algerian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: arr
+Description: Karo (Brazil)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ars
+Description: Najdi Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: art
+Description: Artificial languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: aru
+Description: Aruá (Amazonas State)
+Description: Arawá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arv
+Description: Arbore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: arw
+Description: Arawak
+Added: 2005-10-16
+%%
+Type: language
+Subtag: arx
+Description: Aruá (Rodonia State)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ary
+Description: Moroccan Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: arz
+Description: Egyptian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: asa
+Description: Asu (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asb
+Description: Assiniboine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asc
+Description: Casuarina Coast Asmat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asd
+Description: Asas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ase
+Description: American Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asf
+Description: Australian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asg
+Description: Cishingini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ash
+Description: Abishira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asi
+Description: Buruwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asj
+Description: Nsari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ask
+Description: Ashkun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asl
+Description: Asilulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asn
+Description: Xingú Asuriní
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aso
+Description: Dano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asp
+Description: Algerian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asq
+Description: Austrian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asr
+Description: Asuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ass
+Description: Ipulo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ast
+Description: Asturian
+Description: Asturleonese
+Description: Bable
+Description: Leonese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: asu
+Description: Tocantins Asurini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asv
+Description: Asoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asw
+Description: Australian Aborigines Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asx
+Description: Muratayak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asy
+Description: Yaosakor Asmat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: asz
+Description: As
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ata
+Description: Pele-Ata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atb
+Description: Zaiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atc
+Description: Atsahuaca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atd
+Description: Ata Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ate
+Description: Atemble
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atg
+Description: Ivbie North-Okpela-Arhe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ath
+Description: Athapascan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ati
+Description: Attié
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atj
+Description: Atikamekw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atk
+Description: Ati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atl
+Description: Mt. Iraya Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atm
+Description: Ata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atn
+Description: Ashtiani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ato
+Description: Atong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atp
+Description: Pudtol Atta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atq
+Description: Aralle-Tabulahan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atr
+Description: Waimiri-Atroari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ats
+Description: Gros Ventre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: att
+Description: Pamplona Atta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atu
+Description: Reel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atv
+Description: Northern Altai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atw
+Description: Atsugewi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atx
+Description: Arutani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aty
+Description: Aneityum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: atz
+Description: Arta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aua
+Description: Asumboa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aub
+Description: Alugu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auc
+Description: Waorani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aud
+Description: Anuta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aue
+Description: =/Kx'au//'ein
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auf
+Description: Arauan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: aug
+Description: Aguna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auh
+Description: Aushi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aui
+Description: Anuki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auj
+Description: Awjilah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auk
+Description: Heyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aul
+Description: Aulua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aum
+Description: Asu (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aun
+Description: Molmo One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auo
+Description: Auyokawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aup
+Description: Makayam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auq
+Description: Anus
+Description: Korur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aur
+Description: Aruek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aus
+Description: Australian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: aut
+Description: Austral
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auu
+Description: Auye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auw
+Description: Awyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aux
+Description: Aurá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auy
+Description: Awiyaana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: auz
+Description: Uzbeki Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: avb
+Description: Avau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avd
+Description: Alviri-Vidari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avi
+Description: Avikam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avk
+Description: Kotava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avl
+Description: Eastern Egyptian Bedawi Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: avn
+Description: Avatime
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avo
+Description: Agavotaguerra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avs
+Description: Aushiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avt
+Description: Au
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avu
+Description: Avokaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: avv
+Description: Avá-Canoeiro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awa
+Description: Awadhi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: awb
+Description: Awa (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awc
+Description: Cicipu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awd
+Description: Arawakan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: awe
+Description: Awetí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awh
+Description: Awbono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awi
+Description: Aekyom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awk
+Description: Awabakal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awm
+Description: Arawum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awn
+Description: Awngi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awo
+Description: Awak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awr
+Description: Awera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aws
+Description: South Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awt
+Description: Araweté
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awu
+Description: Central Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awv
+Description: Jair Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aww
+Description: Awun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awx
+Description: Awara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: awy
+Description: Edera Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: axb
+Description: Abipon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: axg
+Description: Mato Grosso Arára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: axk
+Description: Yaka (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: axm
+Description: Middle Armenian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: axx
+Description: Xaragure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aya
+Description: Awar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayb
+Description: Ayizo Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayc
+Description: Southern Aymara
+Added: 2009-07-29
+Macrolanguage: ay
+%%
+Type: language
+Subtag: ayd
+Description: Ayabadhu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aye
+Description: Ayere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayg
+Description: Ginyanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayh
+Description: Hadrami Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ayi
+Description: Leyigha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayk
+Description: Akuku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayl
+Description: Libyan Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ayn
+Description: Sanaani Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ayo
+Description: Ayoreo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayp
+Description: North Mesopotamian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ayq
+Description: Ayi (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayr
+Description: Central Aymara
+Added: 2009-07-29
+Macrolanguage: ay
+%%
+Type: language
+Subtag: ays
+Description: Sorsogon Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayt
+Description: Magbukun Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayu
+Description: Ayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayx
+Description: Ayi (China)
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Preferred-Value: nun
+%%
+Type: language
+Subtag: ayy
+Description: Tayabas Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ayz
+Description: Mai Brat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: aza
+Description: Azha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: azb
+Description: South Azerbaijani
+Added: 2009-07-29
+Macrolanguage: az
+%%
+Type: language
+Subtag: azc
+Description: Uto-Aztecan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: azg
+Description: San Pedro Amuzgos Amuzgo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: azj
+Description: North Azerbaijani
+Added: 2009-07-29
+Macrolanguage: az
+%%
+Type: language
+Subtag: azm
+Description: Ipalapa Amuzgo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: azo
+Description: Awing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: azt
+Description: Faire Atta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: azz
+Description: Highland Puebla Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: baa
+Description: Babatana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bab
+Description: Bainouk-Gunyuño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bac
+Description: Badui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bad
+Description: Banda languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: bae
+Description: Baré
+Added: 2009-07-29
+%%
+Type: language
+Subtag: baf
+Description: Nubaca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bag
+Description: Tuki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bah
+Description: Bahamas Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bai
+Description: Bamileke languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: baj
+Description: Barakai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bal
+Description: Baluchi
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: ban
+Description: Balinese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bao
+Description: Waimaha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bap
+Description: Bantawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bar
+Description: Bavarian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bas
+Description: Basa (Cameroon)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bat
+Description: Baltic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: bau
+Description: Bada (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bav
+Description: Vengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: baw
+Description: Bambili-Bambui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bax
+Description: Bamun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bay
+Description: Batuley
+Added: 2009-07-29
+%%
+Type: language
+Subtag: baz
+Description: Tunen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bba
+Description: Baatonum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbb
+Description: Barai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbc
+Description: Batak Toba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbd
+Description: Bau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbe
+Description: Bangba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbf
+Description: Baibai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbg
+Description: Barama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbh
+Description: Bugan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbi
+Description: Barombi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbj
+Description: Ghomálá'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbk
+Description: Babanki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbl
+Description: Bats
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbm
+Description: Babango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbn
+Description: Uneapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbo
+Description: Northern Bobo Madaré
+Description: Konabéré
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbp
+Description: West Central Banda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbq
+Description: Bamali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbr
+Description: Girawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbs
+Description: Bakpinka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbt
+Description: Mburku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbu
+Description: Kulung (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbv
+Description: Karnai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbw
+Description: Baba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbx
+Description: Bubia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bby
+Description: Befang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bbz
+Description: Babalia Creole Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: bca
+Description: Central Bai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcb
+Description: Bainouk-Samik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcc
+Description: Southern Balochi
+Added: 2009-07-29
+Macrolanguage: bal
+%%
+Type: language
+Subtag: bcd
+Description: North Babar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bce
+Description: Bamenyam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcf
+Description: Bamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcg
+Description: Baga Binari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bch
+Description: Bariai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bci
+Description: Baoulé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcj
+Description: Bardi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bck
+Description: Bunaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcl
+Description: Central Bicolano
+Added: 2009-07-29
+Macrolanguage: bik
+%%
+Type: language
+Subtag: bcm
+Description: Bannoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcn
+Description: Bali (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bco
+Description: Kaluli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcp
+Description: Bali (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcq
+Description: Bench
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcr
+Description: Babine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcs
+Description: Kohumono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bct
+Description: Bendi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcu
+Description: Awad Bing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcv
+Description: Shoo-Minda-Nye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcw
+Description: Bana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcy
+Description: Bacama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bcz
+Description: Bainouk-Gunyaamolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bda
+Description: Bayot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdb
+Description: Basap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdc
+Description: Emberá-Baudó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdd
+Description: Bunama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bde
+Description: Bade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdf
+Description: Biage
+Added: 2010-03-11
+%%
+Type: language
+Subtag: bdg
+Description: Bonggi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdh
+Description: Baka (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdi
+Description: Burun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdj
+Description: Bai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdk
+Description: Budukh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdl
+Description: Indonesian Bajau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdm
+Description: Buduma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdn
+Description: Baldemu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdo
+Description: Morom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdp
+Description: Bende
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdq
+Description: Bahnar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdr
+Description: West Coast Bajau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bds
+Description: Burunge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdt
+Description: Bokoto
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: bdu
+Description: Oroko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdv
+Description: Bodo Parja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdw
+Description: Baham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdx
+Description: Budong-Budong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdy
+Description: Bandjalang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bdz
+Description: Badeshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bea
+Description: Beaver
+Added: 2009-07-29
+%%
+Type: language
+Subtag: beb
+Description: Bebele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bec
+Description: Iceve-Maci
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bed
+Description: Bedoanas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bee
+Description: Byangsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bef
+Description: Benabena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: beg
+Description: Belait
+Added: 2009-07-29
+%%
+Type: language
+Subtag: beh
+Description: Biali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bei
+Description: Bekati'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bej
+Description: Beja
+Description: Bedawiyet
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bek
+Description: Bebeli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bem
+Description: Bemba (Zambia)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: beo
+Description: Beami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bep
+Description: Besoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: beq
+Description: Beembe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ber
+Description: Berber languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: bes
+Description: Besme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bet
+Description: Guiberoua Béte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: beu
+Description: Blagar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bev
+Description: Daloa Bété
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bew
+Description: Betawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bex
+Description: Jur Modo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bey
+Description: Beli (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bez
+Description: Bena (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfa
+Description: Bari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfb
+Description: Pauri Bareli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfc
+Description: Northern Bai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfd
+Description: Bafut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfe
+Description: Betaf
+Description: Tena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bff
+Description: Bofi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfg
+Description: Busang Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfh
+Description: Blafe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfi
+Description: British Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfj
+Description: Bafanji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfk
+Description: Ban Khor Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfl
+Description: Banda-Ndélé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfm
+Description: Mmen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfn
+Description: Bunak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfo
+Description: Malba Birifor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfp
+Description: Beba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfq
+Description: Badaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfr
+Description: Bazigar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfs
+Description: Southern Bai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bft
+Description: Balti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfu
+Description: Gahri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfw
+Description: Bondo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfx
+Description: Bantayanon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: bfy
+Description: Bagheli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bfz
+Description: Mahasu Pahari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bga
+Description: Gwamhi-Wuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgb
+Description: Bobongko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgc
+Description: Haryanvi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgd
+Description: Rathwi Bareli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bge
+Description: Bauria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgf
+Description: Bangandu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgg
+Description: Bugun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgi
+Description: Giangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgj
+Description: Bangolan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgk
+Description: Bit
+Description: Buxinhua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgl
+Description: Bo (Laos)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgm
+Description: Baga Mboteni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgn
+Description: Western Balochi
+Added: 2009-07-29
+Macrolanguage: bal
+%%
+Type: language
+Subtag: bgo
+Description: Baga Koga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgp
+Description: Eastern Balochi
+Added: 2009-07-29
+Macrolanguage: bal
+%%
+Type: language
+Subtag: bgq
+Description: Bagri
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: bgr
+Description: Bawm Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgs
+Description: Tagabawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgt
+Description: Bughotu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgu
+Description: Mbongno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgv
+Description: Warkay-Bipim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgw
+Description: Bhatri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgx
+Description: Balkan Gagauz Turkish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgy
+Description: Benggoi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bgz
+Description: Banggai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bha
+Description: Bharia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhb
+Description: Bhili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhc
+Description: Biga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhd
+Description: Bhadrawahi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhe
+Description: Bhaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhf
+Description: Odiai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhg
+Description: Binandere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhh
+Description: Bukharic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhi
+Description: Bhilali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhj
+Description: Bahing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhk
+Description: Albay Bicolano
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Macrolanguage: bik
+Comments: see fbl, lbl, rbl, ubl
+%%
+Type: language
+Subtag: bhl
+Description: Bimin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhm
+Description: Bathari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhn
+Description: Bohtan Neo-Aramaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bho
+Description: Bhojpuri
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bhp
+Description: Bima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhq
+Description: Tukang Besi South
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhr
+Description: Bara Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: bhs
+Description: Buwal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bht
+Description: Bhattiyali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhu
+Description: Bhunjia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhv
+Description: Bahau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhw
+Description: Biak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhx
+Description: Bhalay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhy
+Description: Bhele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bhz
+Description: Bada (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bia
+Description: Badimaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bib
+Description: Bissa
+Description: Bisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bic
+Description: Bikaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bid
+Description: Bidiyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bie
+Description: Bepour
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bif
+Description: Biafada
+Added: 2009-07-29
+%%
+Type: language
+Subtag: big
+Description: Biangai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bij
+Description: Vaghat-Ya-Bijim-Legeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bik
+Description: Bikol
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: bil
+Description: Bile
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bim
+Description: Bimoba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bin
+Description: Bini
+Description: Edo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: bio
+Description: Nai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bip
+Description: Bila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biq
+Description: Bipi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bir
+Description: Bisorio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bit
+Description: Berinomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biu
+Description: Biete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biv
+Description: Southern Birifor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biw
+Description: Kol (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bix
+Description: Bijori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biy
+Description: Birhor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: biz
+Description: Baloi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bja
+Description: Budza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjb
+Description: Banggarla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjc
+Description: Bariji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjd
+Description: Bandjigali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bje
+Description: Biao-Jiao Mien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjf
+Description: Barzani Jewish Neo-Aramaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjg
+Description: Bidyogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjh
+Description: Bahinemo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bji
+Description: Burji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjj
+Description: Kanauji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjk
+Description: Barok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjl
+Description: Bulu (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjm
+Description: Bajelani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjn
+Description: Banjar
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: bjo
+Description: Mid-Southern Banda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjq
+Description: Southern Betsimisaraka Malagasy
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Macrolanguage: mg
+Comments: see bzc, tkg
+%%
+Type: language
+Subtag: bjr
+Description: Binumarien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjs
+Description: Bajan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjt
+Description: Balanta-Ganja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bju
+Description: Busuu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjv
+Description: Bedjond
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjw
+Description: Bakwé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjx
+Description: Banao Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjy
+Description: Bayali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bjz
+Description: Baruga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bka
+Description: Kyak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkb
+Description: Finallig
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see ebk, obk
+%%
+Type: language
+Subtag: bkc
+Description: Baka (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkd
+Description: Binukid
+Description: Talaandig
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkf
+Description: Beeke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkg
+Description: Buraka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkh
+Description: Bakoko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bki
+Description: Baki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkj
+Description: Pande
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkk
+Description: Brokskat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkl
+Description: Berik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkm
+Description: Kom (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkn
+Description: Bukitan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bko
+Description: Kwa'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkp
+Description: Boko (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkq
+Description: Bakairí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkr
+Description: Bakumpai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bks
+Description: Northern Sorsoganon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkt
+Description: Boloki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bku
+Description: Buhid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkv
+Description: Bekwarra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkw
+Description: Bekwel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkx
+Description: Baikeno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bky
+Description: Bokyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bkz
+Description: Bungku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bla
+Description: Siksika
+Added: 2005-10-16
+%%
+Type: language
+Subtag: blb
+Description: Bilua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blc
+Description: Bella Coola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bld
+Description: Bolango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ble
+Description: Balanta-Kentohe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blf
+Description: Buol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blg
+Description: Balau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blh
+Description: Kuwaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bli
+Description: Bolia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blj
+Description: Bolongan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blk
+Description: Pa'o Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bll
+Description: Biloxi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blm
+Description: Beli (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bln
+Description: Southern Catanduanes Bicolano
+Added: 2009-07-29
+Macrolanguage: bik
+%%
+Type: language
+Subtag: blo
+Description: Anii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blp
+Description: Blablanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blq
+Description: Baluan-Pam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blr
+Description: Blang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bls
+Description: Balaesang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blt
+Description: Tai Dam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blv
+Description: Bolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blw
+Description: Balangao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blx
+Description: Mag-Indi Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bly
+Description: Notre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: blz
+Description: Balantak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bma
+Description: Lame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmb
+Description: Bembe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmc
+Description: Biem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmd
+Description: Baga Manduri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bme
+Description: Limassa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmf
+Description: Bom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmg
+Description: Bamwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmh
+Description: Kein
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmi
+Description: Bagirmi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmj
+Description: Bote-Majhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmk
+Description: Ghayavi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bml
+Description: Bomboli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmm
+Description: Northern Betsimisaraka Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: bmn
+Description: Bina (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmo
+Description: Bambalang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmp
+Description: Bulgebi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmq
+Description: Bomu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmr
+Description: Muinane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bms
+Description: Bilma Kanuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmt
+Description: Biao Mon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmu
+Description: Somba-Siawari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmv
+Description: Bum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmw
+Description: Bomwali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmx
+Description: Baimak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmy
+Description: Bemba (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bmz
+Description: Baramu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bna
+Description: Bonerate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnb
+Description: Bookan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnc
+Description: Bontok
+Added: 2009-07-29
+Scope: macrolanguage
+%%
+Type: language
+Subtag: bnd
+Description: Banda (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bne
+Description: Bintauna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnf
+Description: Masiwang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bng
+Description: Benga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bni
+Description: Bangi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnj
+Description: Eastern Tawbuid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnk
+Description: Bierebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnl
+Description: Boon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnm
+Description: Batanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnn
+Description: Bunun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bno
+Description: Bantoanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnp
+Description: Bola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnq
+Description: Bantik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnr
+Description: Butmas-Tur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bns
+Description: Bundeli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnt
+Description: Bantu languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: bnu
+Description: Bentong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnv
+Description: Bonerif
+Description: Beneraf
+Description: Edwas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnw
+Description: Bisis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnx
+Description: Bangubangu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bny
+Description: Bintulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bnz
+Description: Beezen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boa
+Description: Bora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bob
+Description: Aweer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boe
+Description: Mundabli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bof
+Description: Bolon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bog
+Description: Bamako Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boh
+Description: Boma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boi
+Description: Barbareño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boj
+Description: Anjam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bok
+Description: Bonjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bol
+Description: Bole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bom
+Description: Berom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bon
+Description: Bine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boo
+Description: Tiemacèwè Bozo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bop
+Description: Bonkiman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boq
+Description: Bogaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bor
+Description: Borôro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bot
+Description: Bongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bou
+Description: Bondei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bov
+Description: Tuwuli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bow
+Description: Rema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: box
+Description: Buamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boy
+Description: Bodo (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: boz
+Description: Tiéyaxo Bozo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpa
+Description: Dakaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpb
+Description: Barbacoas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpd
+Description: Banda-Banda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpg
+Description: Bonggo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bph
+Description: Botlikh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpi
+Description: Bagupi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpj
+Description: Binji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpk
+Description: Orowe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpl
+Description: Broome Pearling Lugger Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpm
+Description: Biyom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpn
+Description: Dzao Min
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpo
+Description: Anasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpp
+Description: Kaure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpq
+Description: Banda Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpr
+Description: Koronadal Blaan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bps
+Description: Sarangani Blaan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpt
+Description: Barrow Point
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpu
+Description: Bongu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpv
+Description: Bian Marind
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpw
+Description: Bo (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpx
+Description: Palya Bareli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpy
+Description: Bishnupriya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bpz
+Description: Bilba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqa
+Description: Tchumbuli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqb
+Description: Bagusa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqc
+Description: Boko (Benin)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqd
+Description: Bung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqf
+Description: Baga Kaloum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqg
+Description: Bago-Kusuntu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqh
+Description: Baima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqi
+Description: Bakhtiari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqj
+Description: Bandial
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqk
+Description: Banda-Mbrès
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bql
+Description: Bilakura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqm
+Description: Wumboko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqn
+Description: Bulgarian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqo
+Description: Balo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqp
+Description: Busa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqq
+Description: Biritai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqr
+Description: Burusu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqs
+Description: Bosngun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqt
+Description: Bamukumbit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqu
+Description: Boguru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqv
+Description: Begbere-Ejar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqw
+Description: Buru (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqx
+Description: Baangi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqy
+Description: Bengkala Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bqz
+Description: Bakaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bra
+Description: Braj
+Added: 2005-10-16
+%%
+Type: language
+Subtag: brb
+Description: Lave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brc
+Description: Berbice Creole Dutch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brd
+Description: Baraamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brf
+Description: Bera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brg
+Description: Baure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brh
+Description: Brahui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bri
+Description: Mokpwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brj
+Description: Bieria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brk
+Description: Birked
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brl
+Description: Birwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brm
+Description: Barambu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brn
+Description: Boruca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bro
+Description: Brokkat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brp
+Description: Barapasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brq
+Description: Breri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brr
+Description: Birao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brs
+Description: Baras
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brt
+Description: Bitare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bru
+Description: Eastern Bru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brv
+Description: Western Bru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brw
+Description: Bellari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brx
+Description: Bodo (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bry
+Description: Burui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: brz
+Description: Bilbil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsa
+Description: Abinomn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsb
+Description: Brunei Bisaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsc
+Description: Bassari
+Description: Oniyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bse
+Description: Wushi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsf
+Description: Bauchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsg
+Description: Bashkardi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsh
+Description: Kati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsi
+Description: Bassossi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsj
+Description: Bangwinji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsk
+Description: Burushaski
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsl
+Description: Basa-Gumna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsm
+Description: Busami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsn
+Description: Barasana-Eduria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bso
+Description: Buso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsp
+Description: Baga Sitemu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsq
+Description: Bassa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsr
+Description: Bassa-Kontagora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bss
+Description: Akoose
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bst
+Description: Basketo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsu
+Description: Bahonsuai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsv
+Description: Baga Sobané
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsw
+Description: Baiso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsx
+Description: Yangkam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bsy
+Description: Sabah Bisaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bta
+Description: Bata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btb
+Description: Beti (Cameroon)
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see beb, bum, bxp, eto, ewo, fan, mct
+%%
+Type: language
+Subtag: btc
+Description: Bati (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btd
+Description: Batak Dairi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bte
+Description: Gamo-Ningi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btf
+Description: Birgit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btg
+Description: Gagnoa Bété
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bth
+Description: Biatah Bidayuh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bti
+Description: Burate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btj
+Description: Bacanese Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: btk
+Description: Batak languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: btl
+Description: Bhatola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btm
+Description: Batak Mandailing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btn
+Description: Ratagnon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bto
+Description: Rinconada Bikol
+Added: 2009-07-29
+Macrolanguage: bik
+%%
+Type: language
+Subtag: btp
+Description: Budibud
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btq
+Description: Batek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btr
+Description: Baetora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bts
+Description: Batak Simalungun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btt
+Description: Bete-Bendi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btu
+Description: Batu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btv
+Description: Bateri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btw
+Description: Butuanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btx
+Description: Batak Karo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bty
+Description: Bobot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: btz
+Description: Batak Alas-Kluet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bua
+Description: Buriat
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: bub
+Description: Bua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buc
+Description: Bushi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bud
+Description: Ntcham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bue
+Description: Beothuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buf
+Description: Bushoong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bug
+Description: Buginese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: buh
+Description: Younuo Bunu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bui
+Description: Bongili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buj
+Description: Basa-Gurmana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buk
+Description: Bugawac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bum
+Description: Bulu (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bun
+Description: Sherbro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buo
+Description: Terei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bup
+Description: Busoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buq
+Description: Brem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bus
+Description: Bokobaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: but
+Description: Bungain
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buu
+Description: Budu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buv
+Description: Bun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buw
+Description: Bubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bux
+Description: Boghom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buy
+Description: Bullom So
+Added: 2009-07-29
+%%
+Type: language
+Subtag: buz
+Description: Bukwen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bva
+Description: Barein
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvb
+Description: Bube
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvc
+Description: Baelelea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvd
+Description: Baeggu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bve
+Description: Berau Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: bvf
+Description: Boor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvg
+Description: Bonkeng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvh
+Description: Bure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvi
+Description: Belanda Viri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvj
+Description: Baan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvk
+Description: Bukat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvl
+Description: Bolivian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvm
+Description: Bamunka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvn
+Description: Buna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvo
+Description: Bolgo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvq
+Description: Birri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvr
+Description: Burarra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvt
+Description: Bati (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvu
+Description: Bukit Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: bvv
+Description: Baniva
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvw
+Description: Boga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvx
+Description: Dibole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bvy
+Description: Baybayanon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: bvz
+Description: Bauzi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwa
+Description: Bwatoo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwb
+Description: Namosi-Naitasiri-Serua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwc
+Description: Bwile
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwd
+Description: Bwaidoka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwe
+Description: Bwe Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwf
+Description: Boselewa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwg
+Description: Barwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwh
+Description: Bishuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwi
+Description: Baniwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwj
+Description: Láá Láá Bwamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwk
+Description: Bauwaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwl
+Description: Bwela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwm
+Description: Biwat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwn
+Description: Wunai Bunu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwo
+Description: Boro (Ethiopia)
+Description: Borna (Ethiopia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwp
+Description: Mandobo Bawah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwq
+Description: Southern Bobo Madaré
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwr
+Description: Bura-Pabir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bws
+Description: Bomboma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwt
+Description: Bafaw-Balong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwu
+Description: Buli (Ghana)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bww
+Description: Bwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwx
+Description: Bu-Nao Bunu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwy
+Description: Cwi Bwamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bwz
+Description: Bwisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxa
+Description: Bauro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxb
+Description: Belanda Bor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxc
+Description: Molengue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxd
+Description: Pela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxe
+Description: Birale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxf
+Description: Bilur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxg
+Description: Bangala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxh
+Description: Buhutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxi
+Description: Pirlatapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxj
+Description: Bayungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxk
+Description: Bukusu
+Description: Lubukusu
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: bxl
+Description: Jalkunan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxm
+Description: Mongolia Buriat
+Added: 2009-07-29
+Macrolanguage: bua
+%%
+Type: language
+Subtag: bxn
+Description: Burduna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxo
+Description: Barikanchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxp
+Description: Bebil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxq
+Description: Beele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxr
+Description: Russia Buriat
+Added: 2009-07-29
+Macrolanguage: bua
+%%
+Type: language
+Subtag: bxs
+Description: Busam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxu
+Description: China Buriat
+Added: 2009-07-29
+Macrolanguage: bua
+%%
+Type: language
+Subtag: bxv
+Description: Berakou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxw
+Description: Bankagooma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxx
+Description: Borna (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bxz
+Description: Binahari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bya
+Description: Batak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byb
+Description: Bikya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byc
+Description: Ubaghara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byd
+Description: Benyadu'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bye
+Description: Pouye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byf
+Description: Bete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byg
+Description: Baygo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byh
+Description: Bhujel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byi
+Description: Buyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byj
+Description: Bina (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byk
+Description: Biao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byl
+Description: Bayono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bym
+Description: Bidyara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byn
+Description: Bilin
+Description: Blin
+Added: 2005-10-16
+%%
+Type: language
+Subtag: byo
+Description: Biyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byp
+Description: Bumaji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byq
+Description: Basay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byr
+Description: Baruya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bys
+Description: Burak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byt
+Description: Berti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byv
+Description: Medumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byw
+Description: Belhariya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byx
+Description: Qaqet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byy
+Description: Buya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: byz
+Description: Banaro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bza
+Description: Bandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzb
+Description: Andio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzc
+Description: Southern Betsimisaraka Malagasy
+Added: 2011-08-16
+%%
+Type: language
+Subtag: bzd
+Description: Bribri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bze
+Description: Jenaama Bozo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzf
+Description: Boikin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzg
+Description: Babuza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzh
+Description: Mapos Buang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzi
+Description: Bisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzj
+Description: Belize Kriol English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzk
+Description: Nicaragua Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzl
+Description: Boano (Sulawesi)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzm
+Description: Bolondo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzn
+Description: Boano (Maluku)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzo
+Description: Bozaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzp
+Description: Kemberano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzq
+Description: Buli (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzr
+Description: Biri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzs
+Description: Brazilian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzt
+Description: Brithenig
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzu
+Description: Burmeso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzv
+Description: Bebe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzw
+Description: Basa (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzx
+Description: Kɛlɛngaxo Bozo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzy
+Description: Obanliku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: bzz
+Description: Evant
+Added: 2009-07-29
+%%
+Type: language
+Subtag: caa
+Description: Chortí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cab
+Description: Garifuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cac
+Description: Chuj
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cad
+Description: Caddo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cae
+Description: Lehar
+Description: Laalaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: caf
+Description: Southern Carrier
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cag
+Description: Nivaclé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cah
+Description: Cahuarano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cai
+Description: Central American Indian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: caj
+Description: Chané
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cak
+Description: Kaqchikel
+Description: Cakchiquel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cal
+Description: Carolinian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cam
+Description: Cemuhî
+Added: 2009-07-29
+%%
+Type: language
+Subtag: can
+Description: Chambri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cao
+Description: Chácobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cap
+Description: Chipaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: caq
+Description: Car Nicobarese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: car
+Description: Galibi Carib
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cas
+Description: Tsimané
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cau
+Description: Caucasian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cav
+Description: Cavineña
+Added: 2009-07-29
+%%
+Type: language
+Subtag: caw
+Description: Callawalla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cax
+Description: Chiquitano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cay
+Description: Cayuga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: caz
+Description: Canichana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cba
+Description: Chibchan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: cbb
+Description: Cabiyarí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbc
+Description: Carapana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbd
+Description: Carijona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbe
+Description: Chipiajes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbg
+Description: Chimila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbh
+Description: Cagua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbi
+Description: Chachi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbj
+Description: Ede Cabe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbk
+Description: Chavacano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbl
+Description: Bualkhaw Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbn
+Description: Nyahkur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbo
+Description: Izora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbr
+Description: Cashibo-Cacataibo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbs
+Description: Cashinahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbt
+Description: Chayahuita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbu
+Description: Candoshi-Shapra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbv
+Description: Cacua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cbw
+Description: Kinabalian
+Added: 2010-03-11
+%%
+Type: language
+Subtag: cby
+Description: Carabayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cca
+Description: Cauca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccc
+Description: Chamicuro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccd
+Description: Cafundo Creole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cce
+Description: Chopi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccg
+Description: Samba Daka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cch
+Description: Atsam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccj
+Description: Kasanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccl
+Description: Cutchi-Swahili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccm
+Description: Malaccan Creole Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccn
+Description: North Caucasian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: cco
+Description: Comaltepec Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccp
+Description: Chakma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccq
+Description: Chaungtha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccr
+Description: Cacaopera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ccs
+Description: South Caucasian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: cda
+Description: Choni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdc
+Description: Chadic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: cdd
+Description: Caddoan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: cde
+Description: Chenchu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdf
+Description: Chiru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdg
+Description: Chamari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdh
+Description: Chambeali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdi
+Description: Chodri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdj
+Description: Churahi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdm
+Description: Chepang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdn
+Description: Chaudangsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdo
+Description: Min Dong Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: cdr
+Description: Cinda-Regi-Tiyal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cds
+Description: Chadian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdy
+Description: Chadong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cdz
+Description: Koda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cea
+Description: Lower Chehalis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ceb
+Description: Cebuano
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ceg
+Description: Chamacoco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cel
+Description: Celtic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cen
+Description: Cen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cet
+Description: Centúúm
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cfa
+Description: Dijim-Bwilim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cfd
+Description: Cara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cfg
+Description: Como Karim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cfm
+Description: Falam Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cga
+Description: Changriwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cgc
+Description: Kagayanen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cgg
+Description: Chiga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cgk
+Description: Chocangacakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chb
+Description: Chibcha
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chc
+Description: Catawba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chd
+Description: Highland Oaxaca Chontal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chf
+Description: Tabasco Chontal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chg
+Description: Chagatai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chh
+Description: Chinook
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chj
+Description: Ojitlán Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chk
+Description: Chuukese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chl
+Description: Cahuilla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chm
+Description: Mari (Russia)
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: chn
+Description: Chinook jargon
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cho
+Description: Choctaw
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chp
+Description: Chipewyan
+Description: Dene Suline
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chq
+Description: Quiotepec Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chr
+Description: Cherokee
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cht
+Description: Cholón
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chw
+Description: Chuwabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chx
+Description: Chantyal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: chy
+Description: Cheyenne
+Added: 2005-10-16
+%%
+Type: language
+Subtag: chz
+Description: Ozumacín Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cia
+Description: Cia-Cia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cib
+Description: Ci Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cic
+Description: Chickasaw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cid
+Description: Chimariko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cie
+Description: Cineni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cih
+Description: Chinali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cik
+Description: Chitkuli Kinnauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cim
+Description: Cimbrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cin
+Description: Cinta Larga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cip
+Description: Chiapanec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cir
+Description: Tiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ciw
+Description: Chippewa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: ciy
+Description: Chaima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cja
+Description: Western Cham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cje
+Description: Chru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjh
+Description: Upper Chehalis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cji
+Description: Chamalal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjk
+Description: Chokwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjm
+Description: Eastern Cham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjn
+Description: Chenapian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjo
+Description: Ashéninka Pajonal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjp
+Description: Cabécar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjr
+Description: Chorotega
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: mom
+%%
+Type: language
+Subtag: cjs
+Description: Shor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjv
+Description: Chuave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cjy
+Description: Jinyu Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: cka
+Description: Khumi Awa Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckb
+Description: Central Kurdish
+Added: 2009-07-29
+Macrolanguage: ku
+%%
+Type: language
+Subtag: ckh
+Description: Chak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckl
+Description: Cibak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cko
+Description: Anufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckq
+Description: Kajakse
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckr
+Description: Kairak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cks
+Description: Tayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckt
+Description: Chukot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cku
+Description: Koasati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckv
+Description: Kavalan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckx
+Description: Caka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cky
+Description: Cakfem-Mushere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ckz
+Description: Cakchiquel-Quiché Mixed Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cla
+Description: Ron
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clc
+Description: Chilcotin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cld
+Description: Chaldean Neo-Aramaic
+Added: 2009-07-29
+Macrolanguage: syr
+%%
+Type: language
+Subtag: cle
+Description: Lealao Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clh
+Description: Chilisso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cli
+Description: Chakali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clk
+Description: Idu-Mishmi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cll
+Description: Chala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clm
+Description: Clallam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clo
+Description: Lowland Oaxaca Chontal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clu
+Description: Caluyanun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: clw
+Description: Chulym
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cly
+Description: Eastern Highland Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cma
+Description: Maa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmc
+Description: Chamic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cme
+Description: Cerma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmg
+Description: Classical Mongolian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmi
+Description: Emberá-Chamí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmk
+Description: Chimakum
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: xch
+%%
+Type: language
+Subtag: cml
+Description: Campalagian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmm
+Description: Michigamea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmn
+Description: Mandarin Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: cmo
+Description: Central Mnong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmr
+Description: Mro Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cms
+Description: Messapic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cmt
+Description: Camtho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cna
+Description: Changthang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnb
+Description: Chinbon Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnc
+Description: Côông
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cng
+Description: Northern Qiang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnh
+Description: Haka Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cni
+Description: Asháninka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnk
+Description: Khumi Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnl
+Description: Lalana Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cno
+Description: Con
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cns
+Description: Central Asmat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnt
+Description: Tepetotutla Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnu
+Description: Chenoua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnw
+Description: Ngawn Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cnx
+Description: Middle Cornish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coa
+Description: Cocos Islands Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: cob
+Description: Chicomuceltec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coc
+Description: Cocopa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cod
+Description: Cocama-Cocamilla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coe
+Description: Koreguaje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cof
+Description: Colorado
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cog
+Description: Chong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coh
+Description: Chonyi-Dzihana-Kauma
+Description: Chichonyi-Chidzihana-Chikauma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coj
+Description: Cochimi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cok
+Description: Santa Teresa Cora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: col
+Description: Columbia-Wenatchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: com
+Description: Comanche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: con
+Description: Cofán
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coo
+Description: Comox
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cop
+Description: Coptic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: coq
+Description: Coquille
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cot
+Description: Caquinte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cou
+Description: Wamey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cov
+Description: Cao Miao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cow
+Description: Cowlitz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cox
+Description: Nanti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coy
+Description: Coyaima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: coz
+Description: Chochotec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpa
+Description: Palantla Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpb
+Description: Ucayali-Yurúa Ashéninka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpc
+Description: Ajyíninka Apurucayali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpe
+Description: English-based creoles and pidgins
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cpf
+Description: French-based creoles and pidgins
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cpg
+Description: Cappadocian Greek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpi
+Description: Chinese Pidgin English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpn
+Description: Cherepon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpp
+Description: Portuguese-based creoles and pidgins
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cps
+Description: Capiznon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpu
+Description: Pichis Ashéninka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cpx
+Description: Pu-Xian Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: cpy
+Description: South Ucayali Ashéninka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cqd
+Description: Chuanqiandian Cluster Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: cqu
+Description: Chilean Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: cra
+Description: Chara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crb
+Description: Island Carib
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crc
+Description: Lonwolwol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crd
+Description: Coeur d'Alene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crf
+Description: Caramanta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crg
+Description: Michif
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crh
+Description: Crimean Tatar
+Description: Crimean Turkish
+Added: 2005-10-16
+%%
+Type: language
+Subtag: cri
+Description: Sãotomense
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crj
+Description: Southern East Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: crk
+Description: Plains Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: crl
+Description: Northern East Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: crm
+Description: Moose Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: crn
+Description: El Nayar Cora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cro
+Description: Crow
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crp
+Description: Creoles and pidgins
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: crq
+Description: Iyo'wujwa Chorote
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crr
+Description: Carolina Algonquian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crs
+Description: Seselwa Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crt
+Description: Iyojwa'ja Chorote
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crv
+Description: Chaura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crw
+Description: Chrau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crx
+Description: Carrier
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cry
+Description: Cori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: crz
+Description: Cruzeño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csa
+Description: Chiltepec Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csb
+Description: Kashubian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: csc
+Description: Catalan Sign Language
+Description: Lengua de señas catalana
+Description: Llengua de Signes Catalana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csd
+Description: Chiangmai Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cse
+Description: Czech Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csf
+Description: Cuba Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csg
+Description: Chilean Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csh
+Description: Asho Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csi
+Description: Coast Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csk
+Description: Jola-Kasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csl
+Description: Chinese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csm
+Description: Central Sierra Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csn
+Description: Colombian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cso
+Description: Sochiapam Chinantec
+Description: Sochiapan Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csq
+Description: Croatia Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csr
+Description: Costa Rican Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: css
+Description: Southern Ohlone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cst
+Description: Northern Ohlone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csu
+Description: Central Sudanic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: csw
+Description: Swampy Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: csy
+Description: Siyin Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: csz
+Description: Coos
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cta
+Description: Tataltepec Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctc
+Description: Chetco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctd
+Description: Tedim Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cte
+Description: Tepinapa Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctg
+Description: Chittagonian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctl
+Description: Tlacoatzintepec Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctm
+Description: Chitimacha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctn
+Description: Chhintange
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cto
+Description: Emberá-Catío
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctp
+Description: Western Highland Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cts
+Description: Northern Catanduanes Bicolano
+Added: 2009-07-29
+Macrolanguage: bik
+%%
+Type: language
+Subtag: ctt
+Description: Wayanad Chetti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctu
+Description: Chol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ctz
+Description: Zacatepec Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cua
+Description: Cua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cub
+Description: Cubeo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuc
+Description: Usila Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cug
+Description: Cung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuh
+Description: Chuka
+Description: Gichuka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cui
+Description: Cuiba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuj
+Description: Mashco Piro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuk
+Description: San Blas Kuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cul
+Description: Culina
+Description: Kulina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cum
+Description: Cumeral
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuo
+Description: Cumanagoto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cup
+Description: Cupeño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuq
+Description: Cun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cur
+Description: Chhulung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cus
+Description: Cushitic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: cut
+Description: Teutila Cuicatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuu
+Description: Tai Ya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuv
+Description: Cuvok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cuw
+Description: Chukwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cux
+Description: Tepeuxila Cuicatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cvg
+Description: Chug
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cvn
+Description: Valle Nacional Chinantec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cwa
+Description: Kabwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cwb
+Description: Maindo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cwd
+Description: Woods Cree
+Added: 2009-07-29
+Macrolanguage: cr
+%%
+Type: language
+Subtag: cwe
+Description: Kwere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cwg
+Description: Chewong
+Description: Cheq Wong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cwt
+Description: Kuwaataay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cya
+Description: Nopala Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cyb
+Description: Cayubaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: cyo
+Description: Cuyonon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: czh
+Description: Huizhou Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: czk
+Description: Knaanic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: czn
+Description: Zenzontepec Chatino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: czo
+Description: Min Zhong Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: czt
+Description: Zotung Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: daa
+Description: Dangaléat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dac
+Description: Dambi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dad
+Description: Marik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dae
+Description: Duupa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: daf
+Description: Dan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dag
+Description: Dagbani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dah
+Description: Gwahatike
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dai
+Description: Day
+Added: 2009-07-29
+%%
+Type: language
+Subtag: daj
+Description: Dar Fur Daju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dak
+Description: Dakota
+Added: 2005-10-16
+%%
+Type: language
+Subtag: dal
+Description: Dahalo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dam
+Description: Damakawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dao
+Description: Daai Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dap
+Description: Nisi (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: daq
+Description: Dandami Maria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dar
+Description: Dargwa
+Added: 2005-10-16
+%%
+Type: language
+Subtag: das
+Description: Daho-Doo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dau
+Description: Dar Sila Daju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dav
+Description: Taita
+Description: Dawida
+Added: 2009-07-29
+%%
+Type: language
+Subtag: daw
+Description: Davawenyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dax
+Description: Dayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: day
+Description: Land Dayak languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: daz
+Description: Dao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dba
+Description: Bangi Me
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbb
+Description: Deno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbd
+Description: Dadiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbe
+Description: Dabe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbf
+Description: Edopi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbg
+Description: Dogul Dom Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbi
+Description: Doka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbj
+Description: Ida'an
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbl
+Description: Dyirbal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbm
+Description: Duguri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbn
+Description: Duriankere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbo
+Description: Dulbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbp
+Description: Duwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbq
+Description: Daba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbr
+Description: Dabarre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbu
+Description: Bondum Dom Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dbv
+Description: Dungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dby
+Description: Dibiyaso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dcc
+Description: Deccan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dcr
+Description: Negerhollands
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddd
+Description: Dongotono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dde
+Description: Doondo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddg
+Description: Fataluku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddi
+Description: West Goodenough
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddj
+Description: Jaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddn
+Description: Dendi (Benin)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddo
+Description: Dido
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dds
+Description: Donno So Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ddw
+Description: Dawera-Daweloor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dec
+Description: Dagik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ded
+Description: Dedua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dee
+Description: Dewoin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: def
+Description: Dezfuli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: deg
+Description: Degema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: deh
+Description: Dehwari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dei
+Description: Demisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dek
+Description: Dek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: del
+Description: Delaware
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: dem
+Description: Dem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: den
+Description: Slave (Athapascan)
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: dep
+Description: Pidgin Delaware
+Added: 2009-07-29
+%%
+Type: language
+Subtag: deq
+Description: Dendi (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: der
+Description: Deori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: des
+Description: Desano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dev
+Description: Domung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dez
+Description: Dengese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dga
+Description: Southern Dagaare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgb
+Description: Bunoge Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgc
+Description: Casiguran Dumagat Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgd
+Description: Dagaari Dioula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dge
+Description: Degenan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgg
+Description: Doga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgh
+Description: Dghwede
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgi
+Description: Northern Dagara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgk
+Description: Dagba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgn
+Description: Dagoman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgo
+Description: Dogri (individual language)
+Added: 2009-07-29
+Macrolanguage: doi
+%%
+Type: language
+Subtag: dgr
+Description: Dogrib
+Added: 2005-10-16
+%%
+Type: language
+Subtag: dgs
+Description: Dogoso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgu
+Description: Degaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgx
+Description: Doghoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dgz
+Description: Daga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dha
+Description: Dhanwar (India)
+Added: 2009-07-29
+Deprecated: 2011-08-16
+%%
+Type: language
+Subtag: dhd
+Description: Dhundari
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: dhg
+Description: Dhangu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhi
+Description: Dhimal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhl
+Description: Dhalandji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhm
+Description: Zemba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhn
+Description: Dhanki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dho
+Description: Dhodia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhr
+Description: Dhargari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhs
+Description: Dhaiso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhu
+Description: Dhurga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhv
+Description: Dehu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dhw
+Description: Dhanwar (Nepal)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dia
+Description: Dia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dib
+Description: South Central Dinka
+Added: 2009-07-29
+Macrolanguage: din
+%%
+Type: language
+Subtag: dic
+Description: Lakota Dida
+Added: 2009-07-29
+%%
+Type: language
+Subtag: did
+Description: Didinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dif
+Description: Dieri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dig
+Description: Digo
+Description: Chidigo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dih
+Description: Kumiai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dii
+Description: Dimbong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dij
+Description: Dai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dik
+Description: Southwestern Dinka
+Added: 2009-07-29
+Macrolanguage: din
+%%
+Type: language
+Subtag: dil
+Description: Dilling
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dim
+Description: Dime
+Added: 2009-07-29
+%%
+Type: language
+Subtag: din
+Description: Dinka
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: dio
+Description: Dibo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dip
+Description: Northeastern Dinka
+Added: 2009-07-29
+Macrolanguage: din
+%%
+Type: language
+Subtag: diq
+Description: Dimli (individual language)
+Added: 2009-07-29
+Macrolanguage: zza
+%%
+Type: language
+Subtag: dir
+Description: Dirim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dis
+Description: Dimasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dit
+Description: Dirari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: diu
+Description: Diriku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: diw
+Description: Northwestern Dinka
+Added: 2009-07-29
+Macrolanguage: din
+%%
+Type: language
+Subtag: dix
+Description: Dixon Reef
+Added: 2009-07-29
+%%
+Type: language
+Subtag: diy
+Description: Diuwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: diz
+Description: Ding
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djb
+Description: Djinba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djc
+Description: Dar Daju Daju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djd
+Description: Djamindjung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dje
+Description: Zarma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djf
+Description: Djangun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dji
+Description: Djinang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djj
+Description: Djeebbana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djk
+Description: Eastern Maroon Creole
+Description: Businenge Tongo
+Description: Nenge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djl
+Description: Djiwarli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djm
+Description: Jamsay Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djn
+Description: Djauan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djo
+Description: Jangkang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djr
+Description: Djambarrpuyngu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dju
+Description: Kapriman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: djw
+Description: Djawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dka
+Description: Dakpakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dkk
+Description: Dakka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dkl
+Description: Kolum So Dogon
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Comments: see aqd, dmb
+%%
+Type: language
+Subtag: dkr
+Description: Kuijau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dks
+Description: Southeastern Dinka
+Added: 2009-07-29
+Macrolanguage: din
+%%
+Type: language
+Subtag: dkx
+Description: Mazagway
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dlg
+Description: Dolgan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dlm
+Description: Dalmatian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dln
+Description: Darlong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dma
+Description: Duma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmb
+Description: Mombo Dogon
+Added: 2011-08-16
+%%
+Type: language
+Subtag: dmc
+Description: Dimir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dme
+Description: Dugwor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmg
+Description: Upper Kinabatangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmk
+Description: Domaaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dml
+Description: Dameli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmm
+Description: Dama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmn
+Description: Mande languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: dmo
+Description: Kemezung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmr
+Description: East Damar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dms
+Description: Dampelas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmu
+Description: Dubu
+Description: Tebi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmv
+Description: Dumpas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmx
+Description: Dema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dmy
+Description: Demta
+Description: Sowari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dna
+Description: Upper Grand Valley Dani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnd
+Description: Daonda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dne
+Description: Ndendeule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dng
+Description: Dungan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dni
+Description: Lower Grand Valley Dani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnk
+Description: Dengka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnn
+Description: Dzùùngoo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnr
+Description: Danaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnt
+Description: Mid Grand Valley Dani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnu
+Description: Danau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dnw
+Description: Western Dani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dny
+Description: Dení
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doa
+Description: Dom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dob
+Description: Dobu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doc
+Description: Northern Dong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doe
+Description: Doe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dof
+Description: Domu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doh
+Description: Dong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doi
+Description: Dogri (macrolanguage)
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: dok
+Description: Dondo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dol
+Description: Doso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: don
+Description: Toura (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doo
+Description: Dongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dop
+Description: Lukpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doq
+Description: Dominican Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dor
+Description: Dori'o
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dos
+Description: Dogosé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dot
+Description: Dass
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dov
+Description: Dombe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dow
+Description: Doyayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dox
+Description: Bussa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doy
+Description: Dompo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: doz
+Description: Dorze
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dpp
+Description: Papar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dra
+Description: Dravidian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: drb
+Description: Dair
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drc
+Description: Minderico
+Added: 2011-08-16
+%%
+Type: language
+Subtag: drd
+Description: Darmiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dre
+Description: Dolpo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drg
+Description: Rungus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drh
+Description: Darkhat
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: khk
+%%
+Type: language
+Subtag: dri
+Description: C'lela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drl
+Description: Darling
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drn
+Description: West Damar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dro
+Description: Daro-Matu Melanau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drq
+Description: Dura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drr
+Description: Dororo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drs
+Description: Gedeo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drt
+Description: Drents
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dru
+Description: Rukai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: drw
+Description: Darwazi
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: prs
+%%
+Type: language
+Subtag: dry
+Description: Darai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsb
+Description: Lower Sorbian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: dse
+Description: Dutch Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsh
+Description: Daasanach
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsi
+Description: Disa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsl
+Description: Danish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsn
+Description: Dusner
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dso
+Description: Desiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dsq
+Description: Tadaksahak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dta
+Description: Daur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtb
+Description: Labuk-Kinabatangan Kadazan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtd
+Description: Ditidaht
+Added: 2011-08-16
+%%
+Type: language
+Subtag: dti
+Description: Ana Tinga Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtk
+Description: Tene Kan Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtm
+Description: Tomo Kan Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtp
+Description: Central Dusun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtr
+Description: Lotud
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dts
+Description: Toro So Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtt
+Description: Toro Tegu Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dtu
+Description: Tebul Ure Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dua
+Description: Duala
+Added: 2005-10-16
+%%
+Type: language
+Subtag: dub
+Description: Dubli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duc
+Description: Duna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dud
+Description: Hun-Saare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: due
+Description: Umiray Dumaget Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duf
+Description: Dumbea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dug
+Description: Duruma
+Description: Chiduruma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duh
+Description: Dungra Bhil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dui
+Description: Dumun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duj
+Description: Dhuwal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duk
+Description: Uyajitaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dul
+Description: Alabat Island Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dum
+Description: Middle Dutch (ca. 1050-1350)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: dun
+Description: Dusun Deyah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duo
+Description: Dupaninan Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dup
+Description: Duano
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: duq
+Description: Dusun Malang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dur
+Description: Dii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dus
+Description: Dumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duu
+Description: Drung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duv
+Description: Duvle
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duw
+Description: Dusun Witu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dux
+Description: Duungooma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duy
+Description: Dicamay Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: duz
+Description: Duli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dva
+Description: Duau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dwa
+Description: Diri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dwl
+Description: Walo Kumbe Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dwr
+Description: Dawro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dws
+Description: Dutton World Speedwords
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dww
+Description: Dawawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dya
+Description: Dyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyb
+Description: Dyaberdyaber
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyd
+Description: Dyugun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyg
+Description: Villa Viciosa Agta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyi
+Description: Djimini Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dym
+Description: Yanda Dom Dogon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyn
+Description: Dyangadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyo
+Description: Jola-Fonyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dyu
+Description: Dyula
+Added: 2005-10-16
+%%
+Type: language
+Subtag: dyy
+Description: Dyaabugay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dza
+Description: Tunzu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dzd
+Description: Daza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dzg
+Description: Dazaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dzl
+Description: Dzalakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: dzn
+Description: Dzando
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ebg
+Description: Ebughu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ebk
+Description: Eastern Bontok
+Added: 2010-03-11
+Macrolanguage: bnc
+%%
+Type: language
+Subtag: ebo
+Description: Teke-Ebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ebr
+Description: Ebrié
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ebu
+Description: Embu
+Description: Kiembu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ecr
+Description: Eteocretan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ecs
+Description: Ecuadorian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ecy
+Description: Eteocypriot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eee
+Description: E
+Added: 2009-07-29
+%%
+Type: language
+Subtag: efa
+Description: Efai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: efe
+Description: Efe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: efi
+Description: Efik
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ega
+Description: Ega
+Added: 2009-07-29
+%%
+Type: language
+Subtag: egl
+Description: Emilian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ego
+Description: Eggon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: egx
+Description: Egyptian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: egy
+Description: Egyptian (Ancient)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ehu
+Description: Ehueun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eip
+Description: Eipomek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eit
+Description: Eitiep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eiv
+Description: Askopan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eja
+Description: Ejamat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eka
+Description: Ekajuk
+Added: 2005-10-16
+%%
+Type: language
+Subtag: eke
+Description: Ekit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ekg
+Description: Ekari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eki
+Description: Eki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ekk
+Description: Standard Estonian
+Added: 2009-07-29
+Macrolanguage: et
+%%
+Type: language
+Subtag: ekl
+Description: Kol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ekm
+Description: Elip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eko
+Description: Koti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ekp
+Description: Ekpeye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ekr
+Description: Yace
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eky
+Description: Eastern Kayah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ele
+Description: Elepi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elh
+Description: El Hugeirat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eli
+Description: Nding
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elk
+Description: Elkei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elm
+Description: Eleme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elo
+Description: El Molo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elp
+Description: Elpaputih
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elu
+Description: Elu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: elx
+Description: Elamite
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ema
+Description: Emai-Iuleha-Ora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emb
+Description: Embaloh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eme
+Description: Emerillon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emg
+Description: Eastern Meohang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emi
+Description: Mussau-Emira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emk
+Description: Eastern Maninkakan
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: emm
+Description: Mamulique
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emn
+Description: Eman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emo
+Description: Emok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emp
+Description: Northern Emberá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ems
+Description: Pacific Gulf Yupik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emu
+Description: Eastern Muria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emw
+Description: Emplawas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: emx
+Description: Erromintxela
+Added: 2010-03-11
+%%
+Type: language
+Subtag: emy
+Description: Epigraphic Mayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ena
+Description: Apali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enb
+Description: Markweeta
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: enc
+Description: En
+Added: 2009-07-29
+%%
+Type: language
+Subtag: end
+Description: Ende
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enf
+Description: Forest Enets
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enh
+Description: Tundra Enets
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enm
+Description: Middle English (1100-1500)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: enn
+Description: Engenni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eno
+Description: Enggano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enq
+Description: Enga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enr
+Description: Emumu
+Description: Emem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enu
+Description: Enu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: env
+Description: Enwan (Edu State)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: enw
+Description: Enwan (Akwa Ibom State)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eot
+Description: Beti (Côte d'Ivoire)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: epi
+Description: Epie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: era
+Description: Eravallan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: erg
+Description: Sie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: erh
+Description: Eruwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eri
+Description: Ogea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: erk
+Description: South Efate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ero
+Description: Horpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: err
+Description: Erre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ers
+Description: Ersu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ert
+Description: Eritai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: erw
+Description: Erokwanas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ese
+Description: Ese Ejja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esh
+Description: Eshtehardi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esi
+Description: North Alaskan Inupiatun
+Added: 2009-07-29
+Macrolanguage: ik
+%%
+Type: language
+Subtag: esk
+Description: Northwest Alaska Inupiatun
+Added: 2009-07-29
+Macrolanguage: ik
+%%
+Type: language
+Subtag: esl
+Description: Egypt Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esm
+Description: Esuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esn
+Description: Salvadoran Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eso
+Description: Estonian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esq
+Description: Esselen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ess
+Description: Central Siberian Yupik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esu
+Description: Central Yupik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: esx
+Description: Eskimo-Aleut languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: etb
+Description: Etebi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etc
+Description: Etchemin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eth
+Description: Ethiopian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etn
+Description: Eton (Vanuatu)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eto
+Description: Eton (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etr
+Description: Edolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ets
+Description: Yekhee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ett
+Description: Etruscan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etu
+Description: Ejagham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etx
+Description: Eten
+Added: 2009-07-29
+%%
+Type: language
+Subtag: etz
+Description: Semimi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: euq
+Description: Basque (family)
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: eve
+Description: Even
+Added: 2009-07-29
+%%
+Type: language
+Subtag: evh
+Description: Uvbie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: evn
+Description: Evenki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ewo
+Description: Ewondo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ext
+Description: Extremaduran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eya
+Description: Eyak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: eyo
+Description: Keiyo
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: eze
+Description: Uzekwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: faa
+Description: Fasu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fab
+Description: Fa D'ambu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fad
+Description: Wagi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: faf
+Description: Fagani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fag
+Description: Finongan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fah
+Description: Baissa Fali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fai
+Description: Faiwol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: faj
+Description: Faita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fak
+Description: Fang (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fal
+Description: South Fali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fam
+Description: Fam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fan
+Description: Fang (Equatorial Guinea)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: fap
+Description: Palor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: far
+Description: Fataleka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fat
+Description: Fanti
+Added: 2005-10-16
+Macrolanguage: ak
+%%
+Type: language
+Subtag: fau
+Description: Fayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fax
+Description: Fala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fay
+Description: Southwestern Fars
+Added: 2009-07-29
+%%
+Type: language
+Subtag: faz
+Description: Northwestern Fars
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fbl
+Description: West Albay Bikol
+Added: 2010-03-11
+Macrolanguage: bik
+%%
+Type: language
+Subtag: fcs
+Description: Quebec Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fer
+Description: Feroge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ffi
+Description: Foia Foia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ffm
+Description: Maasina Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fgr
+Description: Fongoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fia
+Description: Nobiin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fie
+Description: Fyer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fil
+Description: Filipino
+Description: Pilipino
+Added: 2005-10-16
+%%
+Type: language
+Subtag: fip
+Description: Fipa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fir
+Description: Firan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fit
+Description: Tornedalen Finnish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fiu
+Description: Finno-Ugrian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: fiw
+Description: Fiwaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fkv
+Description: Kven Finnish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fla
+Description: Kalispel-Pend d'Oreille
+Added: 2009-07-29
+%%
+Type: language
+Subtag: flh
+Description: Foau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fli
+Description: Fali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fll
+Description: North Fali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fln
+Description: Flinders Island
+Added: 2009-07-29
+%%
+Type: language
+Subtag: flr
+Description: Fuliiru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fly
+Description: Tsotsitaal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fmp
+Description: Fe'fe'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fmu
+Description: Far Western Muria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fng
+Description: Fanagalo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fni
+Description: Fania
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fod
+Description: Foodo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: foi
+Description: Foi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fom
+Description: Foma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fon
+Description: Fon
+Added: 2005-10-16
+%%
+Type: language
+Subtag: for
+Description: Fore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fos
+Description: Siraya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fox
+Description: Formosan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: fpe
+Description: Fernando Po Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fqs
+Description: Fas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frc
+Description: Cajun French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frd
+Description: Fordata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frk
+Description: Frankish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frm
+Description: Middle French (ca. 1400-1600)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: fro
+Description: Old French (842-ca. 1400)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: frp
+Description: Arpitan
+Description: Francoprovençal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frq
+Description: Forak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: frr
+Description: Northern Frisian
+Added: 2006-03-08
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: frs
+Description: Eastern Frisian
+Added: 2006-03-08
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: frt
+Description: Fortsenal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fse
+Description: Finnish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fsl
+Description: French Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fss
+Description: Finland-Swedish Sign Language
+Description: finlandssvenskt teckenspråk
+Description: suomenruotsalainen viittomakieli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fub
+Description: Adamawa Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fuc
+Description: Pulaar
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fud
+Description: East Futuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fue
+Description: Borgu Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fuf
+Description: Pular
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fuh
+Description: Western Niger Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fui
+Description: Bagirmi Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fuj
+Description: Ko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fum
+Description: Fum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fun
+Description: Fulniô
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fuq
+Description: Central-Eastern Niger Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fur
+Description: Friulian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: fut
+Description: Futuna-Aniwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fuu
+Description: Furu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fuv
+Description: Nigerian Fulfulde
+Added: 2009-07-29
+Macrolanguage: ff
+%%
+Type: language
+Subtag: fuy
+Description: Fuyug
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fvr
+Description: Fur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fwa
+Description: Fwâi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: fwe
+Description: Fwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gaa
+Description: Ga
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gab
+Description: Gabri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gac
+Description: Mixed Great Andamanese
+Added: 2010-03-11
+%%
+Type: language
+Subtag: gad
+Description: Gaddang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gae
+Description: Guarequena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gaf
+Description: Gende
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gag
+Description: Gagauz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gah
+Description: Alekano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gai
+Description: Borei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gaj
+Description: Gadsup
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gak
+Description: Gamkonora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gal
+Description: Galoli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gam
+Description: Kandawo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gan
+Description: Gan Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: gao
+Description: Gants
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gap
+Description: Gal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gaq
+Description: Gata'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gar
+Description: Galeya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gas
+Description: Adiwasi Garasia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gat
+Description: Kenati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gau
+Description: Mudhili Gadaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gav
+Description: Gabutamon
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: dev
+%%
+Type: language
+Subtag: gaw
+Description: Nobonob
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gax
+Description: Borana-Arsi-Guji Oromo
+Added: 2009-07-29
+Macrolanguage: om
+%%
+Type: language
+Subtag: gay
+Description: Gayo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gaz
+Description: West Central Oromo
+Added: 2009-07-29
+Macrolanguage: om
+%%
+Type: language
+Subtag: gba
+Description: Gbaya (Central African Republic)
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: gbb
+Description: Kaytetye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbc
+Description: Garawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbd
+Description: Karadjeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbe
+Description: Niksek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbf
+Description: Gaikundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbg
+Description: Gbanziri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbh
+Description: Defi Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbi
+Description: Galela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbj
+Description: Bodo Gadaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbk
+Description: Gaddi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbl
+Description: Gamit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbm
+Description: Garhwali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbn
+Description: Mo'da
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbo
+Description: Northern Grebo
+Added: 2009-07-29
+Macrolanguage: grb
+%%
+Type: language
+Subtag: gbp
+Description: Gbaya-Bossangoa
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: gbq
+Description: Gbaya-Bozoum
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: gbr
+Description: Gbagyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbs
+Description: Gbesi Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbu
+Description: Gagadu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbv
+Description: Gbanu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbx
+Description: Eastern Xwla Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gby
+Description: Gbari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gbz
+Description: Zoroastrian Dari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcc
+Description: Mali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcd
+Description: Ganggalida
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gce
+Description: Galice
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcf
+Description: Guadeloupean Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcl
+Description: Grenadian Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcn
+Description: Gaina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gcr
+Description: Guianese Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gct
+Description: Colonia Tovar German
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gda
+Description: Gade Lohar
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: gdb
+Description: Pottangi Ollar Gadaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdc
+Description: Gugu Badhun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdd
+Description: Gedaged
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gde
+Description: Gude
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdf
+Description: Guduf-Gava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdg
+Description: Ga'dang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdh
+Description: Gadjerawang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdi
+Description: Gundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdj
+Description: Gurdjar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdk
+Description: Gadang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdl
+Description: Dirasha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdm
+Description: Laal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdn
+Description: Umanakaina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdo
+Description: Ghodoberi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdq
+Description: Mehri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdr
+Description: Wipi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdu
+Description: Gudu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gdx
+Description: Godwari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gea
+Description: Geruma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: geb
+Description: Kire
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gec
+Description: Gboloo Grebo
+Added: 2009-07-29
+Macrolanguage: grb
+%%
+Type: language
+Subtag: ged
+Description: Gade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: geg
+Description: Gengle
+Added: 2009-07-29
+%%
+Type: language
+Subtag: geh
+Description: Hutterite German
+Description: Hutterisch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gei
+Description: Gebe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gej
+Description: Gen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gek
+Description: Yiwom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gel
+Description: ut-Ma'in
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gem
+Description: Germanic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: geq
+Description: Geme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ges
+Description: Geser-Gorom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gew
+Description: Gera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gex
+Description: Garre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gey
+Description: Enya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gez
+Description: Geez
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gfk
+Description: Patpatar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gft
+Description: Gafat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gga
+Description: Gao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggb
+Description: Gbii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggd
+Description: Gugadj
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gge
+Description: Guragone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggg
+Description: Gurgula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggk
+Description: Kungarakany
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggl
+Description: Ganglau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggn
+Description: Eastern Gurung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggo
+Description: Southern Gondi
+Added: 2009-07-29
+Macrolanguage: gon
+%%
+Type: language
+Subtag: ggr
+Description: Aghu Tharnggalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggt
+Description: Gitua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggu
+Description: Gagu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ggw
+Description: Gogodala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gha
+Description: Ghadamès
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghc
+Description: Hiberno-Scottish Gaelic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghe
+Description: Southern Ghale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghh
+Description: Northern Ghale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghk
+Description: Geko Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghl
+Description: Ghulfan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghn
+Description: Ghanongga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gho
+Description: Ghomara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghr
+Description: Ghera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ghs
+Description: Guhu-Samane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ght
+Description: Kutang Ghale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gia
+Description: Kitja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gib
+Description: Gibanawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gic
+Description: Gail
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gid
+Description: Gidar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gig
+Description: Goaria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gil
+Description: Gilbertese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gim
+Description: Gimi (Eastern Highlands)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gin
+Description: Hinukh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gio
+Description: Gelao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gip
+Description: Gimi (West New Britain)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: giq
+Description: Green Gelao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gir
+Description: Red Gelao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gis
+Description: North Giziga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: git
+Description: Gitxsan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: giw
+Description: White Gelao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gix
+Description: Gilima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: giy
+Description: Giyug
+Added: 2009-07-29
+%%
+Type: language
+Subtag: giz
+Description: South Giziga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gji
+Description: Geji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gjk
+Description: Kachi Koli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gjn
+Description: Gonja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gju
+Description: Gujari
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: gka
+Description: Guya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gke
+Description: Ndai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gkn
+Description: Gokana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gkp
+Description: Guinea Kpelle
+Added: 2009-07-29
+Macrolanguage: kpe
+%%
+Type: language
+Subtag: glc
+Description: Bon Gula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gld
+Description: Nanai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glh
+Description: Northwest Pashayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gli
+Description: Guliguli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glj
+Description: Gula Iro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glk
+Description: Gilaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glo
+Description: Galambu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glr
+Description: Glaro-Twabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glu
+Description: Gula (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: glw
+Description: Glavda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gly
+Description: Gule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gma
+Description: Gambera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmb
+Description: Gula'alaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmd
+Description: Mághdì
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gme
+Description: East Germanic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: gmh
+Description: Middle High German (ca. 1050-1500)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gml
+Description: Middle Low German
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmm
+Description: Gbaya-Mbodomo
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: gmn
+Description: Gimnime
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmq
+Description: North Germanic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: gmu
+Description: Gumalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmv
+Description: Gamo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmw
+Description: West Germanic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: gmx
+Description: Magoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gmy
+Description: Mycenaean Greek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gna
+Description: Kaansa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnb
+Description: Gangte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnc
+Description: Guanche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnd
+Description: Zulgo-Gemzek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gne
+Description: Ganang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gng
+Description: Ngangam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnh
+Description: Lere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gni
+Description: Gooniyandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnk
+Description: //Gana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnl
+Description: Gangulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnm
+Description: Ginuman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnn
+Description: Gumatj
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gno
+Description: Northern Gondi
+Added: 2009-07-29
+Macrolanguage: gon
+%%
+Type: language
+Subtag: gnq
+Description: Gana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnr
+Description: Gureng Gureng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnt
+Description: Guntai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnu
+Description: Gnau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gnw
+Description: Western Bolivian Guaraní
+Added: 2009-07-29
+Macrolanguage: gn
+%%
+Type: language
+Subtag: gnz
+Description: Ganzi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goa
+Description: Guro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gob
+Description: Playero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goc
+Description: Gorakor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: god
+Description: Godié
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goe
+Description: Gongduk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gof
+Description: Gofa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gog
+Description: Gogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goh
+Description: Old High German (ca. 750-1050)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: goi
+Description: Gobasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goj
+Description: Gowlan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gok
+Description: Gowli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gol
+Description: Gola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gom
+Description: Goan Konkani
+Added: 2009-07-29
+Macrolanguage: kok
+%%
+Type: language
+Subtag: gon
+Description: Gondi
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: goo
+Description: Gone Dau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gop
+Description: Yeretuar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goq
+Description: Gorap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gor
+Description: Gorontalo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gos
+Description: Gronings
+Added: 2009-07-29
+%%
+Type: language
+Subtag: got
+Description: Gothic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gou
+Description: Gavar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gow
+Description: Gorowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gox
+Description: Gobu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goy
+Description: Goundo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: goz
+Description: Gozarkhani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gpa
+Description: Gupa-Abawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gpn
+Description: Taiap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gqa
+Description: Ga'anda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gqi
+Description: Guiqiong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gqn
+Description: Guana (Brazil)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gqr
+Description: Gor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gra
+Description: Rajput Garasia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grb
+Description: Grebo
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: grc
+Description: Ancient Greek (to 1453)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: grd
+Description: Guruntum-Mbaaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grg
+Description: Madi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grh
+Description: Gbiri-Niragu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gri
+Description: Ghari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grj
+Description: Southern Grebo
+Added: 2009-07-29
+Macrolanguage: grb
+%%
+Type: language
+Subtag: grk
+Description: Greek languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: grm
+Description: Kota Marudu Talantang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gro
+Description: Groma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grq
+Description: Gorovu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grr
+Description: Taznatit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grs
+Description: Gresi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grt
+Description: Garo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gru
+Description: Kistane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grv
+Description: Central Grebo
+Added: 2009-07-29
+Macrolanguage: grb
+%%
+Type: language
+Subtag: grw
+Description: Gweda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: grx
+Description: Guriaso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gry
+Description: Barclayville Grebo
+Added: 2009-07-29
+Macrolanguage: grb
+%%
+Type: language
+Subtag: grz
+Description: Guramalum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gse
+Description: Ghanaian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gsg
+Description: German Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gsl
+Description: Gusilay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gsm
+Description: Guatemalan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gsn
+Description: Gusan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gso
+Description: Southwest Gbaya
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: gsp
+Description: Wasembo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gss
+Description: Greek Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gsw
+Description: Swiss German
+Description: Alemannic
+Description: Alsatian
+Added: 2006-03-08
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: gta
+Description: Guató
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gti
+Description: Gbati-ri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gua
+Description: Shiki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gub
+Description: Guajajára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guc
+Description: Wayuu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gud
+Description: Yocoboué Dida
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gue
+Description: Gurinji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guf
+Description: Gupapuyngu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gug
+Description: Paraguayan Guaraní
+Added: 2009-07-29
+Macrolanguage: gn
+%%
+Type: language
+Subtag: guh
+Description: Guahibo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gui
+Description: Eastern Bolivian Guaraní
+Added: 2009-07-29
+Macrolanguage: gn
+%%
+Type: language
+Subtag: guk
+Description: Gumuz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gul
+Description: Sea Island Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gum
+Description: Guambiano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gun
+Description: Mbyá Guaraní
+Added: 2009-07-29
+Macrolanguage: gn
+%%
+Type: language
+Subtag: guo
+Description: Guayabero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gup
+Description: Gunwinggu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guq
+Description: Aché
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gur
+Description: Farefare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gus
+Description: Guinean Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gut
+Description: Maléku Jaíka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guu
+Description: Yanomamö
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guv
+Description: Gey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guw
+Description: Gun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gux
+Description: Gourmanchéma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: guz
+Description: Gusii
+Description: Ekegusii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gva
+Description: Guana (Paraguay)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvc
+Description: Guanano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gve
+Description: Duwet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvf
+Description: Golin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvj
+Description: Guajá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvl
+Description: Gulay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvm
+Description: Gurmana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvn
+Description: Kuku-Yalanji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvo
+Description: Gavião Do Jiparaná
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvp
+Description: Pará Gavião
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvr
+Description: Western Gurung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvs
+Description: Gumawana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gvy
+Description: Guyani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwa
+Description: Mbato
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwb
+Description: Gwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwc
+Description: Kalami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwd
+Description: Gawwada
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwe
+Description: Gweno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwf
+Description: Gowro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwg
+Description: Moo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwi
+Description: Gwichʼin
+Added: 2005-10-16
+%%
+Type: language
+Subtag: gwj
+Description: /Gwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwn
+Description: Gwandara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwr
+Description: Gwere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwt
+Description: Gawar-Bati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwu
+Description: Guwamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gww
+Description: Kwini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gwx
+Description: Gua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gxx
+Description: Wè Southern
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gya
+Description: Northwest Gbaya
+Added: 2009-07-29
+Macrolanguage: gba
+%%
+Type: language
+Subtag: gyb
+Description: Garus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyd
+Description: Kayardild
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gye
+Description: Gyem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyf
+Description: Gungabula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyg
+Description: Gbayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyi
+Description: Gyele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyl
+Description: Gayil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gym
+Description: Ngäbere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyn
+Description: Guyanese Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyr
+Description: Guarayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gyy
+Description: Gunya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gza
+Description: Ganza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gzi
+Description: Gazi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: gzn
+Description: Gane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: haa
+Description: Han
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hab
+Description: Hanoi Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hac
+Description: Gurani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: had
+Description: Hatam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hae
+Description: Eastern Oromo
+Added: 2009-07-29
+Macrolanguage: om
+%%
+Type: language
+Subtag: haf
+Description: Haiphong Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hag
+Description: Hanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hah
+Description: Hahon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hai
+Description: Haida
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: haj
+Description: Hajong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hak
+Description: Hakka Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: hal
+Description: Halang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ham
+Description: Hewa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: han
+Description: Hangaza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hao
+Description: Hakö
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hap
+Description: Hupla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: haq
+Description: Ha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: har
+Description: Harari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: has
+Description: Haisla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hav
+Description: Havu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: haw
+Description: Hawaiian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: hax
+Description: Southern Haida
+Added: 2009-07-29
+Macrolanguage: hai
+%%
+Type: language
+Subtag: hay
+Description: Haya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: haz
+Description: Hazaragi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hba
+Description: Hamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hbb
+Description: Huba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hbn
+Description: Heiban
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hbo
+Description: Ancient Hebrew
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hbu
+Description: Habu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hca
+Description: Andaman Creole Hindi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hch
+Description: Huichol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hdn
+Description: Northern Haida
+Added: 2009-07-29
+Macrolanguage: hai
+%%
+Type: language
+Subtag: hds
+Description: Honduras Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hdy
+Description: Hadiyya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hea
+Description: Northern Qiandong Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hed
+Description: Herdé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: heg
+Description: Helong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: heh
+Description: Hehe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hei
+Description: Heiltsuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hem
+Description: Hemba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hgm
+Description: Hai//om
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hgw
+Description: Haigwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hhi
+Description: Hoia Hoia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hhr
+Description: Kerak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hhy
+Description: Hoyahoya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hia
+Description: Lamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hib
+Description: Hibito
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hid
+Description: Hidatsa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hif
+Description: Fiji Hindi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hig
+Description: Kamwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hih
+Description: Pamosu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hii
+Description: Hinduri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hij
+Description: Hijuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hik
+Description: Seit-Kaitetu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hil
+Description: Hiligaynon
+Added: 2005-10-16
+%%
+Type: language
+Subtag: him
+Description: Himachali languages
+Description: Western Pahari languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: hio
+Description: Tsoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hir
+Description: Himarimã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hit
+Description: Hittite
+Added: 2005-10-16
+%%
+Type: language
+Subtag: hiw
+Description: Hiw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hix
+Description: Hixkaryána
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hji
+Description: Haji
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: hka
+Description: Kahe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hke
+Description: Hunde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hkk
+Description: Hunjara-Kaina Ke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hks
+Description: Hong Kong Sign Language
+Description: Heung Kong Sau Yue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hla
+Description: Halia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hlb
+Description: Halbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hld
+Description: Halang Doan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hle
+Description: Hlersu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hlt
+Description: Nga La
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hlu
+Description: Hieroglyphic Luwian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hma
+Description: Southern Mashan Hmong
+Description: Southern Mashan Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmb
+Description: Humburi Senni Songhay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hmc
+Description: Central Huishui Hmong
+Description: Central Huishui Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmd
+Description: Large Flowery Miao
+Description: A-hmaos
+Description: Da-Hua Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hme
+Description: Eastern Huishui Hmong
+Description: Eastern Huishui Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmf
+Description: Hmong Don
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hmg
+Description: Southwestern Guiyang Hmong
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmh
+Description: Southwestern Huishui Hmong
+Description: Southwestern Huishui Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmi
+Description: Northern Huishui Hmong
+Description: Northern Huishui Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmj
+Description: Ge
+Description: Gejia
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmk
+Description: Maek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hml
+Description: Luopohe Hmong
+Description: Luopohe Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmm
+Description: Central Mashan Hmong
+Description: Central Mashan Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmn
+Description: Hmong
+Description: Mong
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: hmp
+Description: Northern Mashan Hmong
+Description: Northern Mashan Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmq
+Description: Eastern Qiandong Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmr
+Description: Hmar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hms
+Description: Southern Qiandong Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmt
+Description: Hamtai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hmu
+Description: Hamap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hmv
+Description: Hmong Dô
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hmw
+Description: Western Mashan Hmong
+Description: Western Mashan Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmx
+Description: Hmong-Mien languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: hmy
+Description: Southern Guiyang Hmong
+Description: Southern Guiyang Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hmz
+Description: Hmong Shua
+Description: Sinicized Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hna
+Description: Mina (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hnd
+Description: Southern Hindko
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: hne
+Description: Chhattisgarhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hnh
+Description: //Ani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hni
+Description: Hani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hnj
+Description: Hmong Njua
+Description: Mong Leng
+Description: Mong Njua
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hnn
+Description: Hanunoo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hno
+Description: Northern Hindko
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: hns
+Description: Caribbean Hindustani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hnu
+Description: Hung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoa
+Description: Hoava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hob
+Description: Mari (Madang Province)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoc
+Description: Ho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hod
+Description: Holma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoe
+Description: Horom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoh
+Description: Hobyót
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoi
+Description: Holikachuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoj
+Description: Hadothi
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: hok
+Description: Hokan languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: hol
+Description: Holu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hom
+Description: Homa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoo
+Description: Holoholo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hop
+Description: Hopi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hor
+Description: Horo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hos
+Description: Ho Chi Minh City Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hot
+Description: Hote
+Description: Malê
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hov
+Description: Hovongan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: how
+Description: Honi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoy
+Description: Holiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hoz
+Description: Hozo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hpo
+Description: Hpon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hps
+Description: Hawai'i Pidgin Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hra
+Description: Hrangkhol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hre
+Description: Hre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrk
+Description: Haruku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrm
+Description: Horned Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: hro
+Description: Haroi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrr
+Description: Horuru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrt
+Description: Hértevin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hru
+Description: Hruso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrx
+Description: Hunsrik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hrz
+Description: Harzani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hsb
+Description: Upper Sorbian
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: hsh
+Description: Hungarian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hsl
+Description: Hausa Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hsn
+Description: Xiang Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: hss
+Description: Harsusi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hti
+Description: Hoti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hto
+Description: Minica Huitoto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hts
+Description: Hadza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: htu
+Description: Hitu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: htx
+Description: Middle Hittite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hub
+Description: Huambisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huc
+Description: =/Hua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hud
+Description: Huaulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hue
+Description: San Francisco Del Mar Huave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huf
+Description: Humene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hug
+Description: Huachipaeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huh
+Description: Huilliche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hui
+Description: Huli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huj
+Description: Northern Guiyang Hmong
+Description: Northern Guiyang Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: huk
+Description: Hulung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hul
+Description: Hula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hum
+Description: Hungana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huo
+Description: Hu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hup
+Description: Hupa
+Added: 2005-10-16
+%%
+Type: language
+Subtag: huq
+Description: Tsat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hur
+Description: Halkomelem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hus
+Description: Huastec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hut
+Description: Humla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huu
+Description: Murui Huitoto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huv
+Description: San Mateo Del Mar Huave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huw
+Description: Hukumina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hux
+Description: Nüpode Huitoto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huy
+Description: Hulaulá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: huz
+Description: Hunzib
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hvc
+Description: Haitian Vodoun Culture Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hve
+Description: San Dionisio Del Mar Huave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hvk
+Description: Haveke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hvn
+Description: Sabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hvv
+Description: Santa María Del Mar Huave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hwa
+Description: Wané
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hwc
+Description: Hawai'i Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hwo
+Description: Hwana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hya
+Description: Hya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: hyx
+Description: Armenian (family)
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: iai
+Description: Iaai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ian
+Description: Iatmul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iap
+Description: Iapama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iar
+Description: Purari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iba
+Description: Iban
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ibb
+Description: Ibibio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibd
+Description: Iwaidja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibe
+Description: Akpes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibg
+Description: Ibanag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibi
+Description: Ibilo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibl
+Description: Ibaloi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibm
+Description: Agoi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibn
+Description: Ibino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibr
+Description: Ibuoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ibu
+Description: Ibu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iby
+Description: Ibani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ica
+Description: Ede Ica
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ich
+Description: Etkywan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: icl
+Description: Icelandic Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: icr
+Description: Islander Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ida
+Description: Idakho-Isukha-Tiriki
+Description: Luidakho-Luisukha-Lutirichi
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: idb
+Description: Indo-Portuguese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idc
+Description: Idon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idd
+Description: Ede Idaca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ide
+Description: Idere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idi
+Description: Idi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idr
+Description: Indri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ids
+Description: Idesa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idt
+Description: Idaté
+Added: 2009-07-29
+%%
+Type: language
+Subtag: idu
+Description: Idoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ifa
+Description: Amganad Ifugao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ifb
+Description: Batad Ifugao
+Description: Ayangan Ifugao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ife
+Description: Ifè
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iff
+Description: Ifo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ifk
+Description: Tuwali Ifugao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ifm
+Description: Teke-Fuumu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ifu
+Description: Mayoyao Ifugao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ify
+Description: Keley-I Kallahan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igb
+Description: Ebira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ige
+Description: Igede
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igg
+Description: Igana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igl
+Description: Igala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igm
+Description: Kanggape
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ign
+Description: Ignaciano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igo
+Description: Isebe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igs
+Description: Interglossa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: igw
+Description: Igwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ihb
+Description: Iha Based Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ihi
+Description: Ihievbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ihp
+Description: Iha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iir
+Description: Indo-Iranian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: ijc
+Description: Izon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ije
+Description: Biseni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ijj
+Description: Ede Ije
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ijn
+Description: Kalabari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ijo
+Description: Ijo languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ijs
+Description: Southeast Ijo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ike
+Description: Eastern Canadian Inuktitut
+Added: 2009-07-29
+Macrolanguage: iu
+%%
+Type: language
+Subtag: iki
+Description: Iko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikk
+Description: Ika
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikl
+Description: Ikulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iko
+Description: Olulumo-Ikom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikp
+Description: Ikpeshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikt
+Description: Western Canadian Inuktitut
+Added: 2009-07-29
+Macrolanguage: iu
+%%
+Type: language
+Subtag: ikv
+Description: Iku-Gora-Ankwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikw
+Description: Ikwere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikx
+Description: Ik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ikz
+Description: Ikizu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ila
+Description: Ile Ape
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilb
+Description: Ila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilg
+Description: Garig-Ilgar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ili
+Description: Ili Turki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilk
+Description: Ilongot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ill
+Description: Iranun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilo
+Description: Iloko
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ils
+Description: International Sign
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilu
+Description: Ili'uun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilv
+Description: Ilue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ilw
+Description: Talur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ima
+Description: Mala Malasar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ime
+Description: Imeraguen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: imi
+Description: Anamgura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iml
+Description: Miluk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: imn
+Description: Imonda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: imo
+Description: Imbongu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: imr
+Description: Imroing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ims
+Description: Marsian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: imy
+Description: Milyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inb
+Description: Inga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inc
+Description: Indic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ine
+Description: Indo-European languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ing
+Description: Degexit'an
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inh
+Description: Ingush
+Added: 2005-10-16
+%%
+Type: language
+Subtag: inj
+Description: Jungle Inga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inl
+Description: Indonesian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inm
+Description: Minaean
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inn
+Description: Isinai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ino
+Description: Inoke-Yate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inp
+Description: Iñapari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ins
+Description: Indian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: int
+Description: Intha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: inz
+Description: Ineseño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ior
+Description: Inor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iou
+Description: Tuma-Irumu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iow
+Description: Iowa-Oto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ipi
+Description: Ipili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ipo
+Description: Ipiko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iqu
+Description: Iquito
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ira
+Description: Iranian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ire
+Description: Iresim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: irh
+Description: Irarutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iri
+Description: Irigwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: irk
+Description: Iraqw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: irn
+Description: Irántxe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iro
+Description: Iroquoian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: irr
+Description: Ir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iru
+Description: Irula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: irx
+Description: Kamberau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iry
+Description: Iraya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isa
+Description: Isabi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isc
+Description: Isconahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isd
+Description: Isnag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ise
+Description: Italian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isg
+Description: Irish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ish
+Description: Esan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isi
+Description: Nkem-Nkum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isk
+Description: Ishkashimi
+Added: 2010-03-11
+%%
+Type: language
+Subtag: ism
+Description: Masimasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isn
+Description: Isanzu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iso
+Description: Isoko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isr
+Description: Israeli Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ist
+Description: Istriot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: isu
+Description: Isu (Menchum Division)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itb
+Description: Binongan Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itc
+Description: Italic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: ite
+Description: Itene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iti
+Description: Inlaod Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itk
+Description: Judeo-Italian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itl
+Description: Itelmen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itm
+Description: Itu Mbon Uzo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ito
+Description: Itonama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itr
+Description: Iteri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: its
+Description: Isekiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itt
+Description: Maeng Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itv
+Description: Itawit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itw
+Description: Ito
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itx
+Description: Itik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ity
+Description: Moyadan Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: itz
+Description: Itzá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ium
+Description: Iu Mien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ivb
+Description: Ibatan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ivv
+Description: Ivatan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iwk
+Description: I-Wak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iwm
+Description: Iwam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iwo
+Description: Iwur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iws
+Description: Sepik Iwam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ixc
+Description: Ixcatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ixl
+Description: Ixil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iya
+Description: Iyayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iyo
+Description: Mesaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: iyx
+Description: Yaka (Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: izh
+Description: Ingrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: izi
+Description: Izi-Ezaa-Ikwo-Mgbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: izr
+Description: Izere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jaa
+Description: Jamamadí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jab
+Description: Hyam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jac
+Description: Popti'
+Description: Jakalteko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jad
+Description: Jahanka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jae
+Description: Yabem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jaf
+Description: Jara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jah
+Description: Jah Hut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jaj
+Description: Zazao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jak
+Description: Jakun
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: jal
+Description: Yalahatan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jam
+Description: Jamaican Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jao
+Description: Yanyuwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jaq
+Description: Yaqay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jar
+Description: Jarawa (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jas
+Description: New Caledonian Javanese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jat
+Description: Jakati
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: jau
+Description: Yaur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jax
+Description: Jambi Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: jay
+Description: Yan-nhangu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jaz
+Description: Jawe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbe
+Description: Judeo-Berber
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbj
+Description: Arandai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbn
+Description: Nafusi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbo
+Description: Lojban
+Added: 2005-10-16
+%%
+Type: language
+Subtag: jbr
+Description: Jofotek-Bromnya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbt
+Description: Jabutí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jbu
+Description: Jukun Takum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jcs
+Description: Jamaican Country Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jct
+Description: Krymchak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jda
+Description: Jad
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jdg
+Description: Jadgali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jdt
+Description: Judeo-Tat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jeb
+Description: Jebero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jee
+Description: Jerung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jeg
+Description: Jeng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jeh
+Description: Jeh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jei
+Description: Yei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jek
+Description: Jeri Kuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jel
+Description: Yelmek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jen
+Description: Dza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jer
+Description: Jere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jet
+Description: Manem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jeu
+Description: Jonkor Bourmataguil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jgb
+Description: Ngbee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jge
+Description: Judeo-Georgian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jgo
+Description: Ngomba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jhi
+Description: Jehai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jhs
+Description: Jhankot Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jia
+Description: Jina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jib
+Description: Jibu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jic
+Description: Tol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jid
+Description: Bu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jie
+Description: Jilbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jig
+Description: Djingili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jih
+Description: Shangzhai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jii
+Description: Jiiddu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jil
+Description: Jilim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jim
+Description: Jimi (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jio
+Description: Jiamao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jiq
+Description: Guanyinqiao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jit
+Description: Jita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jiu
+Description: Youle Jinuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jiv
+Description: Shuar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jiy
+Description: Buyuan Jinuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jko
+Description: Kubo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jku
+Description: Labir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jle
+Description: Ngile
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jls
+Description: Jamaican Sign Language
+Added: 2010-03-11
+%%
+Type: language
+Subtag: jma
+Description: Dima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmb
+Description: Zumbun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmc
+Description: Machame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmd
+Description: Yamdena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmi
+Description: Jimi (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jml
+Description: Jumli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmn
+Description: Makuri Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmr
+Description: Kamara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jms
+Description: Mashi (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jmx
+Description: Western Juxtlahuaca Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jna
+Description: Jangshung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jnd
+Description: Jandavra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jng
+Description: Yangman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jni
+Description: Janji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jnj
+Description: Yemsa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jnl
+Description: Rawat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jns
+Description: Jaunsari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: job
+Description: Joba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jod
+Description: Wojenaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jor
+Description: Jorá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jos
+Description: Jordanian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jow
+Description: Jowulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jpa
+Description: Jewish Palestinian Aramaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jpr
+Description: Judeo-Persian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: jpx
+Description: Japanese (family)
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: jqr
+Description: Jaqaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jra
+Description: Jarai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jrb
+Description: Judeo-Arabic
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: jrr
+Description: Jiru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jrt
+Description: Jorto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jru
+Description: Japrería
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jsl
+Description: Japanese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jua
+Description: Júma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jub
+Description: Wannu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juc
+Description: Jurchen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jud
+Description: Worodougou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juh
+Description: Hõne
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juk
+Description: Wapan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jul
+Description: Jirel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jum
+Description: Jumjum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jun
+Description: Juang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juo
+Description: Jiba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jup
+Description: Hupdë
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jur
+Description: Jurúna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jus
+Description: Jumla Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jut
+Description: Jutish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juu
+Description: Ju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juw
+Description: Wãpha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: juy
+Description: Juray
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jvd
+Description: Javindo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jvn
+Description: Caribbean Javanese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jwi
+Description: Jwira-Pepesa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jya
+Description: Jiarong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: jye
+Description: Judeo-Yemeni Arabic
+Added: 2009-07-29
+Macrolanguage: jrb
+%%
+Type: language
+Subtag: jyy
+Description: Jaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kaa
+Description: Kara-Kalpak
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kab
+Description: Kabyle
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kac
+Description: Kachin
+Description: Jingpho
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kad
+Description: Kadara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kae
+Description: Ketangalan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kaf
+Description: Katso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kag
+Description: Kajaman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kah
+Description: Kara (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kai
+Description: Karekare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kaj
+Description: Jju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kak
+Description: Kayapa Kallahan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kam
+Description: Kamba (Kenya)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kao
+Description: Xaasongaxango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kap
+Description: Bezhta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kaq
+Description: Capanahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kar
+Description: Karen languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: kav
+Description: Katukína
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kaw
+Description: Kawi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kax
+Description: Kao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kay
+Description: Kamayurá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kba
+Description: Kalarko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbb
+Description: Kaxuiâna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbc
+Description: Kadiwéu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbd
+Description: Kabardian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kbe
+Description: Kanju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbf
+Description: Kakauhua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbg
+Description: Khamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbh
+Description: Camsá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbi
+Description: Kaptiau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbj
+Description: Kari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbk
+Description: Grass Koiari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbl
+Description: Kanembu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbm
+Description: Iwal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbn
+Description: Kare (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbo
+Description: Keliko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbp
+Description: Kabiyè
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbq
+Description: Kamano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbr
+Description: Kafa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbs
+Description: Kande
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbt
+Description: Abadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbu
+Description: Kabutra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbv
+Description: Dera (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbw
+Description: Kaiep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kbx
+Description: Ap Ma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kby
+Description: Manga Kanuri
+Added: 2009-07-29
+Macrolanguage: kr
+%%
+Type: language
+Subtag: kbz
+Description: Duhwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kca
+Description: Khanty
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcb
+Description: Kawacha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcc
+Description: Lubila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcd
+Description: Ngkâlmpw Kanum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kce
+Description: Kaivi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcf
+Description: Ukaan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcg
+Description: Tyap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kch
+Description: Vono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kci
+Description: Kamantan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcj
+Description: Kobiana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kck
+Description: Kalanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcl
+Description: Kela (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcm
+Description: Gula (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcn
+Description: Nubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kco
+Description: Kinalakna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcp
+Description: Kanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcq
+Description: Kamo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcr
+Description: Katla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcs
+Description: Koenoem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kct
+Description: Kaian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcu
+Description: Kami (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcv
+Description: Kete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcw
+Description: Kabwari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcx
+Description: Kachama-Ganjule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcy
+Description: Korandje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kcz
+Description: Konongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kda
+Description: Worimi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdc
+Description: Kutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdd
+Description: Yankunytjatjara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kde
+Description: Makonde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdf
+Description: Mamusi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdg
+Description: Seba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdh
+Description: Tem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdi
+Description: Kumam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdj
+Description: Karamojong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdk
+Description: Numee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdl
+Description: Tsikimba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdm
+Description: Kagoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdn
+Description: Kunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdo
+Description: Kordofanian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: kdp
+Description: Kaningdon-Nindem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdq
+Description: Koch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdr
+Description: Karaim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdt
+Description: Kuy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdu
+Description: Kadaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdv
+Description: Kado
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdw
+Description: Koneraw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdx
+Description: Kam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdy
+Description: Keder
+Description: Keijar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kdz
+Description: Kwaja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kea
+Description: Kabuverdianu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keb
+Description: Kélé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kec
+Description: Keiga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ked
+Description: Kerewe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kee
+Description: Eastern Keres
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kef
+Description: Kpessi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keg
+Description: Tese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keh
+Description: Keak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kei
+Description: Kei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kej
+Description: Kadar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kek
+Description: Kekchí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kel
+Description: Kela (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kem
+Description: Kemak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ken
+Description: Kenyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keo
+Description: Kakwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kep
+Description: Kaikadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keq
+Description: Kamar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ker
+Description: Kera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kes
+Description: Kugbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ket
+Description: Ket
+Added: 2009-07-29
+%%
+Type: language
+Subtag: keu
+Description: Akebu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kev
+Description: Kanikkaran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kew
+Description: West Kewa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kex
+Description: Kukna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: key
+Description: Kupia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kez
+Description: Kukele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfa
+Description: Kodava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfb
+Description: Northwestern Kolami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfc
+Description: Konda-Dora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfd
+Description: Korra Koraga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfe
+Description: Kota (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kff
+Description: Koya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfg
+Description: Kudiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfh
+Description: Kurichiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfi
+Description: Kannada Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfj
+Description: Kemiehua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfk
+Description: Kinnauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfl
+Description: Kung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfm
+Description: Khunsari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfn
+Description: Kuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfo
+Description: Koro (Côte d'Ivoire)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfp
+Description: Korwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfq
+Description: Korku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfr
+Description: Kachchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfs
+Description: Bilaspuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kft
+Description: Kanjari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfu
+Description: Katkari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfv
+Description: Kurmukar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfw
+Description: Kharam Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfx
+Description: Kullu Pahari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfy
+Description: Kumaoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kfz
+Description: Koromfé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kga
+Description: Koyaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgb
+Description: Kawe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgc
+Description: Kasseng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgd
+Description: Kataang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kge
+Description: Komering
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgf
+Description: Kube
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgg
+Description: Kusunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgh
+Description: Upper Tanudan Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgi
+Description: Selangor Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgj
+Description: Gamale Kham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgk
+Description: Kaiwá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgl
+Description: Kunggari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgm
+Description: Karipúna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgn
+Description: Karingani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgo
+Description: Krongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgp
+Description: Kaingang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgq
+Description: Kamoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgr
+Description: Abun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgs
+Description: Kumbainggar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgt
+Description: Somyev
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgu
+Description: Kobol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgv
+Description: Karas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgw
+Description: Karon Dori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgx
+Description: Kamaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kgy
+Description: Kyerung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kha
+Description: Khasi
+Added: 2005-10-16
+Comments: as of 2008-04-21 this subtag does not include Lyngngam; see
+ lyg
+%%
+Type: language
+Subtag: khb
+Description: Lü
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khc
+Description: Tukang Besi North
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khd
+Description: Bädi Kanum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khe
+Description: Korowai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khf
+Description: Khuen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khg
+Description: Khams Tibetan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khh
+Description: Kehu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khi
+Description: Khoisan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: khj
+Description: Kuturmi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khk
+Description: Halh Mongolian
+Added: 2009-07-29
+Macrolanguage: mn
+%%
+Type: language
+Subtag: khl
+Description: Lusi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khn
+Description: Khandesi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kho
+Description: Khotanese
+Description: Sakan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: khp
+Description: Kapori
+Description: Kapauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khq
+Description: Koyra Chiini Songhay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khr
+Description: Kharia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khs
+Description: Kasua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kht
+Description: Khamti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khu
+Description: Nkhumbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khv
+Description: Khvarshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khw
+Description: Khowar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khx
+Description: Kanu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khy
+Description: Kele (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: khz
+Description: Keapara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kia
+Description: Kim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kib
+Description: Koalib
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kic
+Description: Kickapoo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kid
+Description: Koshin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kie
+Description: Kibet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kif
+Description: Eastern Parbate Kham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kig
+Description: Kimaama
+Description: Kimaghima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kih
+Description: Kilmeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kii
+Description: Kitsai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kij
+Description: Kilivila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kil
+Description: Kariya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kim
+Description: Karagas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kio
+Description: Kiowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kip
+Description: Sheshi Kham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kiq
+Description: Kosadle
+Description: Kosare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kis
+Description: Kis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kit
+Description: Agob
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kiu
+Description: Kirmanjki (individual language)
+Added: 2009-07-29
+Macrolanguage: zza
+%%
+Type: language
+Subtag: kiv
+Description: Kimbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kiw
+Description: Northeast Kiwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kix
+Description: Khiamniungan Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kiy
+Description: Kirikiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kiz
+Description: Kisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kja
+Description: Mlap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjb
+Description: Q'anjob'al
+Description: Kanjobal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjc
+Description: Coastal Konjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjd
+Description: Southern Kiwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kje
+Description: Kisar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjf
+Description: Khalaj
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjg
+Description: Khmu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjh
+Description: Khakas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kji
+Description: Zabana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjj
+Description: Khinalugh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjk
+Description: Highland Konjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjl
+Description: Western Parbate Kham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjm
+Description: Kháng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjn
+Description: Kunjen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjo
+Description: Harijan Kinnauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjp
+Description: Pwo Eastern Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjq
+Description: Western Keres
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjr
+Description: Kurudu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjs
+Description: East Kewa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjt
+Description: Phrae Pwo Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kju
+Description: Kashaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjx
+Description: Ramopa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjy
+Description: Erave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kjz
+Description: Bumthangkha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kka
+Description: Kakanda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkb
+Description: Kwerisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkc
+Description: Odoodee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkd
+Description: Kinuku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kke
+Description: Kakabe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkf
+Description: Kalaktang Monpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkg
+Description: Mabaka Valley Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkh
+Description: Khün
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kki
+Description: Kagulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkj
+Description: Kako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkk
+Description: Kokota
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkl
+Description: Kosarek Yale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkm
+Description: Kiong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkn
+Description: Kon Keu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kko
+Description: Karko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkp
+Description: Gugubera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkq
+Description: Kaiku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkr
+Description: Kir-Balar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kks
+Description: Giiwo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkt
+Description: Koi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kku
+Description: Tumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkv
+Description: Kangean
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkw
+Description: Teke-Kukuya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkx
+Description: Kohin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kky
+Description: Guguyimidjir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kkz
+Description: Kaska
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kla
+Description: Klamath-Modoc
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klb
+Description: Kiliwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klc
+Description: Kolbila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kld
+Description: Gamilaraay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kle
+Description: Kulung (Nepal)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klf
+Description: Kendeje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klg
+Description: Tagakaulo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klh
+Description: Weliki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kli
+Description: Kalumpang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klj
+Description: Turkic Khalaj
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klk
+Description: Kono (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kll
+Description: Kagan Kalagan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klm
+Description: Migum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kln
+Description: Kalenjin
+Added: 2009-07-29
+Scope: macrolanguage
+%%
+Type: language
+Subtag: klo
+Description: Kapya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klp
+Description: Kamasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klq
+Description: Rumu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klr
+Description: Khaling
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kls
+Description: Kalasha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klt
+Description: Nukna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klu
+Description: Klao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klv
+Description: Maskelynes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klw
+Description: Lindu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klx
+Description: Koluwawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kly
+Description: Kalao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: klz
+Description: Kabola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kma
+Description: Konni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmb
+Description: Kimbundu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kmc
+Description: Southern Dong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmd
+Description: Majukayang Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kme
+Description: Bakole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmf
+Description: Kare (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmg
+Description: Kâte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmh
+Description: Kalam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmi
+Description: Kami (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmj
+Description: Kumarbhag Paharia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmk
+Description: Limos Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kml
+Description: Lower Tanudan Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmm
+Description: Kom (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmn
+Description: Awtuw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmo
+Description: Kwoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmp
+Description: Gimme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmq
+Description: Kwama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmr
+Description: Northern Kurdish
+Added: 2009-07-29
+Macrolanguage: ku
+%%
+Type: language
+Subtag: kms
+Description: Kamasau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmt
+Description: Kemtuik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmu
+Description: Kanite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmv
+Description: Karipúna Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmw
+Description: Komo (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmx
+Description: Waboda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmy
+Description: Koma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kmz
+Description: Khorasani Turkish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kna
+Description: Dera (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knb
+Description: Lubuagan Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knc
+Description: Central Kanuri
+Added: 2009-07-29
+Macrolanguage: kr
+%%
+Type: language
+Subtag: knd
+Description: Konda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kne
+Description: Kankanaey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knf
+Description: Mankanya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kng
+Description: Koongo
+Added: 2009-07-29
+Macrolanguage: kg
+%%
+Type: language
+Subtag: kni
+Description: Kanufi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knj
+Description: Western Kanjobal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knk
+Description: Kuranko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knl
+Description: Keninjal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knm
+Description: Kanamarí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knn
+Description: Konkani (individual language)
+Added: 2009-07-29
+Macrolanguage: kok
+%%
+Type: language
+Subtag: kno
+Description: Kono (Sierra Leone)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knp
+Description: Kwanja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knq
+Description: Kintaq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knr
+Description: Kaningra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kns
+Description: Kensiu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knt
+Description: Panoan Katukína
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knu
+Description: Kono (Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knv
+Description: Tabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knw
+Description: Kung-Ekoka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knx
+Description: Kendayan
+Description: Salako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kny
+Description: Kanyok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: knz
+Description: Kalamsé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koa
+Description: Konomala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koc
+Description: Kpati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kod
+Description: Kodi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koe
+Description: Kacipo-Balesi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kof
+Description: Kubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kog
+Description: Cogui
+Description: Kogi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koh
+Description: Koyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koi
+Description: Komi-Permyak
+Added: 2009-07-29
+Macrolanguage: kv
+%%
+Type: language
+Subtag: koj
+Description: Sara Dunjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kok
+Description: Konkani (macrolanguage)
+Added: 2005-10-16
+Suppress-Script: Deva
+Scope: macrolanguage
+%%
+Type: language
+Subtag: kol
+Description: Kol (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koo
+Description: Konzo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kop
+Description: Waube
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koq
+Description: Kota (Gabon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kos
+Description: Kosraean
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kot
+Description: Lagwan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kou
+Description: Koke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kov
+Description: Kudu-Camo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kow
+Description: Kugama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kox
+Description: Coxima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koy
+Description: Koyukon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: koz
+Description: Korak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpa
+Description: Kutto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpb
+Description: Mullu Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpc
+Description: Curripaco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpd
+Description: Koba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpe
+Description: Kpelle
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: kpf
+Description: Komba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpg
+Description: Kapingamarangi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kph
+Description: Kplang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpi
+Description: Kofei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpj
+Description: Karajá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpk
+Description: Kpan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpl
+Description: Kpala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpm
+Description: Koho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpn
+Description: Kepkiriwát
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpo
+Description: Ikposo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpp
+Description: Paku Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpq
+Description: Korupun-Sela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpr
+Description: Korafe-Yegha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kps
+Description: Tehit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpt
+Description: Karata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpu
+Description: Kafoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpv
+Description: Komi-Zyrian
+Added: 2009-07-29
+Macrolanguage: kv
+%%
+Type: language
+Subtag: kpw
+Description: Kobon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpx
+Description: Mountain Koiali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpy
+Description: Koryak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kpz
+Description: Kupsabiny
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqa
+Description: Mum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqb
+Description: Kovai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqc
+Description: Doromu-Koki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqd
+Description: Koy Sanjaq Surat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqe
+Description: Kalagan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqf
+Description: Kakabai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqg
+Description: Khe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqh
+Description: Kisankasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqi
+Description: Koitabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqj
+Description: Koromira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqk
+Description: Kotafon Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kql
+Description: Kyenele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqm
+Description: Khisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqn
+Description: Kaonde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqo
+Description: Eastern Krahn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqp
+Description: Kimré
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqq
+Description: Krenak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqr
+Description: Kimaragang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqs
+Description: Northern Kissi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqt
+Description: Klias River Kadazan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqu
+Description: Seroa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqv
+Description: Okolod
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqw
+Description: Kandas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqx
+Description: Mser
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqy
+Description: Koorete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kqz
+Description: Korana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kra
+Description: Kumhali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krb
+Description: Karkin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krc
+Description: Karachay-Balkar
+Added: 2005-10-16
+%%
+Type: language
+Subtag: krd
+Description: Kairui-Midiki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kre
+Description: Panará
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krf
+Description: Koro (Vanuatu)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krh
+Description: Kurama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kri
+Description: Krio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krj
+Description: Kinaray-A
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krk
+Description: Kerek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krl
+Description: Karelian
+Added: 2006-03-08
+%%
+Type: language
+Subtag: krm
+Description: Krim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krn
+Description: Sapo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kro
+Description: Kru languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: krp
+Description: Korop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krr
+Description: Kru'ng 2
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krs
+Description: Gbaya (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krt
+Description: Tumari Kanuri
+Added: 2009-07-29
+Macrolanguage: kr
+%%
+Type: language
+Subtag: kru
+Description: Kurukh
+Added: 2005-10-16
+%%
+Type: language
+Subtag: krv
+Description: Kavet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krw
+Description: Western Krahn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krx
+Description: Karon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kry
+Description: Kryts
+Added: 2009-07-29
+%%
+Type: language
+Subtag: krz
+Description: Sota Kanum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksa
+Description: Shuwa-Zamani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksb
+Description: Shambala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksc
+Description: Southern Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksd
+Description: Kuanua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kse
+Description: Kuni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksf
+Description: Bafia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksg
+Description: Kusaghe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksh
+Description: Kölsch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksi
+Description: Krisa
+Description: I'saka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksj
+Description: Uare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksk
+Description: Kansa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksl
+Description: Kumalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksm
+Description: Kumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksn
+Description: Kasiguranin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kso
+Description: Kofa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksp
+Description: Kaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksq
+Description: Kwaami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksr
+Description: Borong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kss
+Description: Southern Kisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kst
+Description: Winyé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksu
+Description: Khamyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksv
+Description: Kusu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksw
+Description: S'gaw Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksx
+Description: Kedang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksy
+Description: Kharia Thar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ksz
+Description: Kodaku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kta
+Description: Katua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktb
+Description: Kambaata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktc
+Description: Kholok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktd
+Description: Kokata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kte
+Description: Nubri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktf
+Description: Kwami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktg
+Description: Kalkutung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kth
+Description: Karanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kti
+Description: North Muyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktj
+Description: Plapo Krumen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktk
+Description: Kaniet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktl
+Description: Koroshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktm
+Description: Kurti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktn
+Description: Karitiâna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kto
+Description: Kuot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktp
+Description: Kaduo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktq
+Description: Katabaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktr
+Description: Kota Marudu Tinagas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kts
+Description: South Muyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktt
+Description: Ketum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktu
+Description: Kituba (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktv
+Description: Eastern Katu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktw
+Description: Kato
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktx
+Description: Kaxararí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kty
+Description: Kango (Bas-Uélé District)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ktz
+Description: Ju/'hoan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kub
+Description: Kutep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuc
+Description: Kwinsu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kud
+Description: 'Auhelawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kue
+Description: Kuman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuf
+Description: Western Katu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kug
+Description: Kupa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuh
+Description: Kushi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kui
+Description: Kuikúro-Kalapálo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuj
+Description: Kuria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuk
+Description: Kepo'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kul
+Description: Kulere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kum
+Description: Kumyk
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kun
+Description: Kunama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuo
+Description: Kumukio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kup
+Description: Kunimaipa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuq
+Description: Karipuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kus
+Description: Kusaal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kut
+Description: Kutenai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: kuu
+Description: Upper Kuskokwim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuv
+Description: Kur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuw
+Description: Kpagua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kux
+Description: Kukatja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuy
+Description: Kuuku-Ya'u
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kuz
+Description: Kunza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kva
+Description: Bagvalal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvb
+Description: Kubu
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: kvc
+Description: Kove
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvd
+Description: Kui (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kve
+Description: Kalabakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvf
+Description: Kabalai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvg
+Description: Kuni-Boazi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvh
+Description: Komodo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvi
+Description: Kwang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvj
+Description: Psikye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvk
+Description: Korean Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvl
+Description: Brek Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvm
+Description: Kendem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvn
+Description: Border Kuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvo
+Description: Dobel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvp
+Description: Kompane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvq
+Description: Geba Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvr
+Description: Kerinci
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: kvs
+Description: Kunggara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvt
+Description: Lahta Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvu
+Description: Yinbaw Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvv
+Description: Kola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvw
+Description: Wersing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvx
+Description: Parkari Koli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvy
+Description: Yintale Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kvz
+Description: Tsakwambo
+Description: Tsaukambo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwa
+Description: Dâw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwb
+Description: Kwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwc
+Description: Likwala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwd
+Description: Kwaio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwe
+Description: Kwerba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwf
+Description: Kwara'ae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwg
+Description: Sara Kaba Deme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwh
+Description: Kowiai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwi
+Description: Awa-Cuaiquer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwj
+Description: Kwanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwk
+Description: Kwakiutl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwl
+Description: Kofyar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwm
+Description: Kwambi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwn
+Description: Kwangali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwo
+Description: Kwomtari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwp
+Description: Kodia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwq
+Description: Kwak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwr
+Description: Kwer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kws
+Description: Kwese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwt
+Description: Kwesten
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwu
+Description: Kwakum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwv
+Description: Sara Kaba Náà
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kww
+Description: Kwinti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwx
+Description: Khirwar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kwy
+Description: San Salvador Kongo
+Added: 2009-07-29
+Macrolanguage: kg
+%%
+Type: language
+Subtag: kwz
+Description: Kwadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxa
+Description: Kairiru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxb
+Description: Krobu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxc
+Description: Konso
+Description: Khonso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxd
+Description: Brunei
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: kxe
+Description: Kakihum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxf
+Description: Manumanaw Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxh
+Description: Karo (Ethiopia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxi
+Description: Keningau Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxj
+Description: Kulfa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxk
+Description: Zayein Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxl
+Description: Nepali Kurux
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxm
+Description: Northern Khmer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxn
+Description: Kanowit-Tanjong Melanau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxo
+Description: Kanoé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxp
+Description: Wadiyara Koli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxq
+Description: Smärky Kanum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxr
+Description: Koro (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxs
+Description: Kangjia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxt
+Description: Koiwat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxu
+Description: Kui (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxv
+Description: Kuvi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxw
+Description: Konai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxx
+Description: Likuba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxy
+Description: Kayong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kxz
+Description: Kerewo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kya
+Description: Kwaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyb
+Description: Butbut Kalinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyc
+Description: Kyaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyd
+Description: Karey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kye
+Description: Krache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyf
+Description: Kouya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyg
+Description: Keyagana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyh
+Description: Karok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyi
+Description: Kiput
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyj
+Description: Karao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyk
+Description: Kamayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyl
+Description: Kalapuya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kym
+Description: Kpatili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyn
+Description: Northern Binukidnon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyo
+Description: Kelon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyp
+Description: Kang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyq
+Description: Kenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyr
+Description: Kuruáya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kys
+Description: Baram Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyt
+Description: Kayagar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyu
+Description: Western Kayah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyv
+Description: Kayort
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyw
+Description: Kudmali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyx
+Description: Rapoisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyy
+Description: Kambaira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kyz
+Description: Kayabí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kza
+Description: Western Karaboro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzb
+Description: Kaibobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzc
+Description: Bondoukou Kulango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzd
+Description: Kadai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kze
+Description: Kosena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzf
+Description: Da'a Kaili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzg
+Description: Kikai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzh
+Description: Kenuzi-Dongola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzi
+Description: Kelabit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzj
+Description: Coastal Kadazan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzk
+Description: Kazukuru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzl
+Description: Kayeli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzm
+Description: Kais
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzn
+Description: Kokola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzo
+Description: Kaningi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzp
+Description: Kaidipang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzq
+Description: Kaike
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzr
+Description: Karang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzs
+Description: Sugut Dusun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzt
+Description: Tambunan Dusun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzu
+Description: Kayupulau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzv
+Description: Komyandaret
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzw
+Description: Karirí-Xocó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzx
+Description: Kamarian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzy
+Description: Kango (Tshopo District)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: kzz
+Description: Kalabra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: laa
+Description: Southern Subanen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lab
+Description: Linear A
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lac
+Description: Lacandon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lad
+Description: Ladino
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lae
+Description: Pattani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: laf
+Description: Lafofa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lag
+Description: Langi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lah
+Description: Lahnda
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: lai
+Description: Lambya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: laj
+Description: Lango (Uganda)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lak
+Description: Laka (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lal
+Description: Lalia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lam
+Description: Lamba
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lan
+Description: Laru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lap
+Description: Laka (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: laq
+Description: Qabiao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lar
+Description: Larteh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: las
+Description: Lama (Togo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lau
+Description: Laba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: law
+Description: Lauje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lax
+Description: Tiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lay
+Description: Lama (Myanmar)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: laz
+Description: Aribwatsa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lba
+Description: Lui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbb
+Description: Label
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbc
+Description: Lakkia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbe
+Description: Lak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbf
+Description: Tinani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbg
+Description: Laopang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbi
+Description: La'bi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbj
+Description: Ladakhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbk
+Description: Central Bontok
+Added: 2010-03-11
+Macrolanguage: bnc
+%%
+Type: language
+Subtag: lbl
+Description: Libon Bikol
+Added: 2010-03-11
+Macrolanguage: bik
+%%
+Type: language
+Subtag: lbm
+Description: Lodhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbn
+Description: Lamet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbo
+Description: Laven
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbq
+Description: Wampar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbr
+Description: Northern Lorung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbs
+Description: Libyan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbt
+Description: Lachi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbu
+Description: Labu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbv
+Description: Lavatbura-Lamusong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbw
+Description: Tolaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbx
+Description: Lawangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lby
+Description: Lamu-Lamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lbz
+Description: Lardil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcc
+Description: Legenyem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcd
+Description: Lola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lce
+Description: Loncong
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: lcf
+Description: Lubu
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: lch
+Description: Luchazi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcl
+Description: Lisela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcm
+Description: Tungag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcp
+Description: Western Lawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcq
+Description: Luhu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lcs
+Description: Lisabata-Nuniali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldb
+Description: Idun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldd
+Description: Luri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldg
+Description: Lenyima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldh
+Description: Lamja-Dengsa-Tola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldi
+Description: Laari
+Added: 2009-07-29
+Macrolanguage: kg
+%%
+Type: language
+Subtag: ldj
+Description: Lemoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldk
+Description: Leelau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldl
+Description: Kaan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldm
+Description: Landoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldn
+Description: Láadan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldo
+Description: Loo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldp
+Description: Tso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ldq
+Description: Lufu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lea
+Description: Lega-Shabunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leb
+Description: Lala-Bisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lec
+Description: Leco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: led
+Description: Lendu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lee
+Description: Lyélé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lef
+Description: Lelemi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leg
+Description: Lengua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leh
+Description: Lenje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lei
+Description: Lemio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lej
+Description: Lengola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lek
+Description: Leipon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lel
+Description: Lele (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lem
+Description: Nomaande
+Added: 2009-07-29
+%%
+Type: language
+Subtag: len
+Description: Lenca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leo
+Description: Leti (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lep
+Description: Lepcha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leq
+Description: Lembena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ler
+Description: Lenkau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: les
+Description: Lese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: let
+Description: Lesing-Gelimi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: leu
+Description: Kara (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lev
+Description: Lamma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lew
+Description: Ledo Kaili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lex
+Description: Luang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ley
+Description: Lemolang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lez
+Description: Lezghian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lfa
+Description: Lefa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lfn
+Description: Lingua Franca Nova
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lga
+Description: Lungga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgb
+Description: Laghu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgg
+Description: Lugbara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgh
+Description: Laghuu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgi
+Description: Lengilu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgk
+Description: Lingarak
+Description: Neverver
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgl
+Description: Wala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgm
+Description: Lega-Mwenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgn
+Description: Opuuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgq
+Description: Logba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgr
+Description: Lengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgt
+Description: Pahi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgu
+Description: Longgu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lgz
+Description: Ligenza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lha
+Description: Laha (Viet Nam)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhh
+Description: Laha (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhi
+Description: Lahu Shi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhl
+Description: Lahul Lohar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhm
+Description: Lhomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhn
+Description: Lahanan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhp
+Description: Lhokpu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhs
+Description: Mlahsö
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lht
+Description: Lo-Toga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lhu
+Description: Lahu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lia
+Description: West-Central Limba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lib
+Description: Likum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lic
+Description: Hlai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lid
+Description: Nyindrou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lie
+Description: Likila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lif
+Description: Limbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lig
+Description: Ligbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lih
+Description: Lihir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lii
+Description: Lingkhim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lij
+Description: Ligurian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lik
+Description: Lika
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lil
+Description: Lillooet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lio
+Description: Liki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lip
+Description: Sekpele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liq
+Description: Libido
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lir
+Description: Liberian English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lis
+Description: Lisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liu
+Description: Logorik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liv
+Description: Liv
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liw
+Description: Col
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: lix
+Description: Liabuku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liy
+Description: Banda-Bambari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: liz
+Description: Libinza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lje
+Description: Rampi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lji
+Description: Laiyolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ljl
+Description: Li'o
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ljp
+Description: Lampung Api
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lka
+Description: Lakalei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkb
+Description: Kabras
+Description: Lukabaras
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lkc
+Description: Kucong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkd
+Description: Lakondê
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lke
+Description: Kenyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkh
+Description: Lakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lki
+Description: Laki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkj
+Description: Remun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkl
+Description: Laeko-Libuat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lkn
+Description: Lakon
+Description: Vure
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lko
+Description: Khayo
+Description: Olukhayo
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lkr
+Description: Päri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lks
+Description: Kisa
+Description: Olushisa
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lkt
+Description: Lakota
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lky
+Description: Lokoya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lla
+Description: Lala-Roba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llb
+Description: Lolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llc
+Description: Lele (Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lld
+Description: Ladin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lle
+Description: Lele (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llf
+Description: Hermit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llg
+Description: Lole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llh
+Description: Lamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lli
+Description: Teke-Laali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llk
+Description: Lelak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lll
+Description: Lilau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llm
+Description: Lasalimu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lln
+Description: Lele (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llo
+Description: Khlor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llp
+Description: North Efate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llq
+Description: Lolak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lls
+Description: Lithuanian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llu
+Description: Lau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: llx
+Description: Lauan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lma
+Description: East Limba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmb
+Description: Merei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmc
+Description: Limilngan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmd
+Description: Lumun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lme
+Description: Pévé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmf
+Description: South Lembata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmg
+Description: Lamogai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmh
+Description: Lambichhong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmi
+Description: Lombi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmj
+Description: West Lembata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmk
+Description: Lamkang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lml
+Description: Hano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmm
+Description: Lamam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmn
+Description: Lambadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmo
+Description: Lombard
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmp
+Description: Limbum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmq
+Description: Lamatuka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmr
+Description: Lamalera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmu
+Description: Lamenu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmv
+Description: Lomaiviti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmw
+Description: Lake Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmx
+Description: Laimbue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmy
+Description: Lamboya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lmz
+Description: Lumbee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lna
+Description: Langbashe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnb
+Description: Mbalanhu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnd
+Description: Lundayeh
+Description: Lun Bawang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lng
+Description: Langobardic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnh
+Description: Lanoh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lni
+Description: Daantanai'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnj
+Description: Leningitij
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnl
+Description: South Central Banda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnm
+Description: Langam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnn
+Description: Lorediakarkar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lno
+Description: Lango (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lns
+Description: Lamnso'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnu
+Description: Longuda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lnz
+Description: Lonzo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loa
+Description: Loloda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lob
+Description: Lobi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loc
+Description: Inonhan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loe
+Description: Saluan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lof
+Description: Logol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: log
+Description: Logo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loh
+Description: Narim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loi
+Description: Loma (Côte d'Ivoire)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loj
+Description: Lou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lok
+Description: Loko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lol
+Description: Mongo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lom
+Description: Loma (Liberia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lon
+Description: Malawi Lomwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loo
+Description: Lombo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lop
+Description: Lopa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loq
+Description: Lobala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lor
+Description: Téén
+Added: 2009-07-29
+%%
+Type: language
+Subtag: los
+Description: Loniu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lot
+Description: Otuho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lou
+Description: Louisiana Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lov
+Description: Lopi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: low
+Description: Tampias Lobu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lox
+Description: Loun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loy
+Description: Lowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: loz
+Description: Lozi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lpa
+Description: Lelepa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lpe
+Description: Lepki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lpn
+Description: Long Phuri Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lpo
+Description: Lipo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lpx
+Description: Lopit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lra
+Description: Rara Bakati'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrc
+Description: Northern Luri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lre
+Description: Laurentian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrg
+Description: Laragia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lri
+Description: Marachi
+Description: Olumarachi
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lrk
+Description: Loarki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrl
+Description: Lari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrm
+Description: Marama
+Description: Olumarama
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lrn
+Description: Lorang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lro
+Description: Laro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrr
+Description: Southern Lorung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrt
+Description: Larantuka Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrv
+Description: Larevat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lrz
+Description: Lemerig
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsa
+Description: Lasgerdi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsd
+Description: Lishana Deni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lse
+Description: Lusengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsg
+Description: Lyons Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsh
+Description: Lish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsi
+Description: Lashi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsl
+Description: Latvian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsm
+Description: Saamia
+Description: Olusamia
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lso
+Description: Laos Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsp
+Description: Panamanian Sign Language
+Description: Lengua de Señas Panameñas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsr
+Description: Aruop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lss
+Description: Lasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lst
+Description: Trinidad and Tobago Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lsy
+Description: Mauritian Sign Language
+Added: 2010-03-11
+%%
+Type: language
+Subtag: ltc
+Description: Late Middle Chinese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ltg
+Description: Latgalian
+Added: 2010-03-11
+Macrolanguage: lv
+%%
+Type: language
+Subtag: lti
+Description: Leti (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ltn
+Description: Latundê
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lto
+Description: Tsotso
+Description: Olutsotso
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lts
+Description: Tachoni
+Description: Lutachoni
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: ltu
+Description: Latu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lua
+Description: Luba-Lulua
+Added: 2005-10-16
+%%
+Type: language
+Subtag: luc
+Description: Aringa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lud
+Description: Ludian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lue
+Description: Luvale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luf
+Description: Laua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lui
+Description: Luiseno
+Added: 2005-10-16
+%%
+Type: language
+Subtag: luj
+Description: Luna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luk
+Description: Lunanakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lul
+Description: Olu'bo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lum
+Description: Luimbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lun
+Description: Lunda
+Added: 2005-10-16
+%%
+Type: language
+Subtag: luo
+Description: Luo (Kenya and Tanzania)
+Description: Dholuo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lup
+Description: Lumbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luq
+Description: Lucumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lur
+Description: Laura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lus
+Description: Lushai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: lut
+Description: Lushootseed
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luu
+Description: Lumba-Yakkha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luv
+Description: Luwati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luw
+Description: Luo (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: luy
+Description: Luyia
+Description: Oluluyia
+Added: 2009-07-29
+Scope: macrolanguage
+%%
+Type: language
+Subtag: luz
+Description: Southern Luri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lva
+Description: Maku'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lvk
+Description: Lavukaleve
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lvs
+Description: Standard Latvian
+Added: 2010-03-11
+Macrolanguage: lv
+%%
+Type: language
+Subtag: lvu
+Description: Levuka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwa
+Description: Lwalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwe
+Description: Lewo Eleng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwg
+Description: Wanga
+Description: Oluwanga
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: lwh
+Description: White Lachi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwl
+Description: Eastern Lawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwm
+Description: Laomian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwo
+Description: Luwo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lwt
+Description: Lewotobi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lww
+Description: Lewo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lya
+Description: Layakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lyg
+Description: Lyngngam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lyn
+Description: Luyana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lzh
+Description: Literary Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: lzl
+Description: Litzlitz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lzn
+Description: Leinong Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: lzz
+Description: Laz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: maa
+Description: San Jerónimo Tecóatl Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mab
+Description: Yutanduchi Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mad
+Description: Madurese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mae
+Description: Bo-Rukul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: maf
+Description: Mafa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mag
+Description: Magahi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mai
+Description: Maithili
+Added: 2005-10-16
+Suppress-Script: Deva
+%%
+Type: language
+Subtag: maj
+Description: Jalapa De Díaz Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mak
+Description: Makasar
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mam
+Description: Mam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: man
+Description: Mandingo
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: map
+Description: Austronesian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: maq
+Description: Chiquihuitlán Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mas
+Description: Masai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mat
+Description: San Francisco Matlatzinca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mau
+Description: Huautla Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mav
+Description: Sateré-Mawé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: maw
+Description: Mampruli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: max
+Description: North Moluccan Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: maz
+Description: Central Mazahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mba
+Description: Higaonon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbb
+Description: Western Bukidnon Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbc
+Description: Macushi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbd
+Description: Dibabawon Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbe
+Description: Molale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbf
+Description: Baba Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbh
+Description: Mangseng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbi
+Description: Ilianen Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbj
+Description: Nadëb
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbk
+Description: Malol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbl
+Description: Maxakalí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbm
+Description: Ombamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbn
+Description: Macaguán
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbo
+Description: Mbo (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbp
+Description: Malayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbq
+Description: Maisin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbr
+Description: Nukak Makú
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbs
+Description: Sarangani Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbt
+Description: Matigsalug Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbu
+Description: Mbula-Bwazza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbv
+Description: Mbulungish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbw
+Description: Maring
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbx
+Description: Mari (East Sepik Province)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mby
+Description: Memoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mbz
+Description: Amoltepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mca
+Description: Maca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcb
+Description: Machiguenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcc
+Description: Bitur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcd
+Description: Sharanahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mce
+Description: Itundujia Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcf
+Description: Matsés
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcg
+Description: Mapoyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mch
+Description: Maquiritari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mci
+Description: Mese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcj
+Description: Mvanip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mck
+Description: Mbunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcl
+Description: Macaguaje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcm
+Description: Malaccan Creole Portuguese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcn
+Description: Masana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mco
+Description: Coatlán Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcp
+Description: Makaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcq
+Description: Ese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcr
+Description: Menya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcs
+Description: Mambai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mct
+Description: Mengisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcu
+Description: Cameroon Mambila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcv
+Description: Minanibai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcw
+Description: Mawa (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcx
+Description: Mpiemo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcy
+Description: South Watut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mcz
+Description: Mawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mda
+Description: Mada (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdb
+Description: Morigi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdc
+Description: Male (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdd
+Description: Mbum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mde
+Description: Maba (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdf
+Description: Moksha
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mdg
+Description: Massalat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdh
+Description: Maguindanaon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdi
+Description: Mamvu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdj
+Description: Mangbetu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdk
+Description: Mangbutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdl
+Description: Maltese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdm
+Description: Mayogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdn
+Description: Mbati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdp
+Description: Mbala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdq
+Description: Mbole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdr
+Description: Mandar
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mds
+Description: Maria (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdt
+Description: Mbere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdu
+Description: Mboko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdv
+Description: Santa Lucía Monteverde Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdw
+Description: Mbosi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdx
+Description: Dizin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdy
+Description: Male (Ethiopia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mdz
+Description: Suruí Do Pará
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mea
+Description: Menka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: meb
+Description: Ikobi-Mena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mec
+Description: Mara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: med
+Description: Melpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mee
+Description: Mengen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mef
+Description: Megam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: meg
+Description: Mea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: meh
+Description: Southwestern Tlaxiaco Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mei
+Description: Midob
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mej
+Description: Meyah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mek
+Description: Mekeo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mel
+Description: Central Melanau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mem
+Description: Mangala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: men
+Description: Mende (Sierra Leone)
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: meo
+Description: Kedah Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: mep
+Description: Miriwung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: meq
+Description: Merey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mer
+Description: Meru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mes
+Description: Masmaje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: met
+Description: Mato
+Added: 2009-07-29
+%%
+Type: language
+Subtag: meu
+Description: Motu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mev
+Description: Mann
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mew
+Description: Maaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mey
+Description: Hassaniyya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mez
+Description: Menominee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfa
+Description: Pattani Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: mfb
+Description: Bangka
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: mfc
+Description: Mba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfd
+Description: Mendankwe-Nkwen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfe
+Description: Morisyen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mff
+Description: Naki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfg
+Description: Mixifore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfh
+Description: Matal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfi
+Description: Wandala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfj
+Description: Mefele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfk
+Description: North Mofu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfl
+Description: Putai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfm
+Description: Marghi South
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfn
+Description: Cross River Mbembe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfo
+Description: Mbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfp
+Description: Makassar Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfq
+Description: Moba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfr
+Description: Marithiel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfs
+Description: Mexican Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mft
+Description: Mokerang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfu
+Description: Mbwela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfv
+Description: Mandjak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfw
+Description: Mulaha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfx
+Description: Melo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfy
+Description: Mayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mfz
+Description: Mabaan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mga
+Description: Middle Irish (900-1200)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mgb
+Description: Mararit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgc
+Description: Morokodo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgd
+Description: Moru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mge
+Description: Mango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgf
+Description: Maklew
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgg
+Description: Mpongmpong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgh
+Description: Makhuwa-Meetto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgi
+Description: Lijili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgj
+Description: Abureni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgk
+Description: Mawes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgl
+Description: Maleu-Kilenge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgm
+Description: Mambae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgn
+Description: Mbangi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgo
+Description: Meta'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgp
+Description: Eastern Magar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgq
+Description: Malila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgr
+Description: Mambwe-Lungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgs
+Description: Manda (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgt
+Description: Mongol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgu
+Description: Mailu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgv
+Description: Matengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgw
+Description: Matumbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgx
+Description: Omati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgy
+Description: Mbunga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mgz
+Description: Mbugwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mha
+Description: Manda (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhb
+Description: Mahongwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhc
+Description: Mocho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhd
+Description: Mbugu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhe
+Description: Besisi
+Description: Mah Meri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhf
+Description: Mamaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhg
+Description: Margu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhh
+Description: Maskoy Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhi
+Description: Ma'di
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhj
+Description: Mogholi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhk
+Description: Mungaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhl
+Description: Mauwake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhm
+Description: Makhuwa-Moniga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhn
+Description: Mócheno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mho
+Description: Mashi (Zambia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhp
+Description: Balinese Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhq
+Description: Mandan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhr
+Description: Eastern Mari
+Added: 2009-07-29
+Macrolanguage: chm
+%%
+Type: language
+Subtag: mhs
+Description: Buru (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mht
+Description: Mandahuaca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhu
+Description: Digaro-Mishmi
+Description: Darang Deng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhw
+Description: Mbukushu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhx
+Description: Maru
+Description: Lhaovo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhy
+Description: Ma'anyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mhz
+Description: Mor (Mor Islands)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mia
+Description: Miami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mib
+Description: Atatláhuca Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mic
+Description: Mi'kmaq
+Description: Micmac
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mid
+Description: Mandaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mie
+Description: Ocotepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mif
+Description: Mofu-Gudur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mig
+Description: San Miguel El Grande Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mih
+Description: Chayuco Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mii
+Description: Chigmecatitlán Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mij
+Description: Abar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mik
+Description: Mikasuki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mil
+Description: Peñoles Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mim
+Description: Alacatlatzala Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: min
+Description: Minangkabau
+Added: 2005-10-16
+Macrolanguage: ms
+%%
+Type: language
+Subtag: mio
+Description: Pinotepa Nacional Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mip
+Description: Apasco-Apoala Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: miq
+Description: Mískito
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mir
+Description: Isthmus Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mis
+Description: Uncoded languages
+Added: 2005-10-16
+Scope: special
+%%
+Type: language
+Subtag: mit
+Description: Southern Puebla Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: miu
+Description: Cacaloxtepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: miw
+Description: Akoye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mix
+Description: Mixtepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: miy
+Description: Ayutla Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: miz
+Description: Coatzospan Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mja
+Description: Mahei
+Added: 2009-07-29
+Deprecated: 2011-08-16
+%%
+Type: language
+Subtag: mjc
+Description: San Juan Colorado Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjd
+Description: Northwest Maidu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mje
+Description: Muskum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjg
+Description: Tu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjh
+Description: Mwera (Nyasa)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mji
+Description: Kim Mun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjj
+Description: Mawak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjk
+Description: Matukar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjl
+Description: Mandeali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjm
+Description: Medebur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjn
+Description: Ma (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjo
+Description: Malankuravan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjp
+Description: Malapandaram
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjq
+Description: Malaryan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjr
+Description: Malavedan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjs
+Description: Miship
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjt
+Description: Sauria Paharia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mju
+Description: Manna-Dora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjv
+Description: Mannan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjw
+Description: Karbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjx
+Description: Mahali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjy
+Description: Mahican
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mjz
+Description: Majhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mka
+Description: Mbre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkb
+Description: Mal Paharia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkc
+Description: Siliput
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mke
+Description: Mawchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkf
+Description: Miya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkg
+Description: Mak (China)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkh
+Description: Mon-Khmer languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: mki
+Description: Dhatki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkj
+Description: Mokilese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkk
+Description: Byep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkl
+Description: Mokole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkm
+Description: Moklen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkn
+Description: Kupang Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mko
+Description: Mingang Doso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkp
+Description: Moikodi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkq
+Description: Bay Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkr
+Description: Malas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mks
+Description: Silacayoapan Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkt
+Description: Vamale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mku
+Description: Konyanka Maninka
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: mkv
+Description: Mafea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkw
+Description: Kituba (Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkx
+Description: Kinamiging Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mky
+Description: East Makian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mkz
+Description: Makasae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mla
+Description: Malo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlb
+Description: Mbule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlc
+Description: Cao Lan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mld
+Description: Malakhel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mle
+Description: Manambu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlf
+Description: Mal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlh
+Description: Mape
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mli
+Description: Malimpung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlj
+Description: Miltu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlk
+Description: Ilwana
+Description: Kiwilwana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mll
+Description: Malua Bay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlm
+Description: Mulam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mln
+Description: Malango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlo
+Description: Mlomp
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlp
+Description: Bargam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlq
+Description: Western Maninkakan
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: mlr
+Description: Vame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mls
+Description: Masalit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlu
+Description: To'abaita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlv
+Description: Motlav
+Description: Mwotlap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlw
+Description: Moloko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlx
+Description: Malfaxal
+Description: Naha'ai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mlz
+Description: Malaynon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mma
+Description: Mama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmb
+Description: Momina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmc
+Description: Michoacán Mazahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmd
+Description: Maonan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mme
+Description: Mae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmf
+Description: Mundat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmg
+Description: North Ambrym
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmh
+Description: Mehináku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmi
+Description: Musar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmj
+Description: Majhwar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmk
+Description: Mukha-Dora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mml
+Description: Man Met
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmm
+Description: Maii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmn
+Description: Mamanwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmo
+Description: Mangga Buang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmp
+Description: Siawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmq
+Description: Musak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmr
+Description: Western Xiangxi Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: mmt
+Description: Malalamai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmu
+Description: Mmaala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmv
+Description: Miriti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmw
+Description: Emae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmx
+Description: Madak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmy
+Description: Migaama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mmz
+Description: Mabaale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mna
+Description: Mbula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnb
+Description: Muna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnc
+Description: Manchu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mnd
+Description: Mondé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mne
+Description: Naba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnf
+Description: Mundani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mng
+Description: Eastern Mnong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnh
+Description: Mono (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mni
+Description: Manipuri
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mnj
+Description: Munji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnk
+Description: Mandinka
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: mnl
+Description: Tiale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnm
+Description: Mapena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnn
+Description: Southern Mnong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mno
+Description: Manobo languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: mnp
+Description: Min Bei Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: mnq
+Description: Minriq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnr
+Description: Mono (USA)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mns
+Description: Mansi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnt
+Description: Maykulan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnu
+Description: Mer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnv
+Description: Rennell-Bellona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnw
+Description: Mon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnx
+Description: Manikion
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mny
+Description: Manyawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mnz
+Description: Moni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moa
+Description: Mwan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moc
+Description: Mocoví
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mod
+Description: Mobilian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moe
+Description: Montagnais
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mof
+Description: Mohegan-Montauk-Narragansett
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see xnt, xpq
+%%
+Type: language
+Subtag: mog
+Description: Mongondow
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moh
+Description: Mohawk
+Added: 2005-10-16
+%%
+Type: language
+Subtag: moi
+Description: Mboi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moj
+Description: Monzombo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mok
+Description: Morori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mom
+Description: Mangue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moo
+Description: Monom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mop
+Description: Mopán Maya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moq
+Description: Mor (Bomberai Peninsula)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mor
+Description: Moro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mos
+Description: Mossi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mot
+Description: Barí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mou
+Description: Mogum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mov
+Description: Mohave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mow
+Description: Moi (Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mox
+Description: Molima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moy
+Description: Shekkacho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: moz
+Description: Mukulu
+Description: Gergiko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpa
+Description: Mpoto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpb
+Description: Mullukmulluk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpc
+Description: Mangarayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpd
+Description: Machinere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpe
+Description: Majang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpg
+Description: Marba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mph
+Description: Maung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpi
+Description: Mpade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpj
+Description: Martu Wangka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpk
+Description: Mbara (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpl
+Description: Middle Watut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpm
+Description: Yosondúa Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpn
+Description: Mindiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpo
+Description: Miu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpp
+Description: Migabac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpq
+Description: Matís
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpr
+Description: Vangunu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mps
+Description: Dadibi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpt
+Description: Mian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpu
+Description: Makuráp
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpv
+Description: Mungkip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpw
+Description: Mapidian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpx
+Description: Misima-Paneati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpy
+Description: Mapia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mpz
+Description: Mpi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqa
+Description: Maba (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqb
+Description: Mbuko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqc
+Description: Mangole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqe
+Description: Matepi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqf
+Description: Momuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqg
+Description: Kota Bangun Kutai Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: mqh
+Description: Tlazoyaltepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqi
+Description: Mariri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqj
+Description: Mamasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqk
+Description: Rajah Kabunsuwan Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mql
+Description: Mbelime
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqm
+Description: South Marquesan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqn
+Description: Moronene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqo
+Description: Modole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqp
+Description: Manipa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqq
+Description: Minokok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqr
+Description: Mander
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqs
+Description: West Makian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqt
+Description: Mok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqu
+Description: Mandari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqv
+Description: Mosimo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqw
+Description: Murupi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqx
+Description: Mamuju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqy
+Description: Manggarai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mqz
+Description: Malasanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mra
+Description: Mlabri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrb
+Description: Marino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrc
+Description: Maricopa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrd
+Description: Western Magar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mre
+Description: Martha's Vineyard Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrf
+Description: Elseng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrg
+Description: Mising
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrh
+Description: Mara Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrj
+Description: Western Mari
+Added: 2009-07-29
+Macrolanguage: chm
+%%
+Type: language
+Subtag: mrk
+Description: Hmwaveke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrl
+Description: Mortlockese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrm
+Description: Merlav
+Description: Mwerlap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrn
+Description: Cheke Holo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mro
+Description: Mru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrp
+Description: Morouas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrq
+Description: North Marquesan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrr
+Description: Maria (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrs
+Description: Maragus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrt
+Description: Marghi Central
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mru
+Description: Mono (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrv
+Description: Mangareva
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrw
+Description: Maranao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrx
+Description: Maremgi
+Description: Dineor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mry
+Description: Mandaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mrz
+Description: Marind
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msb
+Description: Masbatenyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msc
+Description: Sankaran Maninka
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: msd
+Description: Yucatec Maya Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mse
+Description: Musey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msf
+Description: Mekwei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msg
+Description: Moraid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msh
+Description: Masikoro Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: msi
+Description: Sabah Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: msj
+Description: Ma (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msk
+Description: Mansaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msl
+Description: Molof
+Description: Poule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msm
+Description: Agusan Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msn
+Description: Vurës
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mso
+Description: Mombum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msp
+Description: Maritsauá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msq
+Description: Caac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msr
+Description: Mongolian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mss
+Description: West Masela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mst
+Description: Cataelano Mandaya
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: mry
+%%
+Type: language
+Subtag: msu
+Description: Musom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msv
+Description: Maslam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msw
+Description: Mansoanka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msx
+Description: Moresada
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msy
+Description: Aruamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: msz
+Description: Momare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mta
+Description: Cotabato Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtb
+Description: Anyin Morofo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtc
+Description: Munit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtd
+Description: Mualang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mte
+Description: Mono (Solomon Islands)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtf
+Description: Murik (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtg
+Description: Una
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mth
+Description: Munggui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mti
+Description: Maiwa (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtj
+Description: Moskona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtk
+Description: Mbe'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtl
+Description: Montol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtm
+Description: Mator
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtn
+Description: Matagalpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mto
+Description: Totontepec Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtp
+Description: Wichí Lhamtés Nocten
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtq
+Description: Muong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtr
+Description: Mewari
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: mts
+Description: Yora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtt
+Description: Mota
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtu
+Description: Tututepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtv
+Description: Asaro'o
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtw
+Description: Southern Binukidnon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mtx
+Description: Tidaá Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mty
+Description: Nabi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mua
+Description: Mundang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mub
+Description: Mubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muc
+Description: Mbu'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mud
+Description: Mednyj Aleut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mue
+Description: Media Lengua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mug
+Description: Musgu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muh
+Description: Mündü
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mui
+Description: Musi
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: muj
+Description: Mabire
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muk
+Description: Mugom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mul
+Description: Multiple languages
+Added: 2005-10-16
+Scope: special
+%%
+Type: language
+Subtag: mum
+Description: Maiwala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mun
+Description: Munda languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: muo
+Description: Nyong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mup
+Description: Malvi
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: muq
+Description: Eastern Xiangxi Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: mur
+Description: Murle
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mus
+Description: Creek
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mut
+Description: Western Muria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muu
+Description: Yaaku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muv
+Description: Muthuvan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mux
+Description: Bo-Ung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muy
+Description: Muyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: muz
+Description: Mursi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mva
+Description: Manam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvb
+Description: Mattole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvd
+Description: Mamboru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mve
+Description: Marwari (Pakistan)
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: mvf
+Description: Peripheral Mongolian
+Added: 2009-07-29
+Macrolanguage: mn
+%%
+Type: language
+Subtag: mvg
+Description: Yucuañe Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvh
+Description: Mire
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvi
+Description: Miyako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvk
+Description: Mekmek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvl
+Description: Mbara (Australia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvm
+Description: Muya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvn
+Description: Minaveha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvo
+Description: Marovo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvp
+Description: Duri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvq
+Description: Moere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvr
+Description: Marau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvs
+Description: Massep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvt
+Description: Mpotovoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvu
+Description: Marfa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvv
+Description: Tagal Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvw
+Description: Machinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvx
+Description: Meoswar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvy
+Description: Indus Kohistani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mvz
+Description: Mesqan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwa
+Description: Mwatebu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwb
+Description: Juwal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwc
+Description: Are
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwd
+Description: Mudbura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwe
+Description: Mwera (Chimwera)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwf
+Description: Murrinh-Patha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwg
+Description: Aiklep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwh
+Description: Mouk-Aria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwi
+Description: Labo
+Description: Ninde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwj
+Description: Maligo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwk
+Description: Kita Maninkakan
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: mwl
+Description: Mirandese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: mwm
+Description: Sar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwn
+Description: Nyamwanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwo
+Description: Central Maewo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwp
+Description: Kala Lagaw Ya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwq
+Description: Mün Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwr
+Description: Marwari
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: mws
+Description: Mwimbi-Muthambi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwt
+Description: Moken
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwu
+Description: Mittu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwv
+Description: Mentawai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mww
+Description: Hmong Daw
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: mwx
+Description: Mediak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwy
+Description: Mosiro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mwz
+Description: Moingi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxa
+Description: Northwest Oaxaca Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxb
+Description: Tezoatlán Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxc
+Description: Manyika
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxd
+Description: Modang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxe
+Description: Mele-Fila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxf
+Description: Malgbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxg
+Description: Mbangala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxh
+Description: Mvuba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxi
+Description: Mozarabic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxj
+Description: Miju-Mishmi
+Description: Geman Deng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxk
+Description: Monumbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxl
+Description: Maxi Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxm
+Description: Meramera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxn
+Description: Moi (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxo
+Description: Mbowe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxp
+Description: Tlahuitoltepec Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxq
+Description: Juquila Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxr
+Description: Murik (Malaysia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxs
+Description: Huitepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxt
+Description: Jamiltepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxu
+Description: Mada (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxv
+Description: Metlatónoc Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxw
+Description: Namo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxx
+Description: Mahou
+Description: Mawukakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxy
+Description: Southeastern Nochixtlán Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mxz
+Description: Central Masela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myb
+Description: Mbay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myc
+Description: Mayeka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myd
+Description: Maramba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mye
+Description: Myene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myf
+Description: Bambassi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myg
+Description: Manta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myh
+Description: Makah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myi
+Description: Mina (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myj
+Description: Mangayat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myk
+Description: Mamara Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myl
+Description: Moma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mym
+Description: Me'en
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myn
+Description: Mayan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: myo
+Description: Anfillo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myp
+Description: Pirahã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myq
+Description: Forest Maninka
+Added: 2009-07-29
+Macrolanguage: man
+%%
+Type: language
+Subtag: myr
+Description: Muniche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mys
+Description: Mesmes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myt
+Description: Sangab Mandaya
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: mry
+%%
+Type: language
+Subtag: myu
+Description: Mundurukú
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myv
+Description: Erzya
+Added: 2005-10-16
+%%
+Type: language
+Subtag: myw
+Description: Muyuw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myx
+Description: Masaaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myy
+Description: Macuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: myz
+Description: Classical Mandaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mza
+Description: Santa María Zacatepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzb
+Description: Tumzabt
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzc
+Description: Madagascar Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzd
+Description: Malimba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mze
+Description: Morawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzg
+Description: Monastic Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzh
+Description: Wichí Lhamtés Güisnay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzi
+Description: Ixcatlán Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzj
+Description: Manya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzk
+Description: Nigeria Mambila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzl
+Description: Mazatlán Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzm
+Description: Mumuye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzn
+Description: Mazanderani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzo
+Description: Matipuhy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzp
+Description: Movima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzq
+Description: Mori Atas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzr
+Description: Marúbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzs
+Description: Macanese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzt
+Description: Mintil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzu
+Description: Inapang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzv
+Description: Manza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzw
+Description: Deg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzx
+Description: Mawayana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzy
+Description: Mozambican Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: mzz
+Description: Maiadomu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: naa
+Description: Namla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nab
+Description: Southern Nambikuára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nac
+Description: Narak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nad
+Description: Nijadali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nae
+Description: Naka'ela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: naf
+Description: Nabak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nag
+Description: Naga Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nah
+Description: Nahuatl languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: nai
+Description: North American Indian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: naj
+Description: Nalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nak
+Description: Nakanai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nal
+Description: Nalik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nam
+Description: Nangikurrunggurr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nan
+Description: Min Nan Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: nao
+Description: Naaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nap
+Description: Neapolitan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: naq
+Description: Nama (Namibia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nar
+Description: Iguta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nas
+Description: Naasioi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nat
+Description: Hungworo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: naw
+Description: Nawuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nax
+Description: Nakwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nay
+Description: Narrinyeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: naz
+Description: Coatepec Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nba
+Description: Nyemba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbb
+Description: Ndoe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbc
+Description: Chang Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbd
+Description: Ngbinda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbe
+Description: Konyak Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbf
+Description: Naxi
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Comments: see nru, nxq
+%%
+Type: language
+Subtag: nbg
+Description: Nagarchal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbh
+Description: Ngamo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbi
+Description: Mao Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbj
+Description: Ngarinman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbk
+Description: Nake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbm
+Description: Ngbaka Ma'bo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbn
+Description: Kuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbo
+Description: Nkukoli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbp
+Description: Nnam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbq
+Description: Nggem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbr
+Description: Numana-Nunku-Gbantu-Numbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbs
+Description: Namibian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbt
+Description: Na
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbu
+Description: Rongmei Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbv
+Description: Ngamambo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbw
+Description: Southern Ngbandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nbx
+Description: Ngura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nby
+Description: Ningera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nca
+Description: Iyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncb
+Description: Central Nicobarese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncc
+Description: Ponam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncd
+Description: Nachering
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nce
+Description: Yale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncf
+Description: Notsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncg
+Description: Nisga'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nch
+Description: Central Huasteca Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nci
+Description: Classical Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncj
+Description: Northern Puebla Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nck
+Description: Nakara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncl
+Description: Michoacán Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncm
+Description: Nambo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncn
+Description: Nauna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nco
+Description: Sibe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncp
+Description: Ndaktup
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncr
+Description: Ncane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncs
+Description: Nicaraguan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nct
+Description: Chothe Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncu
+Description: Chumburung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncx
+Description: Central Puebla Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ncz
+Description: Natchez
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nda
+Description: Ndasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndb
+Description: Kenswei Nsei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndc
+Description: Ndau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndd
+Description: Nde-Nsele-Nta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndf
+Description: Nadruvian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndg
+Description: Ndengereko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndh
+Description: Ndali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndi
+Description: Samba Leko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndj
+Description: Ndamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndk
+Description: Ndaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndl
+Description: Ndolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndm
+Description: Ndam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndn
+Description: Ngundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndp
+Description: Ndo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndq
+Description: Ndombe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndr
+Description: Ndoola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nds
+Description: Low German
+Description: Low Saxon
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ndt
+Description: Ndunga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndu
+Description: Dugun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndv
+Description: Ndut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndw
+Description: Ndobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndx
+Description: Nduga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndy
+Description: Lutos
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ndz
+Description: Ndogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nea
+Description: Eastern Ngad'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: neb
+Description: Toura (Côte d'Ivoire)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nec
+Description: Nedebang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ned
+Description: Nde-Gbite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nee
+Description: Nêlêmwa-Nixumwak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nef
+Description: Nefamese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: neg
+Description: Negidal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: neh
+Description: Nyenkha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nei
+Description: Neo-Hittite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nej
+Description: Neko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nek
+Description: Neku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nem
+Description: Nemi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nen
+Description: Nengone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: neo
+Description: Ná-Meo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: neq
+Description: North Central Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ner
+Description: Yahadian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nes
+Description: Bhoti Kinnauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: net
+Description: Nete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nev
+Description: Nyaheun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: new
+Description: Newari
+Description: Nepal Bhasa
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nex
+Description: Neme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ney
+Description: Neyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nez
+Description: Nez Perce
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nfa
+Description: Dhao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nfd
+Description: Ahwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nfl
+Description: Ayiwo
+Description: Äiwoo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nfr
+Description: Nafaanra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nfu
+Description: Mfumte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nga
+Description: Ngbaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngb
+Description: Northern Ngbandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngc
+Description: Ngombe (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngd
+Description: Ngando (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nge
+Description: Ngemba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngf
+Description: Trans-New Guinea languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: ngg
+Description: Ngbaka Manza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngh
+Description: N/u
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngi
+Description: Ngizim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngj
+Description: Ngie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngk
+Description: Ngalkbun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngl
+Description: Lomwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngm
+Description: Ngatik Men's Creole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngn
+Description: Ngwo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngo
+Description: Ngoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngp
+Description: Ngulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngq
+Description: Ngurimi
+Description: Ngoreme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngr
+Description: Nanggu
+Description: Nagu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngs
+Description: Gvoko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngt
+Description: Ngeq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngu
+Description: Guerrero Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngv
+Description: Nagumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngw
+Description: Ngwaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngx
+Description: Nggwahyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngy
+Description: Tibea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ngz
+Description: Ngungwel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nha
+Description: Nhanda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhb
+Description: Beng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhc
+Description: Tabasco Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhd
+Description: Chiripá
+Description: Ava Guaraní
+Added: 2009-07-29
+Macrolanguage: gn
+%%
+Type: language
+Subtag: nhe
+Description: Eastern Huasteca Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhf
+Description: Nhuwala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhg
+Description: Tetelcingo Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhh
+Description: Nahari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhi
+Description: Zacatlán-Ahuacatlán-Tepetzintla Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhk
+Description: Isthmus-Cosoleacaque Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhm
+Description: Morelos Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhn
+Description: Central Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nho
+Description: Takuu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhp
+Description: Isthmus-Pajapan Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhq
+Description: Huaxcaleca Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhr
+Description: Naro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nht
+Description: Ometepec Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhu
+Description: Noone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhv
+Description: Temascaltepec Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhw
+Description: Western Huasteca Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhx
+Description: Isthmus-Mecayapan Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhy
+Description: Northern Oaxaca Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nhz
+Description: Santa María La Alta Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nia
+Description: Nias
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nib
+Description: Nakame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nic
+Description: Niger-Kordofanian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: nid
+Description: Ngandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nie
+Description: Niellim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nif
+Description: Nek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nig
+Description: Ngalakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nih
+Description: Nyiha (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nii
+Description: Nii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nij
+Description: Ngaju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nik
+Description: Southern Nicobarese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nil
+Description: Nila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nim
+Description: Nilamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nin
+Description: Ninzo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nio
+Description: Nganasan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: niq
+Description: Nandi
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: nir
+Description: Nimboran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nis
+Description: Nimi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nit
+Description: Southeastern Kolami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: niu
+Description: Niuean
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: niv
+Description: Gilyak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: niw
+Description: Nimo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nix
+Description: Hema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: niy
+Description: Ngiti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: niz
+Description: Ningil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nja
+Description: Nzanyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njb
+Description: Nocte Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njd
+Description: Ndonde Hamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njh
+Description: Lotha Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nji
+Description: Gudanji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njj
+Description: Njen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njl
+Description: Njalgulgule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njm
+Description: Angami Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njn
+Description: Liangmai Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njo
+Description: Ao Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njr
+Description: Njerep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njs
+Description: Nisa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njt
+Description: Ndyuka-Trio Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nju
+Description: Ngadjunmaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njx
+Description: Kunyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: njy
+Description: Njyem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nka
+Description: Nkoya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkb
+Description: Khoibu Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkc
+Description: Nkongho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkd
+Description: Koireng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nke
+Description: Duke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkf
+Description: Inpui Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkg
+Description: Nekgini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkh
+Description: Khezha Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nki
+Description: Thangal Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkj
+Description: Nakai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkk
+Description: Nokuku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkm
+Description: Namat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkn
+Description: Nkangala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nko
+Description: Nkonya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkp
+Description: Niuatoputapu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkq
+Description: Nkami
+Added: 2010-04-16
+%%
+Type: language
+Subtag: nkr
+Description: Nukuoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nks
+Description: North Asmat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkt
+Description: Nyika (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nku
+Description: Bouna Kulango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkv
+Description: Nyika (Malawi and Zambia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkw
+Description: Nkutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkx
+Description: Nkoroo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nkz
+Description: Nkari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nla
+Description: Ngombale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlc
+Description: Nalca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nle
+Description: East Nyala
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: nlg
+Description: Gela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nli
+Description: Grangali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlj
+Description: Nyali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlk
+Description: Ninia Yali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nll
+Description: Nihali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nln
+Description: Durango Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlo
+Description: Ngul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlr
+Description: Ngarla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlu
+Description: Nchumbulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlv
+Description: Orizaba Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlx
+Description: Nahali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nly
+Description: Nyamal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nlz
+Description: Nalögo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nma
+Description: Maram Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmb
+Description: Big Nambas
+Description: V'ënen Taut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmc
+Description: Ngam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmd
+Description: Ndumu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nme
+Description: Mzieme Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmf
+Description: Tangkhul Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmg
+Description: Kwasio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmh
+Description: Monsang Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmi
+Description: Nyam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmj
+Description: Ngombe (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmk
+Description: Namakura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nml
+Description: Ndemli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmm
+Description: Manangba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmn
+Description: !Xóõ
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmo
+Description: Moyon Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmp
+Description: Nimanbur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmq
+Description: Nambya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmr
+Description: Nimbari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nms
+Description: Letemboi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmt
+Description: Namonuito
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmu
+Description: Northeast Maidu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmv
+Description: Ngamini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmw
+Description: Nimoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmx
+Description: Nama (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmy
+Description: Namuyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nmz
+Description: Nawdm
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nna
+Description: Nyangumarta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnb
+Description: Nande
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnc
+Description: Nancere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnd
+Description: West Ambae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nne
+Description: Ngandyera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnf
+Description: Ngaing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nng
+Description: Maring Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnh
+Description: Ngiemboon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nni
+Description: North Nuaulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnj
+Description: Nyangatom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnk
+Description: Nankina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnl
+Description: Northern Rengma Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnm
+Description: Namia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnn
+Description: Ngete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnp
+Description: Wancho Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnq
+Description: Ngindo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnr
+Description: Narungga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nns
+Description: Ningye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnt
+Description: Nanticoke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnu
+Description: Dwang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnv
+Description: Nugunu (Australia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnw
+Description: Southern Nuni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnx
+Description: Ngong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nny
+Description: Nyangga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nnz
+Description: Nda'nda'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noa
+Description: Woun Meu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noc
+Description: Nuk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nod
+Description: Northern Thai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noe
+Description: Nimadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nof
+Description: Nomane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nog
+Description: Nogai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: noh
+Description: Nomu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noi
+Description: Noiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noj
+Description: Nonuya
+Added: 2010-03-11
+%%
+Type: language
+Subtag: nok
+Description: Nooksack
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nom
+Description: Nocamán
+Added: 2009-07-29
+%%
+Type: language
+Subtag: non
+Description: Old Norse
+Added: 2005-10-16
+%%
+Type: language
+Subtag: noo
+Description: Nootka
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Comments: see dtd, nuk
+%%
+Type: language
+Subtag: nop
+Description: Numanggang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noq
+Description: Ngongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nos
+Description: Eastern Nisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: not
+Description: Nomatsiguenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nou
+Description: Ewage-Notu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nov
+Description: Novial
+Added: 2009-07-29
+%%
+Type: language
+Subtag: now
+Description: Nyambo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noy
+Description: Noy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: noz
+Description: Nayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npa
+Description: Nar Phu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npb
+Description: Nupbikha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nph
+Description: Phom Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npl
+Description: Southeastern Puebla Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npn
+Description: Mondropolon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npo
+Description: Pochuri Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nps
+Description: Nipsan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npu
+Description: Puimei Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: npy
+Description: Napu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nqg
+Description: Southern Nago
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nqk
+Description: Kura Ede Nago
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nqm
+Description: Ndom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nqn
+Description: Nen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nqo
+Description: N'Ko
+Description: N’Ko
+Added: 2006-06-05
+Suppress-Script: Nkoo
+%%
+Type: language
+Subtag: nra
+Description: Ngom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrb
+Description: Nara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrc
+Description: Noric
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nre
+Description: Southern Rengma Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrg
+Description: Narango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nri
+Description: Chokri Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrl
+Description: Ngarluma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrm
+Description: Narom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrn
+Description: Norn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrp
+Description: North Picene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrr
+Description: Norra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrt
+Description: Northern Kalapuya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nru
+Description: Narua
+Added: 2011-08-16
+%%
+Type: language
+Subtag: nrx
+Description: Ngurmbur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nrz
+Description: Lala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsa
+Description: Sangtam Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsc
+Description: Nshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsd
+Description: Southern Nisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nse
+Description: Nsenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsg
+Description: Ngasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsh
+Description: Ngoshie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsi
+Description: Nigerian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsk
+Description: Naskapi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsl
+Description: Norwegian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsm
+Description: Sumi Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsn
+Description: Nehan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nso
+Description: Pedi
+Description: Northern Sotho
+Description: Sepedi
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: nsp
+Description: Nepalese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsq
+Description: Northern Sierra Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsr
+Description: Maritime Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nss
+Description: Nali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nst
+Description: Tase Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsu
+Description: Sierra Negra Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsv
+Description: Southwestern Nisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsw
+Description: Navut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsx
+Description: Nsongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsy
+Description: Nasal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nsz
+Description: Nisenan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nte
+Description: Nathembo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nti
+Description: Natioro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntj
+Description: Ngaanyatjarra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntk
+Description: Ikoma-Nata-Isenye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntm
+Description: Nateni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nto
+Description: Ntomba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntp
+Description: Northern Tepehuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntr
+Description: Delo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nts
+Description: Natagaimas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntu
+Description: Natügu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntw
+Description: Nottoway
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nty
+Description: Mantsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ntz
+Description: Natanzi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nua
+Description: Yuaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nub
+Description: Nubian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: nuc
+Description: Nukuini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nud
+Description: Ngala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nue
+Description: Ngundu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuf
+Description: Nusu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nug
+Description: Nungali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuh
+Description: Ndunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nui
+Description: Ngumbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuj
+Description: Nyole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuk
+Description: Nuu-chah-nulth
+Description: Nuuchahnulth
+Added: 2011-08-16
+%%
+Type: language
+Subtag: nul
+Description: Nusa Laut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: num
+Description: Niuafo'ou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nun
+Description: Anong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuo
+Description: Nguôn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nup
+Description: Nupe-Nupe-Tako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuq
+Description: Nukumanu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nur
+Description: Nukuria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nus
+Description: Nuer
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nut
+Description: Nung (Viet Nam)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuu
+Description: Ngbundu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuv
+Description: Northern Nuni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuw
+Description: Nguluwan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nux
+Description: Mehek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuy
+Description: Nunggubuyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nuz
+Description: Tlamacazapa Nahuatl
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nvh
+Description: Nasarian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nvm
+Description: Namiae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwa
+Description: Nawathinehena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwb
+Description: Nyabwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwc
+Description: Classical Newari
+Description: Classical Nepal Bhasa
+Description: Old Newari
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nwe
+Description: Ngwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwi
+Description: Southwest Tanna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwm
+Description: Nyamusa-Molo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwr
+Description: Nawaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwx
+Description: Middle Newar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nwy
+Description: Nottoway-Meherrin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxa
+Description: Nauete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxd
+Description: Ngando (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxe
+Description: Nage
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxg
+Description: Ngad'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxi
+Description: Nindi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxl
+Description: South Nuaulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxm
+Description: Numidian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxn
+Description: Ngawun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxq
+Description: Naxi
+Added: 2011-08-16
+%%
+Type: language
+Subtag: nxr
+Description: Ninggerum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxu
+Description: Narau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nxx
+Description: Nafri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyb
+Description: Nyangbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyc
+Description: Nyanga-li
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyd
+Description: Nyore
+Description: Olunyole
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: nye
+Description: Nyengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyf
+Description: Giryama
+Description: Kigiryama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyg
+Description: Nyindu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyh
+Description: Nyigina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyi
+Description: Ama (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyj
+Description: Nyanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyk
+Description: Nyaneka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyl
+Description: Nyeu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nym
+Description: Nyamwezi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nyn
+Description: Nyankole
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nyo
+Description: Nyoro
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nyp
+Description: Nyang'i
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyq
+Description: Nayini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyr
+Description: Nyiha (Malawi)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nys
+Description: Nyunga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyt
+Description: Nyawaygi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyu
+Description: Nyungwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyv
+Description: Nyulnyul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyw
+Description: Nyaw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyx
+Description: Nganyaywana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nyy
+Description: Nyakyusa-Ngonde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nza
+Description: Tigon Mbembe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzb
+Description: Njebi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzi
+Description: Nzima
+Added: 2005-10-16
+%%
+Type: language
+Subtag: nzk
+Description: Nzakara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzm
+Description: Zeme Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzs
+Description: New Zealand Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzu
+Description: Teke-Nzikou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzy
+Description: Nzakambay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: nzz
+Description: Nanga Dama Dogon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: oaa
+Description: Orok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oac
+Description: Oroch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oar
+Description: Old Aramaic (up to 700 BCE)
+Description: Ancient Aramaic (up to 700 BCE)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oav
+Description: Old Avar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obi
+Description: Obispeño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obk
+Description: Southern Bontok
+Added: 2010-03-11
+Macrolanguage: bnc
+%%
+Type: language
+Subtag: obl
+Description: Oblo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obm
+Description: Moabite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obo
+Description: Obo Manobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obr
+Description: Old Burmese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obt
+Description: Old Breton
+Added: 2009-07-29
+%%
+Type: language
+Subtag: obu
+Description: Obulom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oca
+Description: Ocaina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: och
+Description: Old Chinese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oco
+Description: Old Cornish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ocu
+Description: Atzingo Matlatzinca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oda
+Description: Odut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: odk
+Description: Od
+Added: 2009-07-29
+%%
+Type: language
+Subtag: odt
+Description: Old Dutch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: odu
+Description: Odual
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ofo
+Description: Ofo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ofs
+Description: Old Frisian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ofu
+Description: Efutop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ogb
+Description: Ogbia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ogc
+Description: Ogbah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oge
+Description: Old Georgian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ogg
+Description: Ogbogolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ogo
+Description: Khana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ogu
+Description: Ogbronuagum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oht
+Description: Old Hittite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ohu
+Description: Old Hungarian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oia
+Description: Oirata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oin
+Description: Inebu One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ojb
+Description: Northwestern Ojibwa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: ojc
+Description: Central Ojibwa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: ojg
+Description: Eastern Ojibwa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: ojp
+Description: Old Japanese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ojs
+Description: Severn Ojibwa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: ojv
+Description: Ontong Java
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ojw
+Description: Western Ojibwa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: oka
+Description: Okanagan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okb
+Description: Okobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okd
+Description: Okodia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oke
+Description: Okpe (Southwestern Edo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okh
+Description: Koresh-e Rostam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oki
+Description: Okiek
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: okj
+Description: Oko-Juwoi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okk
+Description: Kwamtim One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okl
+Description: Old Kentish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okm
+Description: Middle Korean (10th-16th cent.)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okn
+Description: Oki-No-Erabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oko
+Description: Old Korean (3rd-9th cent.)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okr
+Description: Kirike
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oks
+Description: Oko-Eni-Osayen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oku
+Description: Oku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okv
+Description: Orokaiva
+Added: 2009-07-29
+%%
+Type: language
+Subtag: okx
+Description: Okpe (Northwestern Edo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ola
+Description: Walungge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: old
+Description: Mochi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ole
+Description: Olekha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: olm
+Description: Oloma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: olo
+Description: Livvi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: olr
+Description: Olrat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oma
+Description: Omaha-Ponca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omb
+Description: East Ambae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omc
+Description: Mochica
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ome
+Description: Omejes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omg
+Description: Omagua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omi
+Description: Omi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omk
+Description: Omok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oml
+Description: Ombo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omn
+Description: Minoan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omo
+Description: Utarmbung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omp
+Description: Old Manipuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omq
+Description: Oto-Manguean languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: omr
+Description: Old Marathi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omt
+Description: Omotik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omu
+Description: Omurano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omv
+Description: Omotic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: omw
+Description: South Tairora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: omx
+Description: Old Mon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ona
+Description: Ona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onb
+Description: Lingao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: one
+Description: Oneida
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ong
+Description: Olo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oni
+Description: Onin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onj
+Description: Onjob
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onk
+Description: Kabore One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onn
+Description: Onobasulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ono
+Description: Onondaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onp
+Description: Sartang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onr
+Description: Northern One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ons
+Description: Ono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ont
+Description: Ontenu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onu
+Description: Unua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onw
+Description: Old Nubian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: onx
+Description: Onin Based Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ood
+Description: Tohono O'odham
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oog
+Description: Ong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oon
+Description: Önge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oor
+Description: Oorlams
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oos
+Description: Old Ossetic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opa
+Description: Okpamheri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opk
+Description: Kopkaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opm
+Description: Oksapmin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opo
+Description: Opao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opt
+Description: Opata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: opy
+Description: Ofayé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ora
+Description: Oroha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orc
+Description: Orma
+Added: 2009-07-29
+Macrolanguage: om
+%%
+Type: language
+Subtag: ore
+Description: Orejón
+Added: 2009-07-29
+%%
+Type: language
+Subtag: org
+Description: Oring
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orh
+Description: Oroqen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orn
+Description: Orang Kanaq
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: oro
+Description: Orokolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orr
+Description: Oruma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ors
+Description: Orang Seletar
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: ort
+Description: Adivasi Oriya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oru
+Description: Ormuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orv
+Description: Old Russian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orw
+Description: Oro Win
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orx
+Description: Oro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: orz
+Description: Ormu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: osa
+Description: Osage
+Added: 2005-10-16
+%%
+Type: language
+Subtag: osc
+Description: Oscan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: osi
+Description: Osing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oso
+Description: Ososo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: osp
+Description: Old Spanish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ost
+Description: Osatu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: osu
+Description: Southern One
+Added: 2009-07-29
+%%
+Type: language
+Subtag: osx
+Description: Old Saxon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ota
+Description: Ottoman Turkish (1500-1928)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: otb
+Description: Old Tibetan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otd
+Description: Ot Danum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ote
+Description: Mezquital Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oti
+Description: Oti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otk
+Description: Old Turkish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otl
+Description: Tilapa Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otm
+Description: Eastern Highland Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otn
+Description: Tenango Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oto
+Description: Otomian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: otq
+Description: Querétaro Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otr
+Description: Otoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ots
+Description: Estado de México Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ott
+Description: Temoaya Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otu
+Description: Otuke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otw
+Description: Ottawa
+Added: 2009-07-29
+Macrolanguage: oj
+%%
+Type: language
+Subtag: otx
+Description: Texcatepec Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oty
+Description: Old Tamil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: otz
+Description: Ixtenco Otomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oua
+Description: Tagargrent
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oub
+Description: Glio-Oubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oue
+Description: Oune
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oui
+Description: Old Uighur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oum
+Description: Ouma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oun
+Description: !O!ung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: owi
+Description: Owiniga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: owl
+Description: Old Welsh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oyb
+Description: Oy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oyd
+Description: Oyda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oym
+Description: Wayampi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: oyy
+Description: Oya'oya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ozm
+Description: Koonzime
+Added: 2009-07-29
+%%
+Type: language
+Subtag: paa
+Description: Papuan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: pab
+Description: Parecís
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pac
+Description: Pacoh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pad
+Description: Paumarí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pae
+Description: Pagibete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: paf
+Description: Paranawát
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pag
+Description: Pangasinan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pah
+Description: Tenharim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pai
+Description: Pe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pak
+Description: Parakanã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pal
+Description: Pahlavi
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pam
+Description: Pampanga
+Description: Kapampangan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pao
+Description: Northern Paiute
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pap
+Description: Papiamento
+Added: 2005-10-16
+%%
+Type: language
+Subtag: paq
+Description: Parya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: par
+Description: Panamint
+Description: Timbisha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pas
+Description: Papasena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pat
+Description: Papitalai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pau
+Description: Palauan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pav
+Description: Pakaásnovos
+Added: 2009-07-29
+%%
+Type: language
+Subtag: paw
+Description: Pawnee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pax
+Description: Pankararé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pay
+Description: Pech
+Added: 2009-07-29
+%%
+Type: language
+Subtag: paz
+Description: Pankararú
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbb
+Description: Páez
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbc
+Description: Patamona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbe
+Description: Mezontla Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbf
+Description: Coyotepec Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbg
+Description: Paraujano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbh
+Description: E'ñapa Woromaipu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbi
+Description: Parkwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbl
+Description: Mak (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbn
+Description: Kpasam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbo
+Description: Papel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbp
+Description: Badyara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbr
+Description: Pangwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbs
+Description: Central Pame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbt
+Description: Southern Pashto
+Added: 2009-07-29
+Macrolanguage: ps
+%%
+Type: language
+Subtag: pbu
+Description: Northern Pashto
+Added: 2009-07-29
+Macrolanguage: ps
+%%
+Type: language
+Subtag: pbv
+Description: Pnar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pby
+Description: Pyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pbz
+Description: Palu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pca
+Description: Santa Inés Ahuatempan Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcb
+Description: Pear
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcc
+Description: Bouyei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcd
+Description: Picard
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pce
+Description: Ruching Palaung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcf
+Description: Paliyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcg
+Description: Paniya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pch
+Description: Pardhan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pci
+Description: Duruwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcj
+Description: Parenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pck
+Description: Paite Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcl
+Description: Pardhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcm
+Description: Nigerian Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcn
+Description: Piti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcp
+Description: Pacahuara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcr
+Description: Panang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pcw
+Description: Pyapun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pda
+Description: Anam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdc
+Description: Pennsylvania German
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdi
+Description: Pa Di
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdn
+Description: Podena
+Description: Fedan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdo
+Description: Padoe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdt
+Description: Plautdietsch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pdu
+Description: Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pea
+Description: Peranakan Indonesian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: peb
+Description: Eastern Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ped
+Description: Mala (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pee
+Description: Taje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pef
+Description: Northeastern Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: peg
+Description: Pengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: peh
+Description: Bonan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pei
+Description: Chichimeca-Jonaz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pej
+Description: Northern Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pek
+Description: Penchal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pel
+Description: Pekal
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: pem
+Description: Phende
+Added: 2009-07-29
+%%
+Type: language
+Subtag: peo
+Description: Old Persian (ca. 600-400 B.C.)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pep
+Description: Kunja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: peq
+Description: Southern Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pes
+Description: Iranian Persian
+Added: 2009-07-29
+Macrolanguage: fa
+%%
+Type: language
+Subtag: pev
+Description: Pémono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pex
+Description: Petats
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pey
+Description: Petjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pez
+Description: Eastern Penan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pfa
+Description: Pááfang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pfe
+Description: Peere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pfl
+Description: Pfaelzisch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pga
+Description: Sudanese Creole Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: pgg
+Description: Pangwali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgi
+Description: Pagi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgk
+Description: Rerep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgl
+Description: Primitive Irish
+Added: 2011-08-16
+%%
+Type: language
+Subtag: pgn
+Description: Paelignian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgs
+Description: Pangseng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgu
+Description: Pagu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pgy
+Description: Pongyong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pha
+Description: Pa-Hng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phd
+Description: Phudagi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phg
+Description: Phuong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phh
+Description: Phukha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phi
+Description: Philippine languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: phk
+Description: Phake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phl
+Description: Phalura
+Description: Palula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phm
+Description: Phimbi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phn
+Description: Phoenician
+Added: 2005-10-16
+%%
+Type: language
+Subtag: pho
+Description: Phunoi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phq
+Description: Phana'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phr
+Description: Pahari-Potwari
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: pht
+Description: Phu Thai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phu
+Description: Phuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phv
+Description: Pahlavani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: phw
+Description: Phangduwali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pia
+Description: Pima Bajo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pib
+Description: Yine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pic
+Description: Pinji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pid
+Description: Piaroa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pie
+Description: Piro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pif
+Description: Pingelapese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pig
+Description: Pisabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pih
+Description: Pitcairn-Norfolk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pii
+Description: Pini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pij
+Description: Pijao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pil
+Description: Yom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pim
+Description: Powhatan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pin
+Description: Piame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pio
+Description: Piapoco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pip
+Description: Pero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pir
+Description: Piratapuyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pis
+Description: Pijin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pit
+Description: Pitta Pitta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: piu
+Description: Pintupi-Luritja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: piv
+Description: Pileni
+Description: Vaeakau-Taumako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: piw
+Description: Pimbwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pix
+Description: Piu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: piy
+Description: Piya-Kwonci
+Added: 2009-07-29
+%%
+Type: language
+Subtag: piz
+Description: Pije
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pjt
+Description: Pitjantjatjara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pka
+Description: Ardhamāgadhī Prākrit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkb
+Description: Pokomo
+Description: Kipfokomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkc
+Description: Paekche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkg
+Description: Pak-Tong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkh
+Description: Pankhu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkn
+Description: Pakanha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pko
+Description: Pökoot
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: pkp
+Description: Pukapuka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkr
+Description: Attapady Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pks
+Description: Pakistan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pkt
+Description: Maleng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pku
+Description: Paku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pla
+Description: Miani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plb
+Description: Polonombauk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plc
+Description: Central Palawano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pld
+Description: Polari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ple
+Description: Palu'e
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plf
+Description: Central Malayo-Polynesian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: plg
+Description: Pilagá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plh
+Description: Paulohi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plj
+Description: Polci
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plk
+Description: Kohistani Shina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pll
+Description: Shwe Palaung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pln
+Description: Palenquero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plo
+Description: Oluta Popoluca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plp
+Description: Palpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plq
+Description: Palaic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plr
+Description: Palaka Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pls
+Description: San Marcos Tlalcoyalco Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plt
+Description: Plateau Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: plu
+Description: Palikúr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plv
+Description: Southwest Palawano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plw
+Description: Brooke's Point Palawano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ply
+Description: Bolyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: plz
+Description: Paluan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pma
+Description: Paama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmb
+Description: Pambia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmc
+Description: Palumata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pme
+Description: Pwaamei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmf
+Description: Pamona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmh
+Description: Māhārāṣṭri Prākrit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmi
+Description: Northern Pumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmj
+Description: Southern Pumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmk
+Description: Pamlico
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pml
+Description: Lingua Franca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmm
+Description: Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmn
+Description: Pam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmo
+Description: Pom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmq
+Description: Northern Pame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmr
+Description: Paynamar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pms
+Description: Piemontese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmt
+Description: Tuamotuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmu
+Description: Mirpur Panjabi
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: pmw
+Description: Plains Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmx
+Description: Poumei Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmy
+Description: Papuan Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pmz
+Description: Southern Pame
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pna
+Description: Punan Bah-Biau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnb
+Description: Western Panjabi
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: pnc
+Description: Pannei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pne
+Description: Western Penan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: png
+Description: Pongu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnh
+Description: Penrhyn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pni
+Description: Aoheng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnm
+Description: Punan Batu 1
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnn
+Description: Pinai-Hagahai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pno
+Description: Panobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnp
+Description: Pancana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnq
+Description: Pana (Burkina Faso)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnr
+Description: Panim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pns
+Description: Ponosakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnt
+Description: Pontic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnu
+Description: Jiongnai Bunu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnv
+Description: Pinigura
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnw
+Description: Panytyima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pnx
+Description: Phong-Kniang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pny
+Description: Pinyin
+Added: 2009-07-29
+Comments: a Niger-Congo language spoken in Cameroon; not to be confused
+ with the Pinyin romanization systems used for Chinese and Tibetan
+%%
+Type: language
+Subtag: pnz
+Description: Pana (Central African Republic)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poc
+Description: Poqomam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pod
+Description: Ponares
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poe
+Description: San Juan Atzingo Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pof
+Description: Poke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pog
+Description: Potiguára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poh
+Description: Poqomchi'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poi
+Description: Highland Popoluca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pok
+Description: Pokangá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pom
+Description: Southeastern Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pon
+Description: Pohnpeian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: poo
+Description: Central Pomo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pop
+Description: Pwapwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poq
+Description: Texistepec Popoluca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pos
+Description: Sayula Popoluca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pot
+Description: Potawatomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pov
+Description: Upper Guinea Crioulo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pow
+Description: San Felipe Otlaltepec Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pox
+Description: Polabian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poy
+Description: Pogolo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: poz
+Description: Malayo-Polynesian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: ppa
+Description: Pao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppe
+Description: Papi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppi
+Description: Paipai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppk
+Description: Uma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppl
+Description: Pipil
+Description: Nicarao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppm
+Description: Papuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppn
+Description: Papapana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppo
+Description: Folopa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppp
+Description: Pelende
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppq
+Description: Pei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppr
+Description: Piru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pps
+Description: San Luís Temalacayuca Popoloca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppt
+Description: Pare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ppu
+Description: Papora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pqa
+Description: Pa'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pqe
+Description: Eastern Malayo-Polynesian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: pqm
+Description: Malecite-Passamaquoddy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pqw
+Description: Western Malayo-Polynesian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: pra
+Description: Prakrit languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: prb
+Description: Lua'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prc
+Description: Parachi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prd
+Description: Parsi-Dari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pre
+Description: Principense
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prf
+Description: Paranan
+Added: 2010-03-11
+%%
+Type: language
+Subtag: prg
+Description: Prussian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prh
+Description: Porohanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pri
+Description: Paicî
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prk
+Description: Parauk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prl
+Description: Peruvian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prm
+Description: Kibiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prn
+Description: Prasuni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pro
+Description: Old Provençal (to 1500)
+Description: Old Occitan (to 1500)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: prp
+Description: Parsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prq
+Description: Ashéninka Perené
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prr
+Description: Puri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prs
+Description: Dari
+Description: Afghan Persian
+Added: 2009-07-29
+Macrolanguage: fa
+%%
+Type: language
+Subtag: prt
+Description: Phai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pru
+Description: Puragi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prw
+Description: Parawen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prx
+Description: Purik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pry
+Description: Pray 3
+Added: 2009-07-29
+%%
+Type: language
+Subtag: prz
+Description: Providencia Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psa
+Description: Asue Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psc
+Description: Persian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psd
+Description: Plains Indian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pse
+Description: Central Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: psg
+Description: Penang Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psh
+Description: Southwest Pashayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psi
+Description: Southeast Pashayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psl
+Description: Puerto Rican Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psm
+Description: Pauserna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psn
+Description: Panasuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pso
+Description: Polish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psp
+Description: Philippine Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psq
+Description: Pasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psr
+Description: Portuguese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pss
+Description: Kaulong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pst
+Description: Central Pashto
+Added: 2009-07-29
+Macrolanguage: ps
+%%
+Type: language
+Subtag: psu
+Description: Sauraseni Prākrit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psw
+Description: Port Sandwich
+Added: 2009-07-29
+%%
+Type: language
+Subtag: psy
+Description: Piscataway
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pta
+Description: Pai Tavytera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pth
+Description: Pataxó Hã-Ha-Hãe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pti
+Description: Pintiini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptn
+Description: Patani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pto
+Description: Zo'é
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptp
+Description: Patep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptr
+Description: Piamatsina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptt
+Description: Enrekang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptu
+Description: Bambam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptv
+Description: Port Vato
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ptw
+Description: Pentlatch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pty
+Description: Pathiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pua
+Description: Western Highland Purepecha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pub
+Description: Purum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puc
+Description: Punan Merap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pud
+Description: Punan Aput
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pue
+Description: Puelche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puf
+Description: Punan Merah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pug
+Description: Phuie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pui
+Description: Puinave
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puj
+Description: Punan Tubu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puk
+Description: Pu Ko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pum
+Description: Puma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puo
+Description: Puoc
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pup
+Description: Pulabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puq
+Description: Puquina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pur
+Description: Puruborá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: put
+Description: Putoh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puu
+Description: Punu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puw
+Description: Puluwatese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pux
+Description: Puare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puy
+Description: Purisimeño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: puz
+Description: Purum Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwa
+Description: Pawaia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwb
+Description: Panawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwg
+Description: Gapapaiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwm
+Description: Molbog
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwn
+Description: Paiwan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwo
+Description: Pwo Western Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pwr
+Description: Powari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pww
+Description: Pwo Northern Karen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pxm
+Description: Quetzaltepec Mixe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pye
+Description: Pye Krumen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pym
+Description: Fyam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pyn
+Description: Poyanáwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pys
+Description: Paraguayan Sign Language
+Description: Lengua de Señas del Paraguay
+Added: 2010-03-11
+%%
+Type: language
+Subtag: pyu
+Description: Puyuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pyx
+Description: Pyu (Myanmar)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pyy
+Description: Pyen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: pzn
+Description: Para Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qaa..qtz
+Description: Private use
+Added: 2005-10-16
+Scope: private-use
+%%
+Type: language
+Subtag: qua
+Description: Quapaw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qub
+Description: Huallaga Huánuco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quc
+Description: K'iche'
+Description: Quiché
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qud
+Description: Calderón Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quf
+Description: Lambayeque Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qug
+Description: Chimborazo Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quh
+Description: South Bolivian Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qui
+Description: Quileute
+Added: 2009-07-29
+%%
+Type: language
+Subtag: quk
+Description: Chachapoyas Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qul
+Description: North Bolivian Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qum
+Description: Sipacapense
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qun
+Description: Quinault
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qup
+Description: Southern Pastaza Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quq
+Description: Quinqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qur
+Description: Yanahuanca Pasco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qus
+Description: Santiago del Estero Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quv
+Description: Sacapulteco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: quw
+Description: Tena Lowland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qux
+Description: Yauyos Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quy
+Description: Ayacucho Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: quz
+Description: Cusco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qva
+Description: Ambo-Pasco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvc
+Description: Cajamarca Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qve
+Description: Eastern Apurímac Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvh
+Description: Huamalíes-Dos de Mayo Huánuco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvi
+Description: Imbabura Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvj
+Description: Loja Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvl
+Description: Cajatambo North Lima Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvm
+Description: Margos-Yarowilca-Lauricocha Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvn
+Description: North Junín Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvo
+Description: Napo Lowland Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvp
+Description: Pacaraos Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvs
+Description: San Martín Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvw
+Description: Huaylla Wanca Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qvy
+Description: Queyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qvz
+Description: Northern Pastaza Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qwa
+Description: Corongo Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qwc
+Description: Classical Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qwe
+Description: Quechuan (family)
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: qwh
+Description: Huaylas Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qwm
+Description: Kuman (Russia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qws
+Description: Sihuas Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qwt
+Description: Kwalhioqua-Tlatskanai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qxa
+Description: Chiquián Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxc
+Description: Chincha Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxh
+Description: Panao Huánuco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxl
+Description: Salasaca Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxn
+Description: Northern Conchucos Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxo
+Description: Southern Conchucos Ancash Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxp
+Description: Puno Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxq
+Description: Qashqa'i
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qxr
+Description: Cañar Highland Quichua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxs
+Description: Southern Qiang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qxt
+Description: Santa Ana de Tusi Pasco Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxu
+Description: Arequipa-La Unión Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qxw
+Description: Jauja Wanca Quechua
+Added: 2009-07-29
+Macrolanguage: qu
+%%
+Type: language
+Subtag: qya
+Description: Quenya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: qyp
+Description: Quiripi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: raa
+Description: Dungmali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rab
+Description: Camling
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rac
+Description: Rasawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rad
+Description: Rade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: raf
+Description: Western Meohang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rag
+Description: Logooli
+Description: Lulogooli
+Added: 2009-07-29
+Macrolanguage: luy
+%%
+Type: language
+Subtag: rah
+Description: Rabha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rai
+Description: Ramoaaina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: raj
+Description: Rajasthani
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: rak
+Description: Tulu-Bohuai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ral
+Description: Ralte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ram
+Description: Canela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ran
+Description: Riantana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rao
+Description: Rao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rap
+Description: Rapanui
+Added: 2005-10-16
+%%
+Type: language
+Subtag: raq
+Description: Saam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rar
+Description: Rarotongan
+Description: Cook Islands Maori
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ras
+Description: Tegali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rat
+Description: Razajerdi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rau
+Description: Raute
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rav
+Description: Sampang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: raw
+Description: Rawang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rax
+Description: Rang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ray
+Description: Rapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: raz
+Description: Rahambuu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rbb
+Description: Rumai Palaung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rbk
+Description: Northern Bontok
+Added: 2010-03-11
+Macrolanguage: bnc
+%%
+Type: language
+Subtag: rbl
+Description: Miraya Bikol
+Added: 2010-03-11
+Macrolanguage: bik
+%%
+Type: language
+Subtag: rcf
+Description: Réunion Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rdb
+Description: Rudbari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rea
+Description: Rerau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: reb
+Description: Rembong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ree
+Description: Rejang Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: reg
+Description: Kara (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rei
+Description: Reli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rej
+Description: Rejang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rel
+Description: Rendille
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rem
+Description: Remo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ren
+Description: Rengao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rer
+Description: Rer Bare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: res
+Description: Reshe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ret
+Description: Retta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rey
+Description: Reyesano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rga
+Description: Roria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rge
+Description: Romano-Greek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rgk
+Description: Rangkas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rgn
+Description: Romagnol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rgr
+Description: Resígaro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rgs
+Description: Southern Roglai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rgu
+Description: Ringgou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rhg
+Description: Rohingya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rhp
+Description: Yahang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ria
+Description: Riang (India)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rie
+Description: Rien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rif
+Description: Tarifit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ril
+Description: Riang (Myanmar)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rim
+Description: Nyaturu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rin
+Description: Nungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rir
+Description: Ribun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rit
+Description: Ritarungo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: riu
+Description: Riung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rjg
+Description: Rajong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rji
+Description: Raji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rjs
+Description: Rajbanshi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rka
+Description: Kraol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rkb
+Description: Rikbaktsa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rkh
+Description: Rakahanga-Manihiki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rki
+Description: Rakhine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rkm
+Description: Marka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rkt
+Description: Rangpuri
+Description: Kamta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rma
+Description: Rama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmb
+Description: Rembarunga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmc
+Description: Carpathian Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmd
+Description: Traveller Danish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rme
+Description: Angloromani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmf
+Description: Kalo Finnish Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmg
+Description: Traveller Norwegian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmh
+Description: Murkim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmi
+Description: Lomavren
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmk
+Description: Romkun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rml
+Description: Baltic Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmm
+Description: Roma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmn
+Description: Balkan Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmo
+Description: Sinte Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmp
+Description: Rempi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmq
+Description: Caló
+Added: 2010-03-11
+%%
+Type: language
+Subtag: rmr
+Description: Caló
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see emx, rmq
+%%
+Type: language
+Subtag: rms
+Description: Romanian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmt
+Description: Domari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmu
+Description: Tavringer Romani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmv
+Description: Romanova
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmw
+Description: Welsh Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmx
+Description: Romam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rmy
+Description: Vlax Romani
+Added: 2009-07-29
+Macrolanguage: rom
+%%
+Type: language
+Subtag: rmz
+Description: Marma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rna
+Description: Runa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rnd
+Description: Ruund
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rng
+Description: Ronga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rnl
+Description: Ranglong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rnn
+Description: Roon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rnp
+Description: Rongpo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rnw
+Description: Rungwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: roa
+Description: Romance languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: rob
+Description: Tae'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: roc
+Description: Cacgia Roglai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rod
+Description: Rogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: roe
+Description: Ronji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rof
+Description: Rombo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rog
+Description: Northern Roglai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rol
+Description: Romblomanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rom
+Description: Romany
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: roo
+Description: Rotokas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rop
+Description: Kriol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ror
+Description: Rongga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rou
+Description: Runga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: row
+Description: Dela-Oenale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rpn
+Description: Repanbitip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rpt
+Description: Rapting
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rri
+Description: Ririo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rro
+Description: Waima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rsb
+Description: Romano-Serbian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rsi
+Description: Rennellese Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rsl
+Description: Russian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rth
+Description: Ratahan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rtm
+Description: Rotuman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rtw
+Description: Rathawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rub
+Description: Gungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruc
+Description: Ruuli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rue
+Description: Rusyn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruf
+Description: Luguru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rug
+Description: Roviana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruh
+Description: Ruga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rui
+Description: Rufiji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruk
+Description: Che
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruo
+Description: Istro Romanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rup
+Description: Macedo-Romanian
+Description: Aromanian
+Description: Arumanian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ruq
+Description: Megleno Romanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rut
+Description: Rutul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruu
+Description: Lanas Lobu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruy
+Description: Mala (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ruz
+Description: Ruma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rwa
+Description: Rawo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rwk
+Description: Rwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rwm
+Description: Amba (Uganda)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rwo
+Description: Rawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rwr
+Description: Marwari (India)
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: ryn
+Description: Northern Amami-Oshima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: rys
+Description: Yaeyama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ryu
+Description: Central Okinawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: saa
+Description: Saba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sab
+Description: Buglere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sac
+Description: Meskwaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sad
+Description: Sandawe
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sae
+Description: Sabanê
+Added: 2009-07-29
+%%
+Type: language
+Subtag: saf
+Description: Safaliba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sah
+Description: Yakut
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sai
+Description: South American Indian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: saj
+Description: Sahu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sak
+Description: Sake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sal
+Description: Salishan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: sam
+Description: Samaritan Aramaic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sao
+Description: Sause
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sap
+Description: Sanapaná
+Added: 2009-07-29
+%%
+Type: language
+Subtag: saq
+Description: Samburu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sar
+Description: Saraveca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sas
+Description: Sasak
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sat
+Description: Santali
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sau
+Description: Saleman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sav
+Description: Saafi-Saafi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: saw
+Description: Sawi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sax
+Description: Sa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: say
+Description: Saya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: saz
+Description: Saurashtra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sba
+Description: Ngambay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbb
+Description: Simbo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbc
+Description: Kele (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbd
+Description: Southern Samo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbe
+Description: Saliba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbf
+Description: Shabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbg
+Description: Seget
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbh
+Description: Sori-Harengan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbi
+Description: Seti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbj
+Description: Surbakhal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbk
+Description: Safwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbl
+Description: Botolan Sambal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbm
+Description: Sagala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbn
+Description: Sindhi Bhil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbo
+Description: Sabüm
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbp
+Description: Sangu (Tanzania)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbq
+Description: Sileibi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbr
+Description: Sembakung Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbs
+Description: Subiya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbt
+Description: Kimki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbu
+Description: Stod Bhoti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbv
+Description: Sabine
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbw
+Description: Simba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbx
+Description: Seberuang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sby
+Description: Soli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sbz
+Description: Sara Kaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sca
+Description: Sansu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scb
+Description: Chut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sce
+Description: Dongxiang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scf
+Description: San Miguel Creole French
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scg
+Description: Sanggau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sch
+Description: Sakachep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sci
+Description: Sri Lankan Creole Malay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sck
+Description: Sadri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scl
+Description: Shina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scn
+Description: Sicilian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sco
+Description: Scots
+Added: 2005-10-16
+%%
+Type: language
+Subtag: scp
+Description: Helambu Sherpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scq
+Description: Sa'och
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scs
+Description: North Slavey
+Added: 2009-07-29
+Macrolanguage: den
+%%
+Type: language
+Subtag: scu
+Description: Shumcho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scv
+Description: Sheni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scw
+Description: Sha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: scx
+Description: Sicel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sda
+Description: Toraja-Sa'dan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdb
+Description: Shabak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdc
+Description: Sassarese Sardinian
+Added: 2009-07-29
+Macrolanguage: sc
+%%
+Type: language
+Subtag: sde
+Description: Surubu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdf
+Description: Sarli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdg
+Description: Savi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdh
+Description: Southern Kurdish
+Added: 2009-07-29
+Macrolanguage: ku
+%%
+Type: language
+Subtag: sdj
+Description: Suundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdk
+Description: Sos Kundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdl
+Description: Saudi Arabian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdm
+Description: Semandang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdn
+Description: Gallurese Sardinian
+Added: 2009-07-29
+Macrolanguage: sc
+%%
+Type: language
+Subtag: sdo
+Description: Bukar-Sadung Bidayuh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdp
+Description: Sherdukpen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdr
+Description: Oraon Sadri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sds
+Description: Sened
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdt
+Description: Shuadit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdu
+Description: Sarudu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdv
+Description: Eastern Sudanic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: sdx
+Description: Sibu Melanau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sdz
+Description: Sallands
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sea
+Description: Semai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seb
+Description: Shempire Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sec
+Description: Sechelt
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sed
+Description: Sedang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: see
+Description: Seneca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sef
+Description: Cebaara Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seg
+Description: Segeju
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seh
+Description: Sena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sei
+Description: Seri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sej
+Description: Sene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sek
+Description: Sekani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sel
+Description: Selkup
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sem
+Description: Semitic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: sen
+Description: Nanerigé Sénoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seo
+Description: Suarmin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sep
+Description: Sìcìté Sénoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seq
+Description: Senara Sénoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ser
+Description: Serrano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ses
+Description: Koyraboro Senni Songhai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: set
+Description: Sentani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: seu
+Description: Serui-Laut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sev
+Description: Nyarafolo Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sew
+Description: Sewa Bay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sey
+Description: Secoya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sez
+Description: Senthang Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sfb
+Description: Langue des signes de Belgique Francophone
+Description: French Belgian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sfm
+Description: Small Flowery Miao
+Added: 2009-07-29
+Macrolanguage: hmn
+%%
+Type: language
+Subtag: sfs
+Description: South African Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sfw
+Description: Sehwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sga
+Description: Old Irish (to 900)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sgb
+Description: Mag-antsi Ayta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgc
+Description: Kipsigis
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: sgd
+Description: Surigaonon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: sge
+Description: Segai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgg
+Description: Swiss-German Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgh
+Description: Shughni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgi
+Description: Suga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgk
+Description: Sangkong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgl
+Description: Sanglechi-Ishkashimi
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see isk, sgy
+%%
+Type: language
+Subtag: sgm
+Description: Singa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgn
+Description: Sign languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: sgo
+Description: Songa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgp
+Description: Singpho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgr
+Description: Sangisari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgs
+Description: Samogitian
+Added: 2010-07-26
+%%
+Type: language
+Subtag: sgt
+Description: Brokpake
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgu
+Description: Salas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgw
+Description: Sebat Bet Gurage
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgx
+Description: Sierra Leone Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sgy
+Description: Sanglechi
+Added: 2010-03-11
+%%
+Type: language
+Subtag: sgz
+Description: Sursurunga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sha
+Description: Shall-Zwall
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shb
+Description: Ninam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shc
+Description: Sonde
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shd
+Description: Kundal Shahi
+Added: 2010-03-11
+%%
+Type: language
+Subtag: she
+Description: Sheko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shg
+Description: Shua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shh
+Description: Shoshoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shi
+Description: Tachelhit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shj
+Description: Shatt
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shk
+Description: Shilluk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shl
+Description: Shendu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shm
+Description: Shahrudi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shn
+Description: Shan
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sho
+Description: Shanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shp
+Description: Shipibo-Conibo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shq
+Description: Sala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shr
+Description: Shi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shs
+Description: Shuswap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sht
+Description: Shasta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shu
+Description: Chadian Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: shv
+Description: Shehri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shw
+Description: Shwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shx
+Description: She
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shy
+Description: Tachawit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: shz
+Description: Syenara Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sia
+Description: Akkala Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sib
+Description: Sebop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sid
+Description: Sidamo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sie
+Description: Simaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sif
+Description: Siamou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sig
+Description: Paasaal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sih
+Description: Zire
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sii
+Description: Shom Peng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sij
+Description: Numbami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sik
+Description: Sikiana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sil
+Description: Tumulung Sisaala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sim
+Description: Mende (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sio
+Description: Siouan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: sip
+Description: Sikkimese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: siq
+Description: Sonia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sir
+Description: Siri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sis
+Description: Siuslaw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sit
+Description: Sino-Tibetan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: siu
+Description: Sinagen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: siv
+Description: Sumariup
+Added: 2009-07-29
+%%
+Type: language
+Subtag: siw
+Description: Siwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: six
+Description: Sumau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: siy
+Description: Sivandi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: siz
+Description: Siwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sja
+Description: Epena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjb
+Description: Sajau Basap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjd
+Description: Kildin Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sje
+Description: Pite Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjg
+Description: Assangori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjk
+Description: Kemi Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjl
+Description: Sajalong
+Description: Miji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjm
+Description: Mapun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjn
+Description: Sindarin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjo
+Description: Xibe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjp
+Description: Surjapuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjr
+Description: Siar-Lak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjs
+Description: Senhaja De Srair
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjt
+Description: Ter Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sju
+Description: Ume Sami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sjw
+Description: Shawnee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ska
+Description: Skagit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skb
+Description: Saek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skc
+Description: Sauk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skd
+Description: Southern Sierra Miwok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ske
+Description: Seke (Vanuatu)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skf
+Description: Sakirabiá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skg
+Description: Sakalava Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: skh
+Description: Sikule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ski
+Description: Sika
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skj
+Description: Seke (Nepal)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skk
+Description: Sok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skm
+Description: Sakam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skn
+Description: Kolibugan Subanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sko
+Description: Seko Tengah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skp
+Description: Sekapan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skq
+Description: Sininkere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skr
+Description: Seraiki
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: sks
+Description: Maia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skt
+Description: Sakata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sku
+Description: Sakao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skv
+Description: Skou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skw
+Description: Skepi Creole Dutch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skx
+Description: Seko Padang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sky
+Description: Sikaiana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: skz
+Description: Sekar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sla
+Description: Slavic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: slc
+Description: Sáliba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sld
+Description: Sissala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sle
+Description: Sholaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slf
+Description: Swiss-Italian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slg
+Description: Selungai Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slh
+Description: Southern Puget Sound Salish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sli
+Description: Lower Silesian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slj
+Description: Salumá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sll
+Description: Salt-Yui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slm
+Description: Pangutaran Sama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sln
+Description: Salinan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slp
+Description: Lamaholot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slq
+Description: Salchuq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slr
+Description: Salar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sls
+Description: Singapore Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slt
+Description: Sila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slu
+Description: Selaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slw
+Description: Sialum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slx
+Description: Salampasu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sly
+Description: Selayar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: slz
+Description: Ma'ya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sma
+Description: Southern Sami
+Added: 2005-10-16
+%%
+Type: language
+Subtag: smb
+Description: Simbari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smc
+Description: Som
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smd
+Description: Sama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smf
+Description: Auwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smg
+Description: Simbali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smh
+Description: Samei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smi
+Description: Sami languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: smj
+Description: Lule Sami
+Added: 2005-10-16
+%%
+Type: language
+Subtag: smk
+Description: Bolinao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sml
+Description: Central Sama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smm
+Description: Musasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smn
+Description: Inari Sami
+Added: 2005-10-16
+%%
+Type: language
+Subtag: smp
+Description: Samaritan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smq
+Description: Samo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smr
+Description: Simeulue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sms
+Description: Skolt Sami
+Added: 2005-10-16
+%%
+Type: language
+Subtag: smt
+Description: Simte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smu
+Description: Somray
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smv
+Description: Samvedi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smw
+Description: Sumbawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smx
+Description: Samba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smy
+Description: Semnani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: smz
+Description: Simeku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snb
+Description: Sebuyau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snc
+Description: Sinaugoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sne
+Description: Bau Bidayuh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snf
+Description: Noon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sng
+Description: Sanga (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snh
+Description: Shinabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sni
+Description: Sensi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snj
+Description: Riverain Sango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snk
+Description: Soninke
+Added: 2005-10-16
+%%
+Type: language
+Subtag: snl
+Description: Sangil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snm
+Description: Southern Ma'di
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snn
+Description: Siona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sno
+Description: Snohomish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snp
+Description: Siane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snq
+Description: Sangu (Gabon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snr
+Description: Sihan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sns
+Description: South West Bay
+Description: Nahavaq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snu
+Description: Senggi
+Description: Viid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snv
+Description: Sa'ban
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snw
+Description: Selee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snx
+Description: Sam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sny
+Description: Saniyo-Hiyewe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: snz
+Description: Sinsauru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soa
+Description: Thai Song
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sob
+Description: Sobei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soc
+Description: So (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sod
+Description: Songoora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soe
+Description: Songomeno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sog
+Description: Sogdian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: soh
+Description: Aka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soi
+Description: Sonha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soj
+Description: Soi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sok
+Description: Sokoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sol
+Description: Solos
+Added: 2009-07-29
+%%
+Type: language
+Subtag: son
+Description: Songhai languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: soo
+Description: Songo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sop
+Description: Songe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soq
+Description: Kanasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sor
+Description: Somrai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sos
+Description: Seeku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sou
+Description: Southern Thai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sov
+Description: Sonsorol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sow
+Description: Sowanda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sox
+Description: So (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soy
+Description: Miyobe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: soz
+Description: Temi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spb
+Description: Sepa (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spc
+Description: Sapé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spd
+Description: Saep
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spe
+Description: Sepa (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spg
+Description: Sian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spi
+Description: Saponi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spk
+Description: Sengo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spl
+Description: Selepet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spm
+Description: Sepen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spo
+Description: Spokane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spp
+Description: Supyire Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spq
+Description: Loreto-Ucayali Spanish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spr
+Description: Saparua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sps
+Description: Saposa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spt
+Description: Spiti Bhoti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spu
+Description: Sapuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spx
+Description: South Picene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: spy
+Description: Sabaot
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: sqa
+Description: Shama-Sambuga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqh
+Description: Shau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqj
+Description: Albanian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: sqm
+Description: Suma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqn
+Description: Susquehannock
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqo
+Description: Sorkhei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqq
+Description: Sou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqr
+Description: Siculo Arabic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqs
+Description: Sri Lankan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sqt
+Description: Soqotri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: squ
+Description: Squamish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sra
+Description: Saruga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srb
+Description: Sora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: src
+Description: Logudorese Sardinian
+Added: 2009-07-29
+Macrolanguage: sc
+%%
+Type: language
+Subtag: sre
+Description: Sara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srf
+Description: Nafi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srg
+Description: Sulod
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srh
+Description: Sarikoli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sri
+Description: Siriano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srk
+Description: Serudung Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srl
+Description: Isirawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srm
+Description: Saramaccan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srn
+Description: Sranan Tongo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sro
+Description: Campidanese Sardinian
+Added: 2009-07-29
+Macrolanguage: sc
+%%
+Type: language
+Subtag: srq
+Description: Sirionó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srr
+Description: Serer
+Added: 2005-10-16
+%%
+Type: language
+Subtag: srs
+Description: Sarsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srt
+Description: Sauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sru
+Description: Suruí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srv
+Description: Southern Sorsoganon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srw
+Description: Serua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srx
+Description: Sirmauri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sry
+Description: Sera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: srz
+Description: Shahmirzadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssa
+Description: Nilo-Saharan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ssb
+Description: Southern Sama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssc
+Description: Suba-Simbiti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssd
+Description: Siroi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sse
+Description: Balangingi
+Description: Bangingih Sama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssf
+Description: Thao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssg
+Description: Seimat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssh
+Description: Shihhi Arabic
+Added: 2009-07-29
+Macrolanguage: ar
+%%
+Type: language
+Subtag: ssi
+Description: Sansi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssj
+Description: Sausi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssk
+Description: Sunam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssl
+Description: Western Sisaala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssm
+Description: Semnam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssn
+Description: Waata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sso
+Description: Sissano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssp
+Description: Spanish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssq
+Description: So'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssr
+Description: Swiss-French Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sss
+Description: Sô
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sst
+Description: Sinasina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssu
+Description: Susuami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssv
+Description: Shark Bay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssx
+Description: Samberigi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssy
+Description: Saho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ssz
+Description: Sengseng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sta
+Description: Settla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stb
+Description: Northern Subanen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: std
+Description: Sentinel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ste
+Description: Liana-Seti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stf
+Description: Seta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stg
+Description: Trieng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sth
+Description: Shelta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sti
+Description: Bulo Stieng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stj
+Description: Matya Samo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stk
+Description: Arammba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stl
+Description: Stellingwerfs
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stm
+Description: Setaman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stn
+Description: Owa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sto
+Description: Stoney
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stp
+Description: Southeastern Tepehuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stq
+Description: Saterfriesisch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: str
+Description: Straits Salish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sts
+Description: Shumashti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stt
+Description: Budeh Stieng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stu
+Description: Samtao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stv
+Description: Silt'e
+Added: 2009-07-29
+%%
+Type: language
+Subtag: stw
+Description: Satawalese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sua
+Description: Sulka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sub
+Description: Suku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suc
+Description: Western Subanon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sue
+Description: Suena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sug
+Description: Suganga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sui
+Description: Suki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suj
+Description: Shubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suk
+Description: Sukuma
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sul
+Description: Surigaonon
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see sgd, tgn
+%%
+Type: language
+Subtag: sum
+Description: Sumo-Mayangna
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see ulw, yan
+%%
+Type: language
+Subtag: suq
+Description: Suri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sur
+Description: Mwaghavul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sus
+Description: Susu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: sut
+Description: Subtiaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suv
+Description: Sulung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suw
+Description: Sumbwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sux
+Description: Sumerian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: suy
+Description: Suyá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: suz
+Description: Sunwar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sva
+Description: Svan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svb
+Description: Ulau-Suain
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svc
+Description: Vincentian Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sve
+Description: Serili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svk
+Description: Slovakian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svr
+Description: Savara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svs
+Description: Savosavo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: svx
+Description: Skalvian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swb
+Description: Maore Comorian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swc
+Description: Congo Swahili
+Added: 2009-07-29
+Macrolanguage: sw
+%%
+Type: language
+Subtag: swf
+Description: Sere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swg
+Description: Swabian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swh
+Description: Swahili (individual language)
+Description: Kiswahili
+Added: 2009-07-29
+Macrolanguage: sw
+%%
+Type: language
+Subtag: swi
+Description: Sui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swj
+Description: Sira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swk
+Description: Malawi Sena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swl
+Description: Swedish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swm
+Description: Samosa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swn
+Description: Sawknah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swo
+Description: Shanenawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swp
+Description: Suau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swq
+Description: Sharwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swr
+Description: Saweru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sws
+Description: Seluwasan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swt
+Description: Sawila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swu
+Description: Suwawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swv
+Description: Shekhawati
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: sww
+Description: Sowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swx
+Description: Suruahá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: swy
+Description: Sarua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxb
+Description: Suba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxc
+Description: Sicanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxe
+Description: Sighu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxg
+Description: Shixing
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxk
+Description: Southern Kalapuya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxl
+Description: Selian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxm
+Description: Samre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxn
+Description: Sangir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxo
+Description: Sorothaptic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxr
+Description: Saaroa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxs
+Description: Sasaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxu
+Description: Upper Saxon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sxw
+Description: Saxwe Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sya
+Description: Siang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syb
+Description: Central Subanen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syc
+Description: Classical Syriac
+Added: 2007-04-03
+%%
+Type: language
+Subtag: syd
+Description: Samoyedic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: syi
+Description: Seki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syk
+Description: Sukur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syl
+Description: Sylheti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sym
+Description: Maya Samo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syn
+Description: Senaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syo
+Description: Suoy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syr
+Description: Syriac
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: sys
+Description: Sinyar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syw
+Description: Kagate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: syy
+Description: Al-Sayyid Bedouin Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sza
+Description: Semelai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szb
+Description: Ngalum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szc
+Description: Semaq Beri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szd
+Description: Seru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: sze
+Description: Seze
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szg
+Description: Sengele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szl
+Description: Silesian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szn
+Description: Sula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szp
+Description: Suabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szv
+Description: Isu (Fako Division)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: szw
+Description: Sawai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: taa
+Description: Lower Tanana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tab
+Description: Tabassaran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tac
+Description: Lowland Tarahumara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tad
+Description: Tause
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tae
+Description: Tariana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: taf
+Description: Tapirapé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tag
+Description: Tagoi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tai
+Description: Tai languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: taj
+Description: Eastern Tamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tak
+Description: Tala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tal
+Description: Tal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tan
+Description: Tangale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tao
+Description: Yami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tap
+Description: Taabwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: taq
+Description: Tamasheq
+Added: 2009-07-29
+Macrolanguage: tmh
+%%
+Type: language
+Subtag: tar
+Description: Central Tarahumara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tas
+Description: Tay Boi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tau
+Description: Upper Tanana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tav
+Description: Tatuyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: taw
+Description: Tai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tax
+Description: Tamki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tay
+Description: Atayal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: taz
+Description: Tocho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tba
+Description: Aikanã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbb
+Description: Tapeba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbc
+Description: Takia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbd
+Description: Kaki Ae
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbe
+Description: Tanimbili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbf
+Description: Mandara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbg
+Description: North Tairora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbh
+Description: Thurawal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbi
+Description: Gaam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbj
+Description: Tiang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbk
+Description: Calamian Tagbanwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbl
+Description: Tboli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbm
+Description: Tagbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbn
+Description: Barro Negro Tunebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbo
+Description: Tawala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbp
+Description: Taworta
+Description: Diebroud
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbq
+Description: Tibeto-Burman languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: tbr
+Description: Tumtum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbs
+Description: Tanguat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbt
+Description: Tembo (Kitembo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbu
+Description: Tubar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbv
+Description: Tobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbw
+Description: Tagbanwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbx
+Description: Kapin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tby
+Description: Tabaru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tbz
+Description: Ditammari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tca
+Description: Ticuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcb
+Description: Tanacross
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcc
+Description: Datooga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcd
+Description: Tafi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tce
+Description: Southern Tutchone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcf
+Description: Malinaltepec Me'phaa
+Description: Malinaltepec Tlapanec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcg
+Description: Tamagario
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tch
+Description: Turks And Caicos Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tci
+Description: Wára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tck
+Description: Tchitchege
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcl
+Description: Taman (Myanmar)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcm
+Description: Tanahmerah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcn
+Description: Tichurong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tco
+Description: Taungyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcp
+Description: Tawr Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcq
+Description: Kaiy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcs
+Description: Torres Strait Creole
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tct
+Description: T'en
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcu
+Description: Southeastern Tarahumara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcw
+Description: Tecpatlán Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcx
+Description: Toda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcy
+Description: Tulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tcz
+Description: Thado Chin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tda
+Description: Tagdal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdb
+Description: Panchpargania
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdc
+Description: Emberá-Tadó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdd
+Description: Tai Nüa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tde
+Description: Tiranige Diga Dogon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: tdf
+Description: Talieng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdg
+Description: Western Tamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdh
+Description: Thulung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdi
+Description: Tomadino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdj
+Description: Tajio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdk
+Description: Tambas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdl
+Description: Sur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdn
+Description: Tondano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdo
+Description: Teme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdq
+Description: Tita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdr
+Description: Todrah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tds
+Description: Doutai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdt
+Description: Tetun Dili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdu
+Description: Tempasuk Dusun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdv
+Description: Toro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tdx
+Description: Tandroy-Mahafaly Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: tdy
+Description: Tadyawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tea
+Description: Temiar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: teb
+Description: Tetete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tec
+Description: Terik
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: ted
+Description: Tepo Krumen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tee
+Description: Huehuetla Tepehua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tef
+Description: Teressa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: teg
+Description: Teke-Tege
+Added: 2009-07-29
+%%
+Type: language
+Subtag: teh
+Description: Tehuelche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tei
+Description: Torricelli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tek
+Description: Ibali Teke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tem
+Description: Timne
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: ten
+Description: Tama (Colombia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: teo
+Description: Teso
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tep
+Description: Tepecano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: teq
+Description: Temein
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ter
+Description: Tereno
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tes
+Description: Tengger
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tet
+Description: Tetum
+Added: 2005-10-16
+%%
+Type: language
+Subtag: teu
+Description: Soo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tev
+Description: Teor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tew
+Description: Tewa (USA)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tex
+Description: Tennet
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tey
+Description: Tulishi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tfi
+Description: Tofin Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tfn
+Description: Tanaina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tfo
+Description: Tefaro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tfr
+Description: Teribe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tft
+Description: Ternate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tga
+Description: Sagalla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgb
+Description: Tobilung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgc
+Description: Tigak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgd
+Description: Ciwogai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tge
+Description: Eastern Gorkha Tamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgf
+Description: Chalikha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgg
+Description: Tangga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgh
+Description: Tobagonian Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgi
+Description: Lawunuia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgn
+Description: Tandaganon
+Added: 2010-03-11
+%%
+Type: language
+Subtag: tgo
+Description: Sudest
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgp
+Description: Tangoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgq
+Description: Tring
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgr
+Description: Tareng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgs
+Description: Nume
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgt
+Description: Central Tagbanwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgu
+Description: Tanggu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgv
+Description: Tingui-Boto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgw
+Description: Tagwana Senoufo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgx
+Description: Tagish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tgy
+Description: Togoyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thc
+Description: Tai Hang Tong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thd
+Description: Thayore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: the
+Description: Chitwania Tharu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thf
+Description: Thangmi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thh
+Description: Northern Tarahumara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thi
+Description: Tai Long
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thk
+Description: Tharaka
+Description: Kitharaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thl
+Description: Dangaura Tharu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thm
+Description: Aheu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thn
+Description: Thachanadan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thp
+Description: Thompson
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thq
+Description: Kochila Tharu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thr
+Description: Rana Tharu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ths
+Description: Thakali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tht
+Description: Tahltan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thu
+Description: Thuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thv
+Description: Tahaggart Tamahaq
+Added: 2009-07-29
+Macrolanguage: tmh
+%%
+Type: language
+Subtag: thw
+Description: Thudam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thx
+Description: The
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thy
+Description: Tha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: thz
+Description: Tayart Tamajeq
+Added: 2009-07-29
+Macrolanguage: tmh
+%%
+Type: language
+Subtag: tia
+Description: Tidikelt Tamazight
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tic
+Description: Tira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tid
+Description: Tidong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tie
+Description: Tingal
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Preferred-Value: ras
+%%
+Type: language
+Subtag: tif
+Description: Tifal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tig
+Description: Tigre
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tih
+Description: Timugon Murut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tii
+Description: Tiene
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tij
+Description: Tilung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tik
+Description: Tikar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: til
+Description: Tillamook
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tim
+Description: Timbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tin
+Description: Tindi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tio
+Description: Teop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tip
+Description: Trimuris
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tiq
+Description: Tiéfo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tis
+Description: Masadiit Itneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tit
+Description: Tinigua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tiu
+Description: Adasen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tiv
+Description: Tiv
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tiw
+Description: Tiwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tix
+Description: Southern Tiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tiy
+Description: Tiruray
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tiz
+Description: Tai Hongjin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tja
+Description: Tajuasohn
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tjg
+Description: Tunjung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tji
+Description: Northern Tujia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tjm
+Description: Timucua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tjn
+Description: Tonjon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tjo
+Description: Temacine Tamazight
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tjs
+Description: Southern Tujia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tju
+Description: Tjurruru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tka
+Description: Truká
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkb
+Description: Buksa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkd
+Description: Tukudede
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tke
+Description: Takwane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkf
+Description: Tukumanféd
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkg
+Description: Tesaka Malagasy
+Added: 2011-08-16
+%%
+Type: language
+Subtag: tkk
+Description: Takpa
+Added: 2009-07-29
+Deprecated: 2011-08-16
+Preferred-Value: twm
+%%
+Type: language
+Subtag: tkl
+Description: Tokelau
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tkm
+Description: Takelma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkn
+Description: Toku-No-Shima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkp
+Description: Tikopia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkq
+Description: Tee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkr
+Description: Tsakhur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tks
+Description: Takestani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkt
+Description: Kathoriya Tharu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tku
+Description: Upper Necaxa Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkw
+Description: Teanu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkx
+Description: Tangko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tkz
+Description: Takua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tla
+Description: Southwestern Tepehuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlb
+Description: Tobelo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlc
+Description: Yecuatla Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tld
+Description: Talaud
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlf
+Description: Telefol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlg
+Description: Tofanma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlh
+Description: Klingon
+Description: tlhIngan-Hol
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tli
+Description: Tlingit
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tlj
+Description: Talinga-Bwisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlk
+Description: Taloki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tll
+Description: Tetela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlm
+Description: Tolomako
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tln
+Description: Talondo'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlo
+Description: Talodi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlp
+Description: Filomena Mata-Coahuitlán Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlq
+Description: Tai Loi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlr
+Description: Talise
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tls
+Description: Tambotalo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlt
+Description: Teluti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlu
+Description: Tulehu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlv
+Description: Taliabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlw
+Description: South Wemale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tlx
+Description: Khehek
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tly
+Description: Talysh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tma
+Description: Tama (Chad)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmb
+Description: Katbol
+Description: Avava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmc
+Description: Tumak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmd
+Description: Haruai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tme
+Description: Tremembé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmf
+Description: Toba-Maskoy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmg
+Description: Ternateño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmh
+Description: Tamashek
+Added: 2005-10-16
+Suppress-Script: Latn
+Scope: macrolanguage
+%%
+Type: language
+Subtag: tmi
+Description: Tutuba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmj
+Description: Samarokena
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmk
+Description: Northwestern Tamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tml
+Description: Tamnim Citak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmm
+Description: Tai Thanh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmn
+Description: Taman (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmo
+Description: Temoq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmp
+Description: Tai Mène
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmq
+Description: Tumleo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmr
+Description: Jewish Babylonian Aramaic (ca. 200-1200 CE)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tms
+Description: Tima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmt
+Description: Tasmate
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmu
+Description: Iau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmv
+Description: Tembo (Motembo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmw
+Description: Temuan
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: tmy
+Description: Tami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tmz
+Description: Tamanaku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tna
+Description: Tacana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnb
+Description: Western Tunebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnc
+Description: Tanimuca-Retuarã
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnd
+Description: Angosturas Tunebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tne
+Description: Tinoc Kallahan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnf
+Description: Tangshewi
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Preferred-Value: prs
+%%
+Type: language
+Subtag: tng
+Description: Tobanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnh
+Description: Maiani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tni
+Description: Tandia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnk
+Description: Kwamera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnl
+Description: Lenakel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnm
+Description: Tabla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnn
+Description: North Tanna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tno
+Description: Toromono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnp
+Description: Whitesands
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnq
+Description: Taino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnr
+Description: Bedik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tns
+Description: Tenis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnt
+Description: Tontemboan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnu
+Description: Tay Khang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnv
+Description: Tangchangya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnw
+Description: Tonsawang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnx
+Description: Tanema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tny
+Description: Tongwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tnz
+Description: Tonga (Thailand)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tob
+Description: Toba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toc
+Description: Coyutla Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tod
+Description: Toma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toe
+Description: Tomedes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tof
+Description: Gizrra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tog
+Description: Tonga (Nyasa)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: toh
+Description: Gitonga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toi
+Description: Tonga (Zambia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toj
+Description: Tojolabal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tol
+Description: Tolowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tom
+Description: Tombulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: too
+Description: Xicotepec De Juárez Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: top
+Description: Papantla Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toq
+Description: Toposa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tor
+Description: Togbo-Vara Banda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tos
+Description: Highland Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tou
+Description: Tho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tov
+Description: Upper Taromi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tow
+Description: Jemez
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tox
+Description: Tobian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toy
+Description: Topoiyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: toz
+Description: To
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpa
+Description: Taupota
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpc
+Description: Azoyú Me'phaa
+Description: Azoyú Tlapanec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpe
+Description: Tippera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpf
+Description: Tarpia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpg
+Description: Kula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpi
+Description: Tok Pisin
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tpj
+Description: Tapieté
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpk
+Description: Tupinikin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpl
+Description: Tlacoapa Me'phaa
+Description: Tlacoapa Tlapanec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpm
+Description: Tampulma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpn
+Description: Tupinambá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpo
+Description: Tai Pao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpp
+Description: Pisaflores Tepehua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpq
+Description: Tukpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpr
+Description: Tuparí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpt
+Description: Tlachichilco Tepehua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpu
+Description: Tampuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpv
+Description: Tanapag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpw
+Description: Tupí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpx
+Description: Acatepec Me'phaa
+Description: Acatepec Tlapanec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpy
+Description: Trumai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tpz
+Description: Tinputz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqb
+Description: Tembé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tql
+Description: Lehali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqm
+Description: Turumsa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqn
+Description: Tenino
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqo
+Description: Toaripi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqp
+Description: Tomoip
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqq
+Description: Tunni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqr
+Description: Torona
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqt
+Description: Western Totonac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqu
+Description: Touo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tqw
+Description: Tonkawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tra
+Description: Tirahi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trb
+Description: Terebu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trc
+Description: Copala Triqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trd
+Description: Turi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tre
+Description: East Tarangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trf
+Description: Trinidadian Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trg
+Description: Lishán Didán
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trh
+Description: Turaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tri
+Description: Trió
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trj
+Description: Toram
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trk
+Description: Turkic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: trl
+Description: Traveller Scottish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trm
+Description: Tregami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trn
+Description: Trinitario
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tro
+Description: Tarao Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trp
+Description: Kok Borok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trq
+Description: San Martín Itunyoso Triqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trr
+Description: Taushiro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trs
+Description: Chicahuaxtla Triqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trt
+Description: Tunggare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tru
+Description: Turoyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trv
+Description: Taroko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trw
+Description: Torwali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trx
+Description: Tringgus-Sembaan Bidayuh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: try
+Description: Turung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: trz
+Description: Torá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsa
+Description: Tsaangi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsb
+Description: Tsamai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsc
+Description: Tswa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsd
+Description: Tsakonian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tse
+Description: Tunisian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsf
+Description: Southwestern Tamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsg
+Description: Tausug
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsh
+Description: Tsuvan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsi
+Description: Tsimshian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tsj
+Description: Tshangla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsk
+Description: Tseku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsl
+Description: Ts'ün-Lao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsm
+Description: Turkish Sign Language
+Description: Türk İşaret Dili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsp
+Description: Northern Toussian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsq
+Description: Thai Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsr
+Description: Akei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tss
+Description: Taiwan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tst
+Description: Tondi Songway Kiini
+Added: 2011-08-16
+%%
+Type: language
+Subtag: tsu
+Description: Tsou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsv
+Description: Tsogo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsw
+Description: Tsishingini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsx
+Description: Mubami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsy
+Description: Tebul Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tsz
+Description: Purepecha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tta
+Description: Tutelo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttb
+Description: Gaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttc
+Description: Tektiteko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttd
+Description: Tauade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tte
+Description: Bwanabwana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttf
+Description: Tuotomb
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttg
+Description: Tutong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tth
+Description: Upper Ta'oih
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tti
+Description: Tobati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttj
+Description: Tooro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttk
+Description: Totoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttl
+Description: Totela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttm
+Description: Northern Tutchone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttn
+Description: Towei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tto
+Description: Lower Ta'oih
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttp
+Description: Tombelala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttq
+Description: Tawallammat Tamajaq
+Added: 2009-07-29
+Macrolanguage: tmh
+%%
+Type: language
+Subtag: ttr
+Description: Tera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tts
+Description: Northeastern Thai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttt
+Description: Muslim Tat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttu
+Description: Torau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttv
+Description: Titan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttw
+Description: Long Wat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tty
+Description: Sikaritai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ttz
+Description: Tsum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tua
+Description: Wiarumus
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tub
+Description: Tübatulabal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuc
+Description: Mutu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tud
+Description: Tuxá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tue
+Description: Tuyuca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuf
+Description: Central Tunebo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tug
+Description: Tunia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuh
+Description: Taulil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tui
+Description: Tupuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuj
+Description: Tugutil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tul
+Description: Tula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tum
+Description: Tumbuka
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tun
+Description: Tunica
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuo
+Description: Tucano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tup
+Description: Tupi languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: tuq
+Description: Tedaga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tus
+Description: Tuscarora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tut
+Description: Altaic languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: tuu
+Description: Tututni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuv
+Description: Turkana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuw
+Description: Tungus languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: tux
+Description: Tuxináwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tuy
+Description: Tugen
+Added: 2009-07-29
+Macrolanguage: kln
+%%
+Type: language
+Subtag: tuz
+Description: Turka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tva
+Description: Vaghua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvd
+Description: Tsuvadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tve
+Description: Te'un
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvk
+Description: Southeast Ambrym
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvl
+Description: Tuvalu
+Added: 2005-10-16
+Suppress-Script: Latn
+%%
+Type: language
+Subtag: tvm
+Description: Tela-Masbuar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvn
+Description: Tavoyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvo
+Description: Tidore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvs
+Description: Taveta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvt
+Description: Tutsa Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvw
+Description: Sedoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tvy
+Description: Timor Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twa
+Description: Twana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twb
+Description: Western Tawbuid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twc
+Description: Teshenawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twd
+Description: Twents
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twe
+Description: Tewa (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twf
+Description: Northern Tiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twg
+Description: Tereweng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twh
+Description: Tai Dón
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twl
+Description: Tawara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twm
+Description: Tawang Monpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twn
+Description: Twendi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: two
+Description: Tswapong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twp
+Description: Ere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twq
+Description: Tasawaq
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twr
+Description: Southwestern Tarahumara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twt
+Description: Turiwára
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twu
+Description: Termanu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tww
+Description: Tuwari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twx
+Description: Tewe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: twy
+Description: Tawoyan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txa
+Description: Tombonuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txb
+Description: Tokharian B
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txc
+Description: Tsetsaut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txe
+Description: Totoli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txg
+Description: Tangut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txh
+Description: Thracian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txi
+Description: Ikpeng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txm
+Description: Tomini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txn
+Description: West Tarangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txo
+Description: Toto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txq
+Description: Tii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txr
+Description: Tartessian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txs
+Description: Tonsea
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txt
+Description: Citak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txu
+Description: Kayapó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txx
+Description: Tatana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: txy
+Description: Tanosy Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: tya
+Description: Tauya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tye
+Description: Kyenga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyh
+Description: O'du
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyi
+Description: Teke-Tsaayi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyj
+Description: Tai Do
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyl
+Description: Thu Lao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyn
+Description: Kombai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: typ
+Description: Thaypan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyr
+Description: Tai Daeng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tys
+Description: Tày Sa Pa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyt
+Description: Tày Tac
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyu
+Description: Kua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyv
+Description: Tuvinian
+Added: 2005-10-16
+%%
+Type: language
+Subtag: tyx
+Description: Teke-Tyee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tyz
+Description: Tày
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tza
+Description: Tanzanian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzh
+Description: Tzeltal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzj
+Description: Tz'utujil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzm
+Description: Central Atlas Tamazight
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzn
+Description: Tugun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzo
+Description: Tzotzil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: tzx
+Description: Tabriak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uam
+Description: Uamué
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uan
+Description: Kuan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uar
+Description: Tairuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uba
+Description: Ubang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ubi
+Description: Ubi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ubl
+Description: Buhi'non Bikol
+Added: 2010-03-11
+Macrolanguage: bik
+%%
+Type: language
+Subtag: ubr
+Description: Ubir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ubu
+Description: Umbu-Ungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uby
+Description: Ubykh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uda
+Description: Uda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ude
+Description: Udihe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: udg
+Description: Muduga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: udi
+Description: Udi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: udj
+Description: Ujir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: udl
+Description: Wuzlam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: udm
+Description: Udmurt
+Added: 2005-10-16
+%%
+Type: language
+Subtag: udu
+Description: Uduk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ues
+Description: Kioko
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ufi
+Description: Ufim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uga
+Description: Ugaritic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: ugb
+Description: Kuku-Ugbanh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uge
+Description: Ughele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ugn
+Description: Ugandan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ugo
+Description: Ugong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ugy
+Description: Uruguayan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uha
+Description: Uhami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uhn
+Description: Damal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uis
+Description: Uisai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uiv
+Description: Iyive
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uji
+Description: Tanjijili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uka
+Description: Kaburi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukg
+Description: Ukuriguma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukh
+Description: Ukhwejo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukl
+Description: Ukrainian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukp
+Description: Ukpe-Bayobiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukq
+Description: Ukwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uks
+Description: Urubú-Kaapor Sign Language
+Description: Kaapor Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uku
+Description: Ukue
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ukw
+Description: Ukwuani-Aboh-Ndoni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ula
+Description: Fungwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulb
+Description: Ulukwumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulc
+Description: Ulch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulf
+Description: Usku
+Description: Afra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uli
+Description: Ulithian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulk
+Description: Meriam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ull
+Description: Ullatan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulm
+Description: Ulumanda'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uln
+Description: Unserdeutsch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulu
+Description: Uma' Lung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ulw
+Description: Ulwa
+Added: 2010-03-11
+%%
+Type: language
+Subtag: uma
+Description: Umatilla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umb
+Description: Umbundu
+Added: 2005-10-16
+%%
+Type: language
+Subtag: umc
+Description: Marrucinian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umd
+Description: Umbindhamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umg
+Description: Umbuygamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umi
+Description: Ukit
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umm
+Description: Umon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umn
+Description: Makyan Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umo
+Description: Umotína
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ump
+Description: Umpila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umr
+Description: Umbugarla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ums
+Description: Pendau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: umu
+Description: Munsee
+Added: 2009-07-29
+Macrolanguage: del
+%%
+Type: language
+Subtag: una
+Description: North Watut
+Added: 2009-07-29
+%%
+Type: language
+Subtag: und
+Description: Undetermined
+Added: 2005-10-16
+Scope: special
+%%
+Type: language
+Subtag: une
+Description: Uneme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ung
+Description: Ngarinyin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: unk
+Description: Enawené-Nawé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: unm
+Description: Unami
+Added: 2009-07-29
+Macrolanguage: del
+%%
+Type: language
+Subtag: unp
+Description: Worora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: unr
+Description: Mundari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: unx
+Description: Munda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: unz
+Description: Unde Kaili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uok
+Description: Uokha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: upi
+Description: Umeda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: upv
+Description: Uripiv-Wala-Rano-Atchin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ura
+Description: Urarina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urb
+Description: Urubú-Kaapor
+Description: Kaapor
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urc
+Description: Urningangg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ure
+Description: Uru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urf
+Description: Uradhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urg
+Description: Urigina
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urh
+Description: Urhobo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uri
+Description: Urim
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urj
+Description: Uralic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: urk
+Description: Urak Lawoi'
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: url
+Description: Urali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urm
+Description: Urapmin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urn
+Description: Uruangnirin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uro
+Description: Ura (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urp
+Description: Uru-Pa-In
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urr
+Description: Lehalurup
+Description: Löyöp
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urt
+Description: Urat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uru
+Description: Urumi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urv
+Description: Uruava
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urw
+Description: Sop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urx
+Description: Urimo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ury
+Description: Orya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: urz
+Description: Uru-Eu-Wau-Wau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: usa
+Description: Usarufa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ush
+Description: Ushojo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: usi
+Description: Usui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: usk
+Description: Usaghade
+Added: 2009-07-29
+%%
+Type: language
+Subtag: usp
+Description: Uspanteco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: usu
+Description: Uya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uta
+Description: Otank
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ute
+Description: Ute-Southern Paiute
+Added: 2009-07-29
+%%
+Type: language
+Subtag: utp
+Description: Amba (Solomon Islands)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: utr
+Description: Etulo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: utu
+Description: Utu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uum
+Description: Urum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uun
+Description: Kulon-Pazeh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uur
+Description: Ura (Vanuatu)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uuu
+Description: U
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uve
+Description: West Uvean
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uvh
+Description: Uri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uvl
+Description: Lote
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uwa
+Description: Kuku-Uwanh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uya
+Description: Doko-Uyanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: uzn
+Description: Northern Uzbek
+Added: 2009-07-29
+Macrolanguage: uz
+%%
+Type: language
+Subtag: uzs
+Description: Southern Uzbek
+Added: 2009-07-29
+Macrolanguage: uz
+%%
+Type: language
+Subtag: vaa
+Description: Vaagri Booli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vae
+Description: Vale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vaf
+Description: Vafsi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vag
+Description: Vagla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vah
+Description: Varhadi-Nagpuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vai
+Description: Vai
+Added: 2005-10-16
+%%
+Type: language
+Subtag: vaj
+Description: Vasekela Bushman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: val
+Description: Vehes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vam
+Description: Vanimo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: van
+Description: Valman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vao
+Description: Vao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vap
+Description: Vaiphei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: var
+Description: Huarijio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vas
+Description: Vasavi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vau
+Description: Vanuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vav
+Description: Varli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vay
+Description: Wayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vbb
+Description: Southeast Babar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vbk
+Description: Southwestern Bontok
+Added: 2010-03-11
+Macrolanguage: bnc
+%%
+Type: language
+Subtag: vec
+Description: Venetian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ved
+Description: Veddah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vel
+Description: Veluws
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vem
+Description: Vemgo-Mabas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: veo
+Description: Ventureño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vep
+Description: Veps
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ver
+Description: Mom Jango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vgr
+Description: Vaghri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vgt
+Description: Vlaamse Gebarentaal
+Description: Flemish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vic
+Description: Virgin Islands Creole English
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vid
+Description: Vidunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vif
+Description: Vili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vig
+Description: Viemo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vil
+Description: Vilela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vin
+Description: Vinza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vis
+Description: Vishavan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vit
+Description: Viti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: viv
+Description: Iduna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vka
+Description: Kariyarra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vki
+Description: Ija-Zuba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vkj
+Description: Kujarge
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vkk
+Description: Kaur
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: vkl
+Description: Kulisusu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vkm
+Description: Kamakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vko
+Description: Kodeoha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vkp
+Description: Korlai Creole Portuguese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vkt
+Description: Tenggarong Kutai Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: vku
+Description: Kurrama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vlp
+Description: Valpei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vls
+Description: Vlaams
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vma
+Description: Martuyhunira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmb
+Description: Mbabaram
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmc
+Description: Juxtlahuaca Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmd
+Description: Mudu Koraga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vme
+Description: East Masela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmf
+Description: Mainfränkisch
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmg
+Description: Minigir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmh
+Description: Maraghei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmi
+Description: Miwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmj
+Description: Ixtayutla Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmk
+Description: Makhuwa-Shirima
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vml
+Description: Malgana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmm
+Description: Mitlatongo Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmp
+Description: Soyaltepec Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmq
+Description: Soyaltepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmr
+Description: Marenje
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vms
+Description: Moksela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmu
+Description: Muluridyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmv
+Description: Valley Maidu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmw
+Description: Makhuwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmx
+Description: Tamazola Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmy
+Description: Ayautla Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vmz
+Description: Mazatlán Mazatec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vnk
+Description: Vano
+Description: Lovono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vnm
+Description: Vinmavis
+Description: Neve'ei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vnp
+Description: Vunapu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vor
+Description: Voro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vot
+Description: Votic
+Added: 2005-10-16
+%%
+Type: language
+Subtag: vra
+Description: Vera'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vro
+Description: Võro
+Added: 2009-07-29
+Macrolanguage: et
+%%
+Type: language
+Subtag: vrs
+Description: Varisi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vrt
+Description: Burmbar
+Description: Banam Bay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vsi
+Description: Moldova Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vsl
+Description: Venezuelan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vsv
+Description: Valencian Sign Language
+Description: Llengua de signes valenciana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vto
+Description: Vitou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vum
+Description: Vumbu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vun
+Description: Vunjo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vut
+Description: Vute
+Added: 2009-07-29
+%%
+Type: language
+Subtag: vwa
+Description: Awa (China)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waa
+Description: Walla Walla
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wab
+Description: Wab
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wac
+Description: Wasco-Wishram
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wad
+Description: Wandamen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wae
+Description: Walser
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waf
+Description: Wakoná
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wag
+Description: Wa'ema
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wah
+Description: Watubela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wai
+Description: Wares
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waj
+Description: Waffa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wak
+Description: Wakashan languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: wal
+Description: Wolaytta
+Description: Wolaitta
+Added: 2005-10-16
+%%
+Type: language
+Subtag: wam
+Description: Wampanoag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wan
+Description: Wan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wao
+Description: Wappo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wap
+Description: Wapishana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waq
+Description: Wageman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: war
+Description: Waray (Philippines)
+Added: 2005-10-16
+%%
+Type: language
+Subtag: was
+Description: Washo
+Added: 2005-10-16
+%%
+Type: language
+Subtag: wat
+Description: Kaninuwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wau
+Description: Waurá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wav
+Description: Waka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waw
+Description: Waiwai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wax
+Description: Watam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: way
+Description: Wayana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: waz
+Description: Wampur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wba
+Description: Warao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbb
+Description: Wabo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbe
+Description: Waritai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbf
+Description: Wara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbh
+Description: Wanda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbi
+Description: Vwanji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbj
+Description: Alagwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbk
+Description: Waigali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbl
+Description: Wakhi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbm
+Description: Wa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbp
+Description: Warlpiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbq
+Description: Waddar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbr
+Description: Wagdi
+Added: 2009-07-29
+Macrolanguage: raj
+%%
+Type: language
+Subtag: wbt
+Description: Wanman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbv
+Description: Wajarri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wbw
+Description: Woi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wca
+Description: Yanomámi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wci
+Description: Waci Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wdd
+Description: Wandji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wdg
+Description: Wadaginam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wdj
+Description: Wadjiginy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wdu
+Description: Wadjigu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wea
+Description: Wewaw
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wec
+Description: Wè Western
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wed
+Description: Wedau
+Added: 2009-07-29
+%%
+Type: language
+Subtag: weh
+Description: Weh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wei
+Description: Kiunum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wem
+Description: Weme Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wen
+Description: Sorbian languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: weo
+Description: North Wemale
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wep
+Description: Westphalien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wer
+Description: Weri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wes
+Description: Cameroon Pidgin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wet
+Description: Perai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: weu
+Description: Welaung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wew
+Description: Wejewa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wfg
+Description: Yafi
+Description: Zorop
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wga
+Description: Wagaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wgb
+Description: Wagawaga
+Added: 2010-03-11
+%%
+Type: language
+Subtag: wgg
+Description: Wangganguru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wgi
+Description: Wahgi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wgo
+Description: Waigeo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wgw
+Description: Wagawaga
+Added: 2009-07-29
+Deprecated: 2010-03-11
+Comments: see wgb, ylb
+%%
+Type: language
+Subtag: wgy
+Description: Warrgamay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wha
+Description: Manusela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: whg
+Description: North Wahgi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: whk
+Description: Wahau Kenyah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: whu
+Description: Wahau Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wib
+Description: Southern Toussian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wic
+Description: Wichita
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wie
+Description: Wik-Epa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wif
+Description: Wik-Keyangan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wig
+Description: Wik-Ngathana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wih
+Description: Wik-Me'anha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wii
+Description: Minidien
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wij
+Description: Wik-Iiyanh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wik
+Description: Wikalkan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wil
+Description: Wilawila
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wim
+Description: Wik-Mungkan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: win
+Description: Ho-Chunk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wir
+Description: Wiraféd
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wit
+Description: Wintu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wiu
+Description: Wiru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wiv
+Description: Muduapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wiw
+Description: Wirangu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wiy
+Description: Wiyot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wja
+Description: Waja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wji
+Description: Warji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wka
+Description: Kw'adza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wkb
+Description: Kumbaran
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wkd
+Description: Wakde
+Description: Mo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wkl
+Description: Kalanadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wku
+Description: Kunduvadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wkw
+Description: Wakawaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wla
+Description: Walio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlc
+Description: Mwali Comorian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wle
+Description: Wolane
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlg
+Description: Kunbarlang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wli
+Description: Waioli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlk
+Description: Wailaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wll
+Description: Wali (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlm
+Description: Middle Welsh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlo
+Description: Wolio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlr
+Description: Wailapa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wls
+Description: Wallisian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlu
+Description: Wuliwuli
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlv
+Description: Wichí Lhamtés Vejoz
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlw
+Description: Walak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wlx
+Description: Wali (Ghana)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wly
+Description: Waling
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wma
+Description: Mawa (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmb
+Description: Wambaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmc
+Description: Wamas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmd
+Description: Mamaindé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wme
+Description: Wambule
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmh
+Description: Waima'a
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmi
+Description: Wamin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmm
+Description: Maiwa (Indonesia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmn
+Description: Waamwang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmo
+Description: Wom (Papua New Guinea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wms
+Description: Wambon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmt
+Description: Walmajarri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmw
+Description: Mwani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wmx
+Description: Womo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnb
+Description: Wanambre
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnc
+Description: Wantoat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnd
+Description: Wandarang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wne
+Description: Waneci
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wng
+Description: Wanggom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wni
+Description: Ndzwani Comorian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnk
+Description: Wanukaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnm
+Description: Wanggamala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wno
+Description: Wano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnp
+Description: Wanap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wnu
+Description: Usan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woa
+Description: Tyaraity
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wob
+Description: Wè Northern
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woc
+Description: Wogeo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wod
+Description: Wolani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woe
+Description: Woleaian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wof
+Description: Gambian Wolof
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wog
+Description: Wogamusin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woi
+Description: Kamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wok
+Description: Longto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wom
+Description: Wom (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: won
+Description: Wongo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woo
+Description: Manombai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wor
+Description: Woria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wos
+Description: Hanga Hundi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wow
+Description: Wawonii
+Added: 2009-07-29
+%%
+Type: language
+Subtag: woy
+Description: Weyto
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wpc
+Description: Maco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wra
+Description: Warapu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrb
+Description: Warluwara
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrd
+Description: Warduji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrg
+Description: Warungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrh
+Description: Wiradhuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wri
+Description: Wariyangga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrl
+Description: Warlmanpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrm
+Description: Warumungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrn
+Description: Warnang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrp
+Description: Waropen
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrr
+Description: Wardaman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrs
+Description: Waris
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wru
+Description: Waru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrv
+Description: Waruna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrw
+Description: Gugu Warra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wrx
+Description: Wae Rana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wry
+Description: Merwari
+Added: 2009-07-29
+Macrolanguage: mwr
+%%
+Type: language
+Subtag: wrz
+Description: Waray (Australia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsa
+Description: Warembori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsi
+Description: Wusi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsk
+Description: Waskia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsr
+Description: Owenia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wss
+Description: Wasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsu
+Description: Wasu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wsv
+Description: Wotapuri-Katarqalai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wtf
+Description: Watiwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wti
+Description: Berta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wtk
+Description: Watakataui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wtm
+Description: Mewati
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wtw
+Description: Wotu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wua
+Description: Wikngenchera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wub
+Description: Wunambal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wud
+Description: Wudu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wuh
+Description: Wutunhua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wul
+Description: Silimo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wum
+Description: Wumbvu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wun
+Description: Bungu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wur
+Description: Wurrugu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wut
+Description: Wutung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wuu
+Description: Wu Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: wuv
+Description: Wuvulu-Aua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wux
+Description: Wulna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wuy
+Description: Wauyai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wwa
+Description: Waama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wwo
+Description: Wetamut
+Description: Dorig
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wwr
+Description: Warrwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: www
+Description: Wawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wxa
+Description: Waxianghua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wya
+Description: Wyandot
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wyb
+Description: Wangaaybuwan-Ngiyambaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wym
+Description: Wymysorys
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wyr
+Description: Wayoró
+Added: 2009-07-29
+%%
+Type: language
+Subtag: wyy
+Description: Western Fijian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xaa
+Description: Andalusian Arabic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xab
+Description: Sambe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xac
+Description: Kachari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xad
+Description: Adai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xae
+Description: Aequian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xag
+Description: Aghwan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xai
+Description: Kaimbé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xal
+Description: Kalmyk
+Description: Oirat
+Added: 2005-10-16
+%%
+Type: language
+Subtag: xam
+Description: /Xam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xan
+Description: Xamtanga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xao
+Description: Khao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xap
+Description: Apalachee
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xaq
+Description: Aquitanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xar
+Description: Karami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xas
+Description: Kamas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xat
+Description: Katawixi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xau
+Description: Kauwera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xav
+Description: Xavánte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xaw
+Description: Kawaiisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xay
+Description: Kayan Mahakam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xba
+Description: Kamba (Brazil)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbb
+Description: Lower Burdekin
+Added: 2010-03-11
+%%
+Type: language
+Subtag: xbc
+Description: Bactrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbi
+Description: Kombio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbm
+Description: Middle Breton
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbn
+Description: Kenaboi
+Added: 2010-03-11
+%%
+Type: language
+Subtag: xbo
+Description: Bolgarian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbr
+Description: Kambera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbw
+Description: Kambiwá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xbx
+Description: Kabixí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcb
+Description: Cumbric
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcc
+Description: Camunic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xce
+Description: Celtiberian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcg
+Description: Cisalpine Gaulish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xch
+Description: Chemakum
+Description: Chimakum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcl
+Description: Classical Armenian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcm
+Description: Comecrudo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcn
+Description: Cotoname
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xco
+Description: Chorasmian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcr
+Description: Carian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xct
+Description: Classical Tibetan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcu
+Description: Curonian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcv
+Description: Chuvantsy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcw
+Description: Coahuilteco
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xcy
+Description: Cayuse
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xdc
+Description: Dacian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xdm
+Description: Edomite
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xdy
+Description: Malayic Dayak
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xeb
+Description: Eblan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xed
+Description: Hdi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xeg
+Description: //Xegwi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xel
+Description: Kelo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xem
+Description: Kembayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xep
+Description: Epi-Olmec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xer
+Description: Xerénte
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xes
+Description: Kesawai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xet
+Description: Xetá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xeu
+Description: Keoru-Ahia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xfa
+Description: Faliscan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xga
+Description: Galatian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xgf
+Description: Gabrielino-Fernandeño
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xgl
+Description: Galindan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xgn
+Description: Mongolian languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: xgr
+Description: Garza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xha
+Description: Harami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xhc
+Description: Hunnic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xhd
+Description: Hadrami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xhe
+Description: Khetrani
+Added: 2009-07-29
+Macrolanguage: lah
+%%
+Type: language
+Subtag: xhr
+Description: Hernican
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xht
+Description: Hattic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xhu
+Description: Hurrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xhv
+Description: Khua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xia
+Description: Xiandao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xib
+Description: Iberian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xii
+Description: Xiri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xil
+Description: Illyrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xin
+Description: Xinca
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xip
+Description: Xipináwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xir
+Description: Xiriâna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xiv
+Description: Indus Valley Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xiy
+Description: Xipaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xka
+Description: Kalkoti
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkb
+Description: Northern Nago
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkc
+Description: Kho'ini
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkd
+Description: Mendalam Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xke
+Description: Kereho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkf
+Description: Khengkha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkg
+Description: Kagoro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkh
+Description: Karahawyana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xki
+Description: Kenyan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkj
+Description: Kajali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkk
+Description: Kaco'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkl
+Description: Mainstream Kenyah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkn
+Description: Kayan River Kayan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xko
+Description: Kiorr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkp
+Description: Kabatei
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkq
+Description: Koroni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkr
+Description: Xakriabá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xks
+Description: Kumbewaha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkt
+Description: Kantosi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xku
+Description: Kaamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkv
+Description: Kgalagadi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkw
+Description: Kembra
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkx
+Description: Karore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xky
+Description: Uma' Lasan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xkz
+Description: Kurtokha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xla
+Description: Kamula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlb
+Description: Loup B
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlc
+Description: Lycian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xld
+Description: Lydian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xle
+Description: Lemnian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlg
+Description: Ligurian (Ancient)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xli
+Description: Liburnian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xln
+Description: Alanic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlo
+Description: Loup A
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlp
+Description: Lepontic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xls
+Description: Lusitanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xlu
+Description: Cuneiform Luwian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xly
+Description: Elymian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xma
+Description: Mushungulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmb
+Description: Mbonga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmc
+Description: Makhuwa-Marrevone
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmd
+Description: Mbudum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xme
+Description: Median
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmf
+Description: Mingrelian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmg
+Description: Mengaka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmh
+Description: Kuku-Muminh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmj
+Description: Majera
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmk
+Description: Ancient Macedonian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xml
+Description: Malaysian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmm
+Description: Manado Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: xmn
+Description: Manichaean Middle Persian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmo
+Description: Morerebi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmp
+Description: Kuku-Mu'inh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmq
+Description: Kuku-Mangk
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmr
+Description: Meroitic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xms
+Description: Moroccan Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmt
+Description: Matbat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmu
+Description: Kamu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmv
+Description: Antankarana Malagasy
+Description: Tankarana Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: xmw
+Description: Tsimihety Malagasy
+Added: 2009-07-29
+Macrolanguage: mg
+%%
+Type: language
+Subtag: xmx
+Description: Maden
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmy
+Description: Mayaguduna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xmz
+Description: Mori Bawah
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xna
+Description: Ancient North Arabian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnb
+Description: Kanakanabu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnd
+Description: Na-Dene languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: xng
+Description: Middle Mongolian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnh
+Description: Kuanhua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnn
+Description: Northern Kankanay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xno
+Description: Anglo-Norman
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnr
+Description: Kangri
+Added: 2009-07-29
+Macrolanguage: doi
+%%
+Type: language
+Subtag: xns
+Description: Kanashi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xnt
+Description: Narragansett
+Added: 2010-03-11
+%%
+Type: language
+Subtag: xoc
+Description: O'chi'chi'
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xod
+Description: Kokoda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xog
+Description: Soga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xoi
+Description: Kominimung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xok
+Description: Xokleng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xom
+Description: Komo (Sudan)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xon
+Description: Konkomba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xoo
+Description: Xukurú
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xop
+Description: Kopar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xor
+Description: Korubo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xow
+Description: Kowaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpc
+Description: Pecheneg
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpe
+Description: Liberia Kpelle
+Added: 2009-07-29
+Macrolanguage: kpe
+%%
+Type: language
+Subtag: xpg
+Description: Phrygian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpi
+Description: Pictish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpk
+Description: Kulina Pano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpm
+Description: Pumpokol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpn
+Description: Kapinawá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpo
+Description: Pochutec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpp
+Description: Puyo-Paekche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpq
+Description: Mohegan-Pequot
+Added: 2010-03-11
+%%
+Type: language
+Subtag: xpr
+Description: Parthian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xps
+Description: Pisidian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpu
+Description: Punic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xpy
+Description: Puyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xqa
+Description: Karakhanid
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xqt
+Description: Qatabanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xra
+Description: Krahô
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrb
+Description: Eastern Karaboro
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xre
+Description: Kreye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xri
+Description: Krikati-Timbira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrm
+Description: Armazic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrn
+Description: Arin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrr
+Description: Raetic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrt
+Description: Aranama-Tamique
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xru
+Description: Marriammu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xrw
+Description: Karawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsa
+Description: Sabaean
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsb
+Description: Tinà Sambal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsc
+Description: Scythian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsd
+Description: Sidetic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xse
+Description: Sempan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsh
+Description: Shamang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsi
+Description: Sio
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsj
+Description: Subi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsl
+Description: South Slavey
+Added: 2009-07-29
+Macrolanguage: den
+%%
+Type: language
+Subtag: xsm
+Description: Kasem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsn
+Description: Sanga (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xso
+Description: Solano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsp
+Description: Silopi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsq
+Description: Makhuwa-Saka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsr
+Description: Sherpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xss
+Description: Assan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsu
+Description: Sanumá
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsv
+Description: Sudovian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xsy
+Description: Saisiyat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xta
+Description: Alcozauca Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtb
+Description: Chazumba Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtc
+Description: Katcha-Kadugli-Miri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtd
+Description: Diuxi-Tilantongo Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xte
+Description: Ketengban
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtg
+Description: Transalpine Gaulish
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xti
+Description: Sinicahua Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtj
+Description: San Juan Teita Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtl
+Description: Tijaltepec Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtm
+Description: Magdalena Peñasco Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtn
+Description: Northern Tlaxiaco Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xto
+Description: Tokharian A
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtp
+Description: San Miguel Piedras Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtq
+Description: Tumshuqese
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtr
+Description: Early Tripuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xts
+Description: Sindihui Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtt
+Description: Tacahua Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtu
+Description: Cuyamecalco Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtw
+Description: Tawandê
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xty
+Description: Yoloxochitl Mixtec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xtz
+Description: Tasmanian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xua
+Description: Alu Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xub
+Description: Betta Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xug
+Description: Kunigami
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xuj
+Description: Jennu Kurumba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xum
+Description: Umbrian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xuo
+Description: Kuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xup
+Description: Upper Umpqua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xur
+Description: Urartian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xut
+Description: Kuthant
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xuu
+Description: Kxoe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xve
+Description: Venetic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xvi
+Description: Kamviri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xvn
+Description: Vandalic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xvo
+Description: Volscian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xvs
+Description: Vestinian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwa
+Description: Kwaza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwc
+Description: Woccon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwe
+Description: Xwela Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwg
+Description: Kwegu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwl
+Description: Western Xwla Gbe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwo
+Description: Written Oirat
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xwr
+Description: Kwerba Mamberamo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xxb
+Description: Boro (Ghana)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xxk
+Description: Ke'o
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xxr
+Description: Koropó
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xxt
+Description: Tambora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xyl
+Description: Yalakalore
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xzh
+Description: Zhang-Zhung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xzm
+Description: Zemgalian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: xzp
+Description: Ancient Zapotec
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yaa
+Description: Yaminahua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yab
+Description: Yuhup
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yac
+Description: Pass Valley Yali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yad
+Description: Yagua
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yae
+Description: Pumé
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yaf
+Description: Yaka (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yag
+Description: Yámana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yah
+Description: Yazgulyam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yai
+Description: Yagnobi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yaj
+Description: Banda-Yangere
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yak
+Description: Yakama
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yal
+Description: Yalunka
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yam
+Description: Yamba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yan
+Description: Mayangna
+Added: 2010-03-11
+%%
+Type: language
+Subtag: yao
+Description: Yao
+Added: 2005-10-16
+%%
+Type: language
+Subtag: yap
+Description: Yapese
+Added: 2005-10-16
+%%
+Type: language
+Subtag: yaq
+Description: Yaqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yar
+Description: Yabarana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yas
+Description: Nugunu (Cameroon)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yat
+Description: Yambeta
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yau
+Description: Yuwana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yav
+Description: Yangben
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yaw
+Description: Yawalapití
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yax
+Description: Yauma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yay
+Description: Agwagwune
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yaz
+Description: Lokaa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yba
+Description: Yala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybb
+Description: Yemba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybd
+Description: Yangbye
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybe
+Description: West Yugur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybh
+Description: Yakha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybi
+Description: Yamphu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybj
+Description: Hasha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybk
+Description: Bokha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybl
+Description: Yukuben
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybm
+Description: Yaben
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybn
+Description: Yabaâna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybo
+Description: Yabong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ybx
+Description: Yawiyo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yby
+Description: Yaweyuha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ych
+Description: Chesu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ycl
+Description: Lolopo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ycn
+Description: Yucuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ycp
+Description: Chepya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ydd
+Description: Eastern Yiddish
+Added: 2009-07-29
+Macrolanguage: yi
+%%
+Type: language
+Subtag: yde
+Description: Yangum Dey
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ydg
+Description: Yidgha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ydk
+Description: Yoidik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yds
+Description: Yiddish Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yea
+Description: Ravula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yec
+Description: Yeniche
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yee
+Description: Yimas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yei
+Description: Yeni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yej
+Description: Yevanic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yel
+Description: Yela
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yen
+Description: Yendang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yer
+Description: Tarok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yes
+Description: Yeskwa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yet
+Description: Yetfa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yeu
+Description: Yerukula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yev
+Description: Yapunda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yey
+Description: Yeyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ygl
+Description: Yangum Gel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ygm
+Description: Yagomi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ygp
+Description: Gepo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ygr
+Description: Yagaria
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ygw
+Description: Yagwoia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yha
+Description: Baha Buyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yhd
+Description: Judeo-Iraqi Arabic
+Added: 2009-07-29
+Macrolanguage: jrb
+%%
+Type: language
+Subtag: yhl
+Description: Hlepho Phowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yia
+Description: Yinggarda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yif
+Description: Ache
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yig
+Description: Wusa Nasu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yih
+Description: Western Yiddish
+Added: 2009-07-29
+Macrolanguage: yi
+%%
+Type: language
+Subtag: yii
+Description: Yidiny
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yij
+Description: Yindjibarndi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yik
+Description: Dongshanba Lalo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yil
+Description: Yindjilandji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yim
+Description: Yimchungru Naga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yin
+Description: Yinchia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yip
+Description: Pholo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yiq
+Description: Miqie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yir
+Description: North Awyu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yis
+Description: Yis
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yit
+Description: Eastern Lalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yiu
+Description: Awu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yiv
+Description: Northern Nisu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yix
+Description: Axi Yi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yiy
+Description: Yir Yoront
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yiz
+Description: Azhe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yka
+Description: Yakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykg
+Description: Northern Yukaghir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yki
+Description: Yoke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykk
+Description: Yakaikeke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykl
+Description: Khlula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykm
+Description: Kap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yko
+Description: Yasa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykr
+Description: Yekora
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ykt
+Description: Kathu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yky
+Description: Yakoma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yla
+Description: Yaul
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylb
+Description: Yaleba
+Added: 2010-03-11
+%%
+Type: language
+Subtag: yle
+Description: Yele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylg
+Description: Yelogu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yli
+Description: Angguruk Yali
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yll
+Description: Yil
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylm
+Description: Limi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yln
+Description: Langnian Buyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylo
+Description: Naluo Yi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylr
+Description: Yalarnnga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ylu
+Description: Aribwaung
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yly
+Description: Nyâlayu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yma
+Description: Yamphe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymb
+Description: Yambes
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymc
+Description: Southern Muji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymd
+Description: Muda
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yme
+Description: Yameo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymg
+Description: Yamongeri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymh
+Description: Mili
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymi
+Description: Moji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymk
+Description: Makwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yml
+Description: Iamalele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymm
+Description: Maay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymn
+Description: Yamna
+Description: Sunum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymo
+Description: Yangum Mon
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymp
+Description: Yamap
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymq
+Description: Qila Muji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymr
+Description: Malasar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yms
+Description: Mysian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymt
+Description: Mator-Taygi-Karagas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymx
+Description: Northern Muji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ymz
+Description: Muzi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yna
+Description: Aluo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynd
+Description: Yandruwandha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yne
+Description: Lang'e
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yng
+Description: Yango
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynh
+Description: Yangho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynk
+Description: Naukan Yupik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynl
+Description: Yangulam
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynn
+Description: Yana
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yno
+Description: Yong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yns
+Description: Yansi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ynu
+Description: Yahuna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yob
+Description: Yoba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yog
+Description: Yogad
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yoi
+Description: Yonaguni
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yok
+Description: Yokuts
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yol
+Description: Yola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yom
+Description: Yombe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yon
+Description: Yongkom
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yos
+Description: Yos
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yox
+Description: Yoron
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yoy
+Description: Yoy
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypa
+Description: Phala
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypb
+Description: Labo Phowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypg
+Description: Phola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yph
+Description: Phupha
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypk
+Description: Yupik languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: ypm
+Description: Phuma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypn
+Description: Ani Phowa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypo
+Description: Alo Phola
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypp
+Description: Phupa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ypz
+Description: Phuza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yra
+Description: Yerakai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrb
+Description: Yareba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yre
+Description: Yaouré
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yri
+Description: Yarí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrk
+Description: Nenets
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrl
+Description: Nhengatu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrn
+Description: Yerong
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrs
+Description: Yarsun
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yrw
+Description: Yarawata
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysc
+Description: Yassic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysd
+Description: Samatao
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysl
+Description: Yugoslavian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysn
+Description: Sani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yso
+Description: Nisi (China)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysp
+Description: Southern Lolopo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysr
+Description: Sirenik Yupik
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yss
+Description: Yessan-Mayo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ysy
+Description: Sanie
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yta
+Description: Talu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ytl
+Description: Tanglang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ytp
+Description: Thopho
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ytw
+Description: Yout Wam
+Added: 2010-03-11
+%%
+Type: language
+Subtag: yua
+Description: Yucateco
+Description: Yucatec Maya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yub
+Description: Yugambal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuc
+Description: Yuchi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yud
+Description: Judeo-Tripolitanian Arabic
+Added: 2009-07-29
+Macrolanguage: jrb
+%%
+Type: language
+Subtag: yue
+Description: Yue Chinese
+Added: 2009-07-29
+Macrolanguage: zh
+%%
+Type: language
+Subtag: yuf
+Description: Havasupai-Walapai-Yavapai
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yug
+Description: Yug
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yui
+Description: Yurutí
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuj
+Description: Karkar-Yuri
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuk
+Description: Yuki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yul
+Description: Yulu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yum
+Description: Quechan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yun
+Description: Bena (Nigeria)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yup
+Description: Yukpa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuq
+Description: Yuqui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yur
+Description: Yurok
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yut
+Description: Yopno
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuu
+Description: Yugh
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuw
+Description: Yau (Morobe Province)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yux
+Description: Southern Yukaghir
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuy
+Description: East Yugur
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yuz
+Description: Yuracare
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yva
+Description: Yawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yvt
+Description: Yavitero
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywa
+Description: Kalou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywl
+Description: Western Lalu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywn
+Description: Yawanawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywq
+Description: Wuding-Luquan Yi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywr
+Description: Yawuru
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywt
+Description: Xishanba Lalo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ywu
+Description: Wumeng Nasu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yww
+Description: Yawarawarga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yyu
+Description: Yau (Sandaun Province)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yyz
+Description: Ayizi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yzg
+Description: E'ma Buyang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: yzk
+Description: Zokhuo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zaa
+Description: Sierra de Juárez Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zab
+Description: San Juan Guelavía Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zac
+Description: Ocotlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zad
+Description: Cajonos Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zae
+Description: Yareni Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zaf
+Description: Ayoquesco Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zag
+Description: Zaghawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zah
+Description: Zangwal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zai
+Description: Isthmus Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zaj
+Description: Zaramo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zak
+Description: Zanaki
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zal
+Description: Zauzou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zam
+Description: Miahuatlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zao
+Description: Ozolotepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zap
+Description: Zapotec
+Added: 2005-10-16
+Scope: macrolanguage
+%%
+Type: language
+Subtag: zaq
+Description: Aloápam Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zar
+Description: Rincón Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zas
+Description: Santo Domingo Albarradas Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zat
+Description: Tabaa Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zau
+Description: Zangskari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zav
+Description: Yatzachi Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zaw
+Description: Mitla Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zax
+Description: Xadani Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zay
+Description: Zayse-Zergulla
+Description: Zaysete
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zaz
+Description: Zari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zbc
+Description: Central Berawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zbe
+Description: East Berawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zbl
+Description: Blissymbols
+Description: Bliss
+Description: Blissymbolics
+Added: 2007-08-21
+Suppress-Script: Blis
+%%
+Type: language
+Subtag: zbt
+Description: Batui
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zbw
+Description: West Berawan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zca
+Description: Coatecas Altas Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zch
+Description: Central Hongshuihe Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zdj
+Description: Ngazidja Comorian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zea
+Description: Zeeuws
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zeg
+Description: Zenag
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zeh
+Description: Eastern Hongshuihe Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zen
+Description: Zenaga
+Added: 2005-10-16
+%%
+Type: language
+Subtag: zga
+Description: Kinga
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zgb
+Description: Guibei Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zgm
+Description: Minz Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zgn
+Description: Guibian Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zgr
+Description: Magori
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zhb
+Description: Zhaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zhd
+Description: Dai Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zhi
+Description: Zhire
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zhn
+Description: Nong Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zhw
+Description: Zhoa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zhx
+Description: Chinese (family)
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: zia
+Description: Zia
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zib
+Description: Zimbabwe Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zik
+Description: Zimakani
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zil
+Description: Zialo
+Added: 2011-08-16
+%%
+Type: language
+Subtag: zim
+Description: Mesme
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zin
+Description: Zinza
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zir
+Description: Ziriya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ziw
+Description: Zigula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: ziz
+Description: Zizilivakan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zka
+Description: Kaimbulawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkb
+Description: Koibal
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkg
+Description: Koguryo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkh
+Description: Khorezmian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkk
+Description: Karankawa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zko
+Description: Kott
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkp
+Description: São Paulo Kaingáng
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkr
+Description: Zakhring
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkt
+Description: Kitan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zku
+Description: Kaurna
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkv
+Description: Krevinian
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zkz
+Description: Khazar
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zle
+Description: East Slavic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: zlj
+Description: Liujiang Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zlm
+Description: Malay (individual language)
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: zln
+Description: Lianshan Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zlq
+Description: Liuqian Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zls
+Description: South Slavic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: zlw
+Description: West Slavic languages
+Added: 2009-07-29
+Scope: collection
+%%
+Type: language
+Subtag: zma
+Description: Manda (Australia)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmb
+Description: Zimba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmc
+Description: Margany
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmd
+Description: Maridan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zme
+Description: Mangerr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmf
+Description: Mfinu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmg
+Description: Marti Ke
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmh
+Description: Makolkol
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmi
+Description: Negeri Sembilan Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: zmj
+Description: Maridjabin
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmk
+Description: Mandandanyi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zml
+Description: Madngele
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmm
+Description: Marimanindji
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmn
+Description: Mbangwe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmo
+Description: Molo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmp
+Description: Mpuono
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmq
+Description: Mituku
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmr
+Description: Maranunggu
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zms
+Description: Mbesa
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmt
+Description: Maringarr
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmu
+Description: Muruwari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmv
+Description: Mbariman-Gudhinma
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmw
+Description: Mbo (Democratic Republic of Congo)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmx
+Description: Bomitaba
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmy
+Description: Mariyedi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zmz
+Description: Mbandja
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zna
+Description: Zan Gula
+Added: 2009-07-29
+%%
+Type: language
+Subtag: znd
+Description: Zande languages
+Added: 2005-10-16
+Scope: collection
+%%
+Type: language
+Subtag: zne
+Description: Zande (individual language)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zng
+Description: Mang
+Added: 2009-07-29
+%%
+Type: language
+Subtag: znk
+Description: Manangkari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zns
+Description: Mangas
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zoc
+Description: Copainalá Zoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zoh
+Description: Chimalapa Zoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zom
+Description: Zou
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zoo
+Description: Asunción Mixtepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zoq
+Description: Tabasco Zoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zor
+Description: Rayón Zoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zos
+Description: Francisco León Zoque
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zpa
+Description: Lachiguiri Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpb
+Description: Yautepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpc
+Description: Choapan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpd
+Description: Southeastern Ixtlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpe
+Description: Petapa Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpf
+Description: San Pedro Quiatoni Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpg
+Description: Guevea De Humboldt Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zph
+Description: Totomachapan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpi
+Description: Santa María Quiegolani Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpj
+Description: Quiavicuzas Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpk
+Description: Tlacolulita Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpl
+Description: Lachixío Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpm
+Description: Mixtepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpn
+Description: Santa Inés Yatzechi Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpo
+Description: Amatlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpp
+Description: El Alto Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpq
+Description: Zoogocho Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpr
+Description: Santiago Xanica Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zps
+Description: Coatlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpt
+Description: San Vicente Coatlán Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpu
+Description: Yalálag Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpv
+Description: Chichicapan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpw
+Description: Zaniza Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpx
+Description: San Baltazar Loxicha Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpy
+Description: Mazaltepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zpz
+Description: Texmelucan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zqe
+Description: Qiubei Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zra
+Description: Kara (Korea)
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zrg
+Description: Mirgan
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zrn
+Description: Zerenkel
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zro
+Description: Záparo
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zrp
+Description: Zarphatic
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zrs
+Description: Mairasi
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zsa
+Description: Sarasira
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zsk
+Description: Kaskean
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zsl
+Description: Zambian Sign Language
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zsm
+Description: Standard Malay
+Added: 2009-07-29
+Macrolanguage: ms
+%%
+Type: language
+Subtag: zsr
+Description: Southern Rincon Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zsu
+Description: Sukurum
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zte
+Description: Elotepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztg
+Description: Xanaguía Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztl
+Description: Lapaguía-Guivini Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztm
+Description: San Agustín Mixtepec Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztn
+Description: Santa Catarina Albarradas Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztp
+Description: Loxicha Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztq
+Description: Quioquitani-Quierí Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zts
+Description: Tilquiapan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztt
+Description: Tejalapan Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztu
+Description: Güilá Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: ztx
+Description: Zaachila Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zty
+Description: Yatee Zapotec
+Added: 2009-07-29
+Macrolanguage: zap
+%%
+Type: language
+Subtag: zua
+Description: Zeem
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zuh
+Description: Tokano
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zum
+Description: Kumzari
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zun
+Description: Zuni
+Added: 2005-10-16
+%%
+Type: language
+Subtag: zuy
+Description: Zumaya
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zwa
+Description: Zay
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zxx
+Description: No linguistic content
+Description: Not applicable
+Added: 2006-03-08
+Scope: special
+%%
+Type: language
+Subtag: zyb
+Description: Yongbei Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zyg
+Description: Yang Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zyj
+Description: Youjiang Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zyn
+Description: Yongnan Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: language
+Subtag: zyp
+Description: Zyphe
+Added: 2009-07-29
+%%
+Type: language
+Subtag: zza
+Description: Zaza
+Description: Dimili
+Description: Dimli (macrolanguage)
+Description: Kirdki
+Description: Kirmanjki (macrolanguage)
+Description: Zazaki
+Added: 2006-08-24
+Scope: macrolanguage
+%%
+Type: language
+Subtag: zzj
+Description: Zuojiang Zhuang
+Added: 2009-07-29
+Macrolanguage: za
+%%
+Type: extlang
+Subtag: aao
+Description: Algerian Saharan Arabic
+Added: 2009-07-29
+Preferred-Value: aao
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: abh
+Description: Tajiki Arabic
+Added: 2009-07-29
+Preferred-Value: abh
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: abv
+Description: Baharna Arabic
+Added: 2009-07-29
+Preferred-Value: abv
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: acm
+Description: Mesopotamian Arabic
+Added: 2009-07-29
+Preferred-Value: acm
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: acq
+Description: Ta'izzi-Adeni Arabic
+Added: 2009-07-29
+Preferred-Value: acq
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: acw
+Description: Hijazi Arabic
+Added: 2009-07-29
+Preferred-Value: acw
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: acx
+Description: Omani Arabic
+Added: 2009-07-29
+Preferred-Value: acx
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: acy
+Description: Cypriot Arabic
+Added: 2009-07-29
+Preferred-Value: acy
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: adf
+Description: Dhofari Arabic
+Added: 2009-07-29
+Preferred-Value: adf
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ads
+Description: Adamorobe Sign Language
+Added: 2009-07-29
+Preferred-Value: ads
+Prefix: sgn
+%%
+Type: extlang
+Subtag: aeb
+Description: Tunisian Arabic
+Added: 2009-07-29
+Preferred-Value: aeb
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: aec
+Description: Saidi Arabic
+Added: 2009-07-29
+Preferred-Value: aec
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: aed
+Description: Argentine Sign Language
+Added: 2009-07-29
+Preferred-Value: aed
+Prefix: sgn
+%%
+Type: extlang
+Subtag: aen
+Description: Armenian Sign Language
+Added: 2009-07-29
+Preferred-Value: aen
+Prefix: sgn
+%%
+Type: extlang
+Subtag: afb
+Description: Gulf Arabic
+Added: 2009-07-29
+Preferred-Value: afb
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: afg
+Description: Afghan Sign Language
+Added: 2009-07-29
+Preferred-Value: afg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ajp
+Description: South Levantine Arabic
+Added: 2009-07-29
+Preferred-Value: ajp
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: apc
+Description: North Levantine Arabic
+Added: 2009-07-29
+Preferred-Value: apc
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: apd
+Description: Sudanese Arabic
+Added: 2009-07-29
+Preferred-Value: apd
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: arb
+Description: Standard Arabic
+Added: 2009-07-29
+Preferred-Value: arb
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: arq
+Description: Algerian Arabic
+Added: 2009-07-29
+Preferred-Value: arq
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ars
+Description: Najdi Arabic
+Added: 2009-07-29
+Preferred-Value: ars
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ary
+Description: Moroccan Arabic
+Added: 2009-07-29
+Preferred-Value: ary
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: arz
+Description: Egyptian Arabic
+Added: 2009-07-29
+Preferred-Value: arz
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ase
+Description: American Sign Language
+Added: 2009-07-29
+Preferred-Value: ase
+Prefix: sgn
+%%
+Type: extlang
+Subtag: asf
+Description: Australian Sign Language
+Added: 2009-07-29
+Preferred-Value: asf
+Prefix: sgn
+%%
+Type: extlang
+Subtag: asp
+Description: Algerian Sign Language
+Added: 2009-07-29
+Preferred-Value: asp
+Prefix: sgn
+%%
+Type: extlang
+Subtag: asq
+Description: Austrian Sign Language
+Added: 2009-07-29
+Preferred-Value: asq
+Prefix: sgn
+%%
+Type: extlang
+Subtag: asw
+Description: Australian Aborigines Sign Language
+Added: 2009-07-29
+Preferred-Value: asw
+Prefix: sgn
+%%
+Type: extlang
+Subtag: auz
+Description: Uzbeki Arabic
+Added: 2009-07-29
+Preferred-Value: auz
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: avl
+Description: Eastern Egyptian Bedawi Arabic
+Added: 2009-07-29
+Preferred-Value: avl
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ayh
+Description: Hadrami Arabic
+Added: 2009-07-29
+Preferred-Value: ayh
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ayl
+Description: Libyan Arabic
+Added: 2009-07-29
+Preferred-Value: ayl
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ayn
+Description: Sanaani Arabic
+Added: 2009-07-29
+Preferred-Value: ayn
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ayp
+Description: North Mesopotamian Arabic
+Added: 2009-07-29
+Preferred-Value: ayp
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: bbz
+Description: Babalia Creole Arabic
+Added: 2009-07-29
+Preferred-Value: bbz
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: bfi
+Description: British Sign Language
+Added: 2009-07-29
+Preferred-Value: bfi
+Prefix: sgn
+%%
+Type: extlang
+Subtag: bfk
+Description: Ban Khor Sign Language
+Added: 2009-07-29
+Preferred-Value: bfk
+Prefix: sgn
+%%
+Type: extlang
+Subtag: bjn
+Description: Banjar
+Added: 2009-07-29
+Preferred-Value: bjn
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: bog
+Description: Bamako Sign Language
+Added: 2009-07-29
+Preferred-Value: bog
+Prefix: sgn
+%%
+Type: extlang
+Subtag: bqn
+Description: Bulgarian Sign Language
+Added: 2009-07-29
+Preferred-Value: bqn
+Prefix: sgn
+%%
+Type: extlang
+Subtag: bqy
+Description: Bengkala Sign Language
+Added: 2009-07-29
+Preferred-Value: bqy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: btj
+Description: Bacanese Malay
+Added: 2009-07-29
+Preferred-Value: btj
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: bve
+Description: Berau Malay
+Added: 2009-07-29
+Preferred-Value: bve
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: bvl
+Description: Bolivian Sign Language
+Added: 2009-07-29
+Preferred-Value: bvl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: bvu
+Description: Bukit Malay
+Added: 2009-07-29
+Preferred-Value: bvu
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: bzs
+Description: Brazilian Sign Language
+Added: 2009-07-29
+Preferred-Value: bzs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: cdo
+Description: Min Dong Chinese
+Added: 2009-07-29
+Preferred-Value: cdo
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: cds
+Description: Chadian Sign Language
+Added: 2009-07-29
+Preferred-Value: cds
+Prefix: sgn
+%%
+Type: extlang
+Subtag: cjy
+Description: Jinyu Chinese
+Added: 2009-07-29
+Preferred-Value: cjy
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: cmn
+Description: Mandarin Chinese
+Added: 2009-07-29
+Preferred-Value: cmn
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: coa
+Description: Cocos Islands Malay
+Added: 2009-07-29
+Preferred-Value: coa
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: cpx
+Description: Pu-Xian Chinese
+Added: 2009-07-29
+Preferred-Value: cpx
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: csc
+Description: Catalan Sign Language
+Description: Lengua de señas catalana
+Description: Llengua de Signes Catalana
+Added: 2009-07-29
+Preferred-Value: csc
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csd
+Description: Chiangmai Sign Language
+Added: 2009-07-29
+Preferred-Value: csd
+Prefix: sgn
+%%
+Type: extlang
+Subtag: cse
+Description: Czech Sign Language
+Added: 2009-07-29
+Preferred-Value: cse
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csf
+Description: Cuba Sign Language
+Added: 2009-07-29
+Preferred-Value: csf
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csg
+Description: Chilean Sign Language
+Added: 2009-07-29
+Preferred-Value: csg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csl
+Description: Chinese Sign Language
+Added: 2009-07-29
+Preferred-Value: csl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csn
+Description: Colombian Sign Language
+Added: 2009-07-29
+Preferred-Value: csn
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csq
+Description: Croatia Sign Language
+Added: 2009-07-29
+Preferred-Value: csq
+Prefix: sgn
+%%
+Type: extlang
+Subtag: csr
+Description: Costa Rican Sign Language
+Added: 2009-07-29
+Preferred-Value: csr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: czh
+Description: Huizhou Chinese
+Added: 2009-07-29
+Preferred-Value: czh
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: czo
+Description: Min Zhong Chinese
+Added: 2009-07-29
+Preferred-Value: czo
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: doq
+Description: Dominican Sign Language
+Added: 2009-07-29
+Preferred-Value: doq
+Prefix: sgn
+%%
+Type: extlang
+Subtag: dse
+Description: Dutch Sign Language
+Added: 2009-07-29
+Preferred-Value: dse
+Prefix: sgn
+%%
+Type: extlang
+Subtag: dsl
+Description: Danish Sign Language
+Added: 2009-07-29
+Preferred-Value: dsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: dup
+Description: Duano
+Added: 2009-07-29
+Preferred-Value: dup
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: ecs
+Description: Ecuadorian Sign Language
+Added: 2009-07-29
+Preferred-Value: ecs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: esl
+Description: Egypt Sign Language
+Added: 2009-07-29
+Preferred-Value: esl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: esn
+Description: Salvadoran Sign Language
+Added: 2009-07-29
+Preferred-Value: esn
+Prefix: sgn
+%%
+Type: extlang
+Subtag: eso
+Description: Estonian Sign Language
+Added: 2009-07-29
+Preferred-Value: eso
+Prefix: sgn
+%%
+Type: extlang
+Subtag: eth
+Description: Ethiopian Sign Language
+Added: 2009-07-29
+Preferred-Value: eth
+Prefix: sgn
+%%
+Type: extlang
+Subtag: fcs
+Description: Quebec Sign Language
+Added: 2009-07-29
+Preferred-Value: fcs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: fse
+Description: Finnish Sign Language
+Added: 2009-07-29
+Preferred-Value: fse
+Prefix: sgn
+%%
+Type: extlang
+Subtag: fsl
+Description: French Sign Language
+Added: 2009-07-29
+Preferred-Value: fsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: fss
+Description: Finland-Swedish Sign Language
+Description: finlandssvenskt teckenspråk
+Description: suomenruotsalainen viittomakieli
+Added: 2009-07-29
+Preferred-Value: fss
+Prefix: sgn
+%%
+Type: extlang
+Subtag: gan
+Description: Gan Chinese
+Added: 2009-07-29
+Preferred-Value: gan
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: gom
+Description: Goan Konkani
+Added: 2009-07-29
+Preferred-Value: gom
+Prefix: kok
+Macrolanguage: kok
+%%
+Type: extlang
+Subtag: gse
+Description: Ghanaian Sign Language
+Added: 2009-07-29
+Preferred-Value: gse
+Prefix: sgn
+%%
+Type: extlang
+Subtag: gsg
+Description: German Sign Language
+Added: 2009-07-29
+Preferred-Value: gsg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: gsm
+Description: Guatemalan Sign Language
+Added: 2009-07-29
+Preferred-Value: gsm
+Prefix: sgn
+%%
+Type: extlang
+Subtag: gss
+Description: Greek Sign Language
+Added: 2009-07-29
+Preferred-Value: gss
+Prefix: sgn
+%%
+Type: extlang
+Subtag: gus
+Description: Guinean Sign Language
+Added: 2009-07-29
+Preferred-Value: gus
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hab
+Description: Hanoi Sign Language
+Added: 2009-07-29
+Preferred-Value: hab
+Prefix: sgn
+%%
+Type: extlang
+Subtag: haf
+Description: Haiphong Sign Language
+Added: 2009-07-29
+Preferred-Value: haf
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hak
+Description: Hakka Chinese
+Added: 2009-07-29
+Preferred-Value: hak
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: hds
+Description: Honduras Sign Language
+Added: 2009-07-29
+Preferred-Value: hds
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hji
+Description: Haji
+Added: 2009-07-29
+Preferred-Value: hji
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: hks
+Description: Hong Kong Sign Language
+Description: Heung Kong Sau Yue
+Added: 2009-07-29
+Preferred-Value: hks
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hos
+Description: Ho Chi Minh City Sign Language
+Added: 2009-07-29
+Preferred-Value: hos
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hps
+Description: Hawai'i Pidgin Sign Language
+Added: 2009-07-29
+Preferred-Value: hps
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hsh
+Description: Hungarian Sign Language
+Added: 2009-07-29
+Preferred-Value: hsh
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hsl
+Description: Hausa Sign Language
+Added: 2009-07-29
+Preferred-Value: hsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: hsn
+Description: Xiang Chinese
+Added: 2009-07-29
+Preferred-Value: hsn
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: icl
+Description: Icelandic Sign Language
+Added: 2009-07-29
+Preferred-Value: icl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ils
+Description: International Sign
+Added: 2009-07-29
+Preferred-Value: ils
+Prefix: sgn
+%%
+Type: extlang
+Subtag: inl
+Description: Indonesian Sign Language
+Added: 2009-07-29
+Preferred-Value: inl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ins
+Description: Indian Sign Language
+Added: 2009-07-29
+Preferred-Value: ins
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ise
+Description: Italian Sign Language
+Added: 2009-07-29
+Preferred-Value: ise
+Prefix: sgn
+%%
+Type: extlang
+Subtag: isg
+Description: Irish Sign Language
+Added: 2009-07-29
+Preferred-Value: isg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: isr
+Description: Israeli Sign Language
+Added: 2009-07-29
+Preferred-Value: isr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jak
+Description: Jakun
+Added: 2009-07-29
+Preferred-Value: jak
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: jax
+Description: Jambi Malay
+Added: 2009-07-29
+Preferred-Value: jax
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: jcs
+Description: Jamaican Country Sign Language
+Added: 2009-07-29
+Preferred-Value: jcs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jhs
+Description: Jhankot Sign Language
+Added: 2009-07-29
+Preferred-Value: jhs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jls
+Description: Jamaican Sign Language
+Added: 2010-03-11
+Preferred-Value: jls
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jos
+Description: Jordanian Sign Language
+Added: 2009-07-29
+Preferred-Value: jos
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jsl
+Description: Japanese Sign Language
+Added: 2009-07-29
+Preferred-Value: jsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: jus
+Description: Jumla Sign Language
+Added: 2009-07-29
+Preferred-Value: jus
+Prefix: sgn
+%%
+Type: extlang
+Subtag: kgi
+Description: Selangor Sign Language
+Added: 2009-07-29
+Preferred-Value: kgi
+Prefix: sgn
+%%
+Type: extlang
+Subtag: knn
+Description: Konkani (individual language)
+Added: 2009-07-29
+Preferred-Value: knn
+Prefix: kok
+Macrolanguage: kok
+%%
+Type: extlang
+Subtag: kvb
+Description: Kubu
+Added: 2009-07-29
+Preferred-Value: kvb
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: kvk
+Description: Korean Sign Language
+Added: 2009-07-29
+Preferred-Value: kvk
+Prefix: sgn
+%%
+Type: extlang
+Subtag: kvr
+Description: Kerinci
+Added: 2009-07-29
+Preferred-Value: kvr
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: kxd
+Description: Brunei
+Added: 2009-07-29
+Preferred-Value: kxd
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: lbs
+Description: Libyan Sign Language
+Added: 2009-07-29
+Preferred-Value: lbs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lce
+Description: Loncong
+Added: 2009-07-29
+Preferred-Value: lce
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: lcf
+Description: Lubu
+Added: 2009-07-29
+Preferred-Value: lcf
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: liw
+Description: Col
+Added: 2009-07-29
+Preferred-Value: liw
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: lls
+Description: Lithuanian Sign Language
+Added: 2009-07-29
+Preferred-Value: lls
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lsg
+Description: Lyons Sign Language
+Added: 2009-07-29
+Preferred-Value: lsg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lsl
+Description: Latvian Sign Language
+Added: 2009-07-29
+Preferred-Value: lsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lso
+Description: Laos Sign Language
+Added: 2009-07-29
+Preferred-Value: lso
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lsp
+Description: Panamanian Sign Language
+Description: Lengua de Señas Panameñas
+Added: 2009-07-29
+Preferred-Value: lsp
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lst
+Description: Trinidad and Tobago Sign Language
+Added: 2009-07-29
+Preferred-Value: lst
+Prefix: sgn
+%%
+Type: extlang
+Subtag: lsy
+Description: Mauritian Sign Language
+Added: 2010-03-11
+Preferred-Value: lsy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ltg
+Description: Latgalian
+Added: 2010-03-11
+Preferred-Value: ltg
+Prefix: lv
+Macrolanguage: lv
+%%
+Type: extlang
+Subtag: lvs
+Description: Standard Latvian
+Added: 2010-03-11
+Preferred-Value: lvs
+Prefix: lv
+Macrolanguage: lv
+%%
+Type: extlang
+Subtag: lzh
+Description: Literary Chinese
+Added: 2009-07-29
+Preferred-Value: lzh
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: max
+Description: North Moluccan Malay
+Added: 2009-07-29
+Preferred-Value: max
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mdl
+Description: Maltese Sign Language
+Added: 2009-07-29
+Preferred-Value: mdl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: meo
+Description: Kedah Malay
+Added: 2009-07-29
+Preferred-Value: meo
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mfa
+Description: Pattani Malay
+Added: 2009-07-29
+Preferred-Value: mfa
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mfb
+Description: Bangka
+Added: 2009-07-29
+Preferred-Value: mfb
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mfs
+Description: Mexican Sign Language
+Added: 2009-07-29
+Preferred-Value: mfs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: min
+Description: Minangkabau
+Added: 2009-07-29
+Preferred-Value: min
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mnp
+Description: Min Bei Chinese
+Added: 2009-07-29
+Preferred-Value: mnp
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: mqg
+Description: Kota Bangun Kutai Malay
+Added: 2009-07-29
+Preferred-Value: mqg
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mre
+Description: Martha's Vineyard Sign Language
+Added: 2009-07-29
+Preferred-Value: mre
+Prefix: sgn
+%%
+Type: extlang
+Subtag: msd
+Description: Yucatec Maya Sign Language
+Added: 2009-07-29
+Preferred-Value: msd
+Prefix: sgn
+%%
+Type: extlang
+Subtag: msi
+Description: Sabah Malay
+Added: 2009-07-29
+Preferred-Value: msi
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: msr
+Description: Mongolian Sign Language
+Added: 2009-07-29
+Preferred-Value: msr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: mui
+Description: Musi
+Added: 2009-07-29
+Preferred-Value: mui
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: mzc
+Description: Madagascar Sign Language
+Added: 2009-07-29
+Preferred-Value: mzc
+Prefix: sgn
+%%
+Type: extlang
+Subtag: mzg
+Description: Monastic Sign Language
+Added: 2009-07-29
+Preferred-Value: mzg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: mzy
+Description: Mozambican Sign Language
+Added: 2009-07-29
+Preferred-Value: mzy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nan
+Description: Min Nan Chinese
+Added: 2009-07-29
+Preferred-Value: nan
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: nbs
+Description: Namibian Sign Language
+Added: 2009-07-29
+Preferred-Value: nbs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ncs
+Description: Nicaraguan Sign Language
+Added: 2009-07-29
+Preferred-Value: ncs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nsi
+Description: Nigerian Sign Language
+Added: 2009-07-29
+Preferred-Value: nsi
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nsl
+Description: Norwegian Sign Language
+Added: 2009-07-29
+Preferred-Value: nsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nsp
+Description: Nepalese Sign Language
+Added: 2009-07-29
+Preferred-Value: nsp
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nsr
+Description: Maritime Sign Language
+Added: 2009-07-29
+Preferred-Value: nsr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: nzs
+Description: New Zealand Sign Language
+Added: 2009-07-29
+Preferred-Value: nzs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: okl
+Description: Old Kentish Sign Language
+Added: 2009-07-29
+Preferred-Value: okl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: orn
+Description: Orang Kanaq
+Added: 2009-07-29
+Preferred-Value: orn
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: ors
+Description: Orang Seletar
+Added: 2009-07-29
+Preferred-Value: ors
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: pel
+Description: Pekal
+Added: 2009-07-29
+Preferred-Value: pel
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: pga
+Description: Sudanese Creole Arabic
+Added: 2009-07-29
+Preferred-Value: pga
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: pks
+Description: Pakistan Sign Language
+Added: 2009-07-29
+Preferred-Value: pks
+Prefix: sgn
+%%
+Type: extlang
+Subtag: prl
+Description: Peruvian Sign Language
+Added: 2009-07-29
+Preferred-Value: prl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: prz
+Description: Providencia Sign Language
+Added: 2009-07-29
+Preferred-Value: prz
+Prefix: sgn
+%%
+Type: extlang
+Subtag: psc
+Description: Persian Sign Language
+Added: 2009-07-29
+Preferred-Value: psc
+Prefix: sgn
+%%
+Type: extlang
+Subtag: psd
+Description: Plains Indian Sign Language
+Added: 2009-07-29
+Preferred-Value: psd
+Prefix: sgn
+%%
+Type: extlang
+Subtag: pse
+Description: Central Malay
+Added: 2009-07-29
+Preferred-Value: pse
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: psg
+Description: Penang Sign Language
+Added: 2009-07-29
+Preferred-Value: psg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: psl
+Description: Puerto Rican Sign Language
+Added: 2009-07-29
+Preferred-Value: psl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: pso
+Description: Polish Sign Language
+Added: 2009-07-29
+Preferred-Value: pso
+Prefix: sgn
+%%
+Type: extlang
+Subtag: psp
+Description: Philippine Sign Language
+Added: 2009-07-29
+Preferred-Value: psp
+Prefix: sgn
+%%
+Type: extlang
+Subtag: psr
+Description: Portuguese Sign Language
+Added: 2009-07-29
+Preferred-Value: psr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: pys
+Description: Paraguayan Sign Language
+Description: Lengua de Señas del Paraguay
+Added: 2010-03-11
+Preferred-Value: pys
+Prefix: sgn
+%%
+Type: extlang
+Subtag: rms
+Description: Romanian Sign Language
+Added: 2009-07-29
+Preferred-Value: rms
+Prefix: sgn
+%%
+Type: extlang
+Subtag: rsi
+Description: Rennellese Sign Language
+Added: 2009-07-29
+Preferred-Value: rsi
+Prefix: sgn
+%%
+Type: extlang
+Subtag: rsl
+Description: Russian Sign Language
+Added: 2009-07-29
+Preferred-Value: rsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sdl
+Description: Saudi Arabian Sign Language
+Added: 2009-07-29
+Preferred-Value: sdl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sfb
+Description: Langue des signes de Belgique Francophone
+Description: French Belgian Sign Language
+Added: 2009-07-29
+Preferred-Value: sfb
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sfs
+Description: South African Sign Language
+Added: 2009-07-29
+Preferred-Value: sfs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sgg
+Description: Swiss-German Sign Language
+Added: 2009-07-29
+Preferred-Value: sgg
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sgx
+Description: Sierra Leone Sign Language
+Added: 2009-07-29
+Preferred-Value: sgx
+Prefix: sgn
+%%
+Type: extlang
+Subtag: shu
+Description: Chadian Arabic
+Added: 2009-07-29
+Preferred-Value: shu
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: slf
+Description: Swiss-Italian Sign Language
+Added: 2009-07-29
+Preferred-Value: slf
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sls
+Description: Singapore Sign Language
+Added: 2009-07-29
+Preferred-Value: sls
+Prefix: sgn
+%%
+Type: extlang
+Subtag: sqs
+Description: Sri Lankan Sign Language
+Added: 2009-07-29
+Preferred-Value: sqs
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ssh
+Description: Shihhi Arabic
+Added: 2009-07-29
+Preferred-Value: ssh
+Prefix: ar
+Macrolanguage: ar
+%%
+Type: extlang
+Subtag: ssp
+Description: Spanish Sign Language
+Added: 2009-07-29
+Preferred-Value: ssp
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ssr
+Description: Swiss-French Sign Language
+Added: 2009-07-29
+Preferred-Value: ssr
+Prefix: sgn
+%%
+Type: extlang
+Subtag: svk
+Description: Slovakian Sign Language
+Added: 2009-07-29
+Preferred-Value: svk
+Prefix: sgn
+%%
+Type: extlang
+Subtag: swc
+Description: Congo Swahili
+Added: 2009-07-29
+Preferred-Value: swc
+Prefix: sw
+Macrolanguage: sw
+%%
+Type: extlang
+Subtag: swh
+Description: Swahili (individual language)
+Description: Kiswahili
+Added: 2009-07-29
+Preferred-Value: swh
+Prefix: sw
+Macrolanguage: sw
+%%
+Type: extlang
+Subtag: swl
+Description: Swedish Sign Language
+Added: 2009-07-29
+Preferred-Value: swl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: syy
+Description: Al-Sayyid Bedouin Sign Language
+Added: 2009-07-29
+Preferred-Value: syy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tmw
+Description: Temuan
+Added: 2009-07-29
+Preferred-Value: tmw
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: tse
+Description: Tunisian Sign Language
+Added: 2009-07-29
+Preferred-Value: tse
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tsm
+Description: Turkish Sign Language
+Description: Türk İşaret Dili
+Added: 2009-07-29
+Preferred-Value: tsm
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tsq
+Description: Thai Sign Language
+Added: 2009-07-29
+Preferred-Value: tsq
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tss
+Description: Taiwan Sign Language
+Added: 2009-07-29
+Preferred-Value: tss
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tsy
+Description: Tebul Sign Language
+Added: 2009-07-29
+Preferred-Value: tsy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: tza
+Description: Tanzanian Sign Language
+Added: 2009-07-29
+Preferred-Value: tza
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ugn
+Description: Ugandan Sign Language
+Added: 2009-07-29
+Preferred-Value: ugn
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ugy
+Description: Uruguayan Sign Language
+Added: 2009-07-29
+Preferred-Value: ugy
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ukl
+Description: Ukrainian Sign Language
+Added: 2009-07-29
+Preferred-Value: ukl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: uks
+Description: Urubú-Kaapor Sign Language
+Description: Kaapor Sign Language
+Added: 2009-07-29
+Preferred-Value: uks
+Prefix: sgn
+%%
+Type: extlang
+Subtag: urk
+Description: Urak Lawoi'
+Added: 2009-07-29
+Preferred-Value: urk
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: uzn
+Description: Northern Uzbek
+Added: 2009-07-29
+Preferred-Value: uzn
+Prefix: uz
+Macrolanguage: uz
+%%
+Type: extlang
+Subtag: uzs
+Description: Southern Uzbek
+Added: 2009-07-29
+Preferred-Value: uzs
+Prefix: uz
+Macrolanguage: uz
+%%
+Type: extlang
+Subtag: vgt
+Description: Vlaamse Gebarentaal
+Description: Flemish Sign Language
+Added: 2009-07-29
+Preferred-Value: vgt
+Prefix: sgn
+%%
+Type: extlang
+Subtag: vkk
+Description: Kaur
+Added: 2009-07-29
+Preferred-Value: vkk
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: vkt
+Description: Tenggarong Kutai Malay
+Added: 2009-07-29
+Preferred-Value: vkt
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: vsi
+Description: Moldova Sign Language
+Added: 2009-07-29
+Preferred-Value: vsi
+Prefix: sgn
+%%
+Type: extlang
+Subtag: vsl
+Description: Venezuelan Sign Language
+Added: 2009-07-29
+Preferred-Value: vsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: vsv
+Description: Valencian Sign Language
+Description: Llengua de signes valenciana
+Added: 2009-07-29
+Preferred-Value: vsv
+Prefix: sgn
+%%
+Type: extlang
+Subtag: wuu
+Description: Wu Chinese
+Added: 2009-07-29
+Preferred-Value: wuu
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: xki
+Description: Kenyan Sign Language
+Added: 2009-07-29
+Preferred-Value: xki
+Prefix: sgn
+%%
+Type: extlang
+Subtag: xml
+Description: Malaysian Sign Language
+Added: 2009-07-29
+Preferred-Value: xml
+Prefix: sgn
+%%
+Type: extlang
+Subtag: xmm
+Description: Manado Malay
+Added: 2009-07-29
+Preferred-Value: xmm
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: xms
+Description: Moroccan Sign Language
+Added: 2009-07-29
+Preferred-Value: xms
+Prefix: sgn
+%%
+Type: extlang
+Subtag: yds
+Description: Yiddish Sign Language
+Added: 2009-07-29
+Preferred-Value: yds
+Prefix: sgn
+%%
+Type: extlang
+Subtag: ysl
+Description: Yugoslavian Sign Language
+Added: 2009-07-29
+Preferred-Value: ysl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: yue
+Description: Yue Chinese
+Added: 2009-07-29
+Preferred-Value: yue
+Prefix: zh
+Macrolanguage: zh
+%%
+Type: extlang
+Subtag: zib
+Description: Zimbabwe Sign Language
+Added: 2009-07-29
+Preferred-Value: zib
+Prefix: sgn
+%%
+Type: extlang
+Subtag: zlm
+Description: Malay (individual language)
+Added: 2009-07-29
+Preferred-Value: zlm
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: zmi
+Description: Negeri Sembilan Malay
+Added: 2009-07-29
+Preferred-Value: zmi
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: extlang
+Subtag: zsl
+Description: Zambian Sign Language
+Added: 2009-07-29
+Preferred-Value: zsl
+Prefix: sgn
+%%
+Type: extlang
+Subtag: zsm
+Description: Standard Malay
+Added: 2009-07-29
+Preferred-Value: zsm
+Prefix: ms
+Macrolanguage: ms
+%%
+Type: script
+Subtag: Afak
+Description: Afaka
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Arab
+Description: Arabic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Armi
+Description: Imperial Aramaic
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Armn
+Description: Armenian
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Avst
+Description: Avestan
+Added: 2007-07-28
+%%
+Type: script
+Subtag: Bali
+Description: Balinese
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Bamu
+Description: Bamum
+Added: 2009-07-30
+%%
+Type: script
+Subtag: Bass
+Description: Bassa Vah
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Batk
+Description: Batak
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Beng
+Description: Bengali
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Blis
+Description: Blissymbols
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Bopo
+Description: Bopomofo
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Brah
+Description: Brahmi
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Brai
+Description: Braille
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Bugi
+Description: Buginese
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Buhd
+Description: Buhid
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cakm
+Description: Chakma
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Cans
+Description: Unified Canadian Aboriginal Syllabics
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cari
+Description: Carian
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Cham
+Description: Cham
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cher
+Description: Cherokee
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cirt
+Description: Cirth
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Copt
+Description: Coptic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cprt
+Description: Cypriot
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cyrl
+Description: Cyrillic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Cyrs
+Description: Cyrillic (Old Church Slavonic variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Deva
+Description: Devanagari
+Description: Nagari
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Dsrt
+Description: Deseret
+Description: Mormon
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Dupl
+Description: Duployan shorthand
+Description: Duployan stenography
+Added: 2010-08-16
+%%
+Type: script
+Subtag: Egyd
+Description: Egyptian demotic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Egyh
+Description: Egyptian hieratic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Egyp
+Description: Egyptian hieroglyphs
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Elba
+Description: Elbasan
+Added: 2010-08-16
+%%
+Type: script
+Subtag: Ethi
+Description: Ethiopic
+Description: Geʻez
+Description: Ge'ez
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Geok
+Description: Khutsuri (Asomtavruli and Nuskhuri)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Geor
+Description: Georgian (Mkhedruli)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Glag
+Description: Glagolitic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Goth
+Description: Gothic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Gran
+Description: Grantha
+Added: 2009-12-09
+%%
+Type: script
+Subtag: Grek
+Description: Greek
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Gujr
+Description: Gujarati
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Guru
+Description: Gurmukhi
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hang
+Description: Hangul
+Description: Hangŭl
+Description: Hangeul
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hani
+Description: Han
+Description: Hanzi
+Description: Kanji
+Description: Hanja
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hano
+Description: Hanunoo
+Description: Hanunóo
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hans
+Description: Han (Simplified variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hant
+Description: Han (Traditional variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hebr
+Description: Hebrew
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hira
+Description: Hiragana
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hmng
+Description: Pahawh Hmong
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hrkt
+Description: Japanese syllabaries (alias for Hiragana + Katakana)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Hung
+Description: Old Hungarian
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Inds
+Description: Indus
+Description: Harappan
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Ital
+Description: Old Italic (Etruscan, Oscan, etc.)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Java
+Description: Javanese
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Jpan
+Description: Japanese (alias for Han + Hiragana + Katakana)
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Jurc
+Description: Jurchen
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Kali
+Description: Kayah Li
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Kana
+Description: Katakana
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Khar
+Description: Kharoshthi
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Khmr
+Description: Khmer
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Khoj
+Description: Khojki
+Added: 2011-08-16
+%%
+Type: script
+Subtag: Knda
+Description: Kannada
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Kore
+Description: Korean (alias for Hangul + Han)
+Added: 2007-07-05
+%%
+Type: script
+Subtag: Kpel
+Description: Kpelle
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Kthi
+Description: Kaithi
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Lana
+Description: Tai Tham
+Description: Lanna
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Laoo
+Description: Lao
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Latf
+Description: Latin (Fraktur variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Latg
+Description: Latin (Gaelic variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Latn
+Description: Latin
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Lepc
+Description: Lepcha
+Description: Róng
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Limb
+Description: Limbu
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Lina
+Description: Linear A
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Linb
+Description: Linear B
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Lisu
+Description: Lisu
+Description: Fraser
+Added: 2009-03-13
+%%
+Type: script
+Subtag: Loma
+Description: Loma
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Lyci
+Description: Lycian
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Lydi
+Description: Lydian
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Mand
+Description: Mandaic
+Description: Mandaean
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Mani
+Description: Manichaean
+Added: 2007-07-28
+%%
+Type: script
+Subtag: Maya
+Description: Mayan hieroglyphs
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Mend
+Description: Mende
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Merc
+Description: Meroitic Cursive
+Added: 2009-12-09
+%%
+Type: script
+Subtag: Mero
+Description: Meroitic Hieroglyphs
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Mlym
+Description: Malayalam
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Mong
+Description: Mongolian
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Moon
+Description: Moon
+Description: Moon code
+Description: Moon script
+Description: Moon type
+Added: 2007-01-26
+%%
+Type: script
+Subtag: Mroo
+Description: Mro
+Description: Mru
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Mtei
+Description: Meitei Mayek
+Description: Meithei
+Description: Meetei
+Added: 2007-01-26
+%%
+Type: script
+Subtag: Mymr
+Description: Myanmar
+Description: Burmese
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Narb
+Description: Old North Arabian
+Description: Ancient North Arabian
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Nbat
+Description: Nabataean
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Nkgb
+Description: Nakhi Geba
+Description: 'Na-'Khi ²Ggŏ-¹baw
+Description: Naxi Geba
+Added: 2009-03-13
+%%
+Type: script
+Subtag: Nkoo
+Description: N’Ko
+Description: N'Ko
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Nshu
+Description: Nüshu
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Ogam
+Description: Ogham
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Olck
+Description: Ol Chiki
+Description: Ol Cemet'
+Description: Ol
+Description: Santali
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Orkh
+Description: Old Turkic
+Description: Orkhon Runic
+Added: 2009-07-30
+%%
+Type: script
+Subtag: Orya
+Description: Oriya
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Osma
+Description: Osmanya
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Palm
+Description: Palmyrene
+Added: 2010-04-10
+%%
+Type: script
+Subtag: Perm
+Description: Old Permic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Phag
+Description: Phags-pa
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Phli
+Description: Inscriptional Pahlavi
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Phlp
+Description: Psalter Pahlavi
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Phlv
+Description: Book Pahlavi
+Added: 2007-07-28
+%%
+Type: script
+Subtag: Phnx
+Description: Phoenician
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Plrd
+Description: Miao
+Description: Pollard
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Prti
+Description: Inscriptional Parthian
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Qaaa..Qabx
+Description: Private use
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Rjng
+Description: Rejang
+Description: Redjang
+Description: Kaganga
+Added: 2006-10-17
+%%
+Type: script
+Subtag: Roro
+Description: Rongorongo
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Runr
+Description: Runic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Samr
+Description: Samaritan
+Added: 2007-07-28
+%%
+Type: script
+Subtag: Sara
+Description: Sarati
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Sarb
+Description: Old South Arabian
+Added: 2009-07-30
+%%
+Type: script
+Subtag: Saur
+Description: Saurashtra
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Sgnw
+Description: SignWriting
+Added: 2006-10-17
+%%
+Type: script
+Subtag: Shaw
+Description: Shavian
+Description: Shaw
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Shrd
+Description: Sharada
+Description: Śāradā
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Sind
+Description: Khudawadi
+Description: Sindhi
+Added: 2010-08-16
+%%
+Type: script
+Subtag: Sinh
+Description: Sinhala
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Sora
+Description: Sora Sompeng
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Sund
+Description: Sundanese
+Added: 2006-07-21
+%%
+Type: script
+Subtag: Sylo
+Description: Syloti Nagri
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Syrc
+Description: Syriac
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Syre
+Description: Syriac (Estrangelo variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Syrj
+Description: Syriac (Western variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Syrn
+Description: Syriac (Eastern variant)
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tagb
+Description: Tagbanwa
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Takr
+Description: Takri
+Description: Ṭākrī
+Description: Ṭāṅkrī
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Tale
+Description: Tai Le
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Talu
+Description: New Tai Lue
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Taml
+Description: Tamil
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tang
+Description: Tangut
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Tavt
+Description: Tai Viet
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Telu
+Description: Telugu
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Teng
+Description: Tengwar
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tfng
+Description: Tifinagh
+Description: Berber
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tglg
+Description: Tagalog
+Description: Baybayin
+Description: Alibata
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Thaa
+Description: Thaana
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Thai
+Description: Thai
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tibt
+Description: Tibetan
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Tirh
+Description: Tirhuta
+Added: 2011-08-16
+%%
+Type: script
+Subtag: Ugar
+Description: Ugaritic
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Vaii
+Description: Vai
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Visp
+Description: Visible Speech
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Wara
+Description: Warang Citi
+Description: Varang Kshiti
+Added: 2009-12-09
+%%
+Type: script
+Subtag: Wole
+Description: Woleai
+Added: 2011-01-07
+%%
+Type: script
+Subtag: Xpeo
+Description: Old Persian
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Xsux
+Description: Sumero-Akkadian cuneiform
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Yiii
+Description: Yi
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Zinh
+Description: Code for inherited script
+Added: 2009-04-03
+Comments: Not intended for use as a language subtag
+%%
+Type: script
+Subtag: Zmth
+Description: Mathematical notation
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Zsym
+Description: Symbols
+Added: 2007-12-05
+%%
+Type: script
+Subtag: Zxxx
+Description: Code for unwritten documents
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Zyyy
+Description: Code for undetermined script
+Added: 2005-10-16
+%%
+Type: script
+Subtag: Zzzz
+Description: Code for uncoded script
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AA
+Description: Private use
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AC
+Description: Ascension Island
+Added: 2009-07-29
+%%
+Type: region
+Subtag: AD
+Description: Andorra
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AE
+Description: United Arab Emirates
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AF
+Description: Afghanistan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AG
+Description: Antigua and Barbuda
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AI
+Description: Anguilla
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AL
+Description: Albania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AM
+Description: Armenia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AN
+Description: Netherlands Antilles
+Added: 2005-10-16
+Deprecated: 2011-01-07
+Comments: see BQ, CW, and SX
+%%
+Type: region
+Subtag: AO
+Description: Angola
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AQ
+Description: Antarctica
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AR
+Description: Argentina
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AS
+Description: American Samoa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AT
+Description: Austria
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AU
+Description: Australia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AW
+Description: Aruba
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AX
+Description: Åland Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: AZ
+Description: Azerbaijan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BA
+Description: Bosnia and Herzegovina
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BB
+Description: Barbados
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BD
+Description: Bangladesh
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BE
+Description: Belgium
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BF
+Description: Burkina Faso
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BG
+Description: Bulgaria
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BH
+Description: Bahrain
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BI
+Description: Burundi
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BJ
+Description: Benin
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BL
+Description: Saint Barthélemy
+Added: 2007-11-02
+%%
+Type: region
+Subtag: BM
+Description: Bermuda
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BN
+Description: Brunei Darussalam
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BO
+Description: Bolivia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BQ
+Description: Bonaire, Sint Eustatius and Saba
+Added: 2011-01-07
+%%
+Type: region
+Subtag: BR
+Description: Brazil
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BS
+Description: Bahamas
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BT
+Description: Bhutan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BU
+Description: Burma
+Added: 2005-10-16
+Deprecated: 1989-12-05
+Preferred-Value: MM
+%%
+Type: region
+Subtag: BV
+Description: Bouvet Island
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BW
+Description: Botswana
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BY
+Description: Belarus
+Added: 2005-10-16
+%%
+Type: region
+Subtag: BZ
+Description: Belize
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CA
+Description: Canada
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CC
+Description: Cocos (Keeling) Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CD
+Description: The Democratic Republic of the Congo
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CF
+Description: Central African Republic
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CG
+Description: Congo
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CH
+Description: Switzerland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CI
+Description: Côte d'Ivoire
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CK
+Description: Cook Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CL
+Description: Chile
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CM
+Description: Cameroon
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CN
+Description: China
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CO
+Description: Colombia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CP
+Description: Clipperton Island
+Added: 2009-07-29
+%%
+Type: region
+Subtag: CR
+Description: Costa Rica
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CS
+Description: Serbia and Montenegro
+Added: 2005-10-16
+Deprecated: 2006-10-05
+Comments: see RS for Serbia or ME for Montenegro
+%%
+Type: region
+Subtag: CU
+Description: Cuba
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CV
+Description: Cape Verde
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CW
+Description: Curaçao
+Added: 2011-01-07
+%%
+Type: region
+Subtag: CX
+Description: Christmas Island
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CY
+Description: Cyprus
+Added: 2005-10-16
+%%
+Type: region
+Subtag: CZ
+Description: Czech Republic
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DD
+Description: German Democratic Republic
+Added: 2005-10-16
+Deprecated: 1990-10-30
+Preferred-Value: DE
+%%
+Type: region
+Subtag: DE
+Description: Germany
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DG
+Description: Diego Garcia
+Added: 2009-07-29
+%%
+Type: region
+Subtag: DJ
+Description: Djibouti
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DK
+Description: Denmark
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DM
+Description: Dominica
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DO
+Description: Dominican Republic
+Added: 2005-10-16
+%%
+Type: region
+Subtag: DZ
+Description: Algeria
+Added: 2005-10-16
+%%
+Type: region
+Subtag: EA
+Description: Ceuta, Melilla
+Added: 2009-07-29
+%%
+Type: region
+Subtag: EC
+Description: Ecuador
+Added: 2005-10-16
+%%
+Type: region
+Subtag: EE
+Description: Estonia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: EG
+Description: Egypt
+Added: 2005-10-16
+%%
+Type: region
+Subtag: EH
+Description: Western Sahara
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ER
+Description: Eritrea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ES
+Description: Spain
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ET
+Description: Ethiopia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: EU
+Description: European Union
+Added: 2009-07-29
+%%
+Type: region
+Subtag: FI
+Description: Finland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FJ
+Description: Fiji
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FK
+Description: Falkland Islands (Malvinas)
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FM
+Description: Federated States of Micronesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FO
+Description: Faroe Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FR
+Description: France
+Added: 2005-10-16
+%%
+Type: region
+Subtag: FX
+Description: Metropolitan France
+Added: 2005-10-16
+Deprecated: 1997-07-14
+Preferred-Value: FR
+%%
+Type: region
+Subtag: GA
+Description: Gabon
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GB
+Description: United Kingdom
+Added: 2005-10-16
+Comments: as of 2006-03-29 GB no longer includes the Channel Islands and
+ Isle of Man; see GG, JE, IM
+%%
+Type: region
+Subtag: GD
+Description: Grenada
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GE
+Description: Georgia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GF
+Description: French Guiana
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GG
+Description: Guernsey
+Added: 2006-03-29
+%%
+Type: region
+Subtag: GH
+Description: Ghana
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GI
+Description: Gibraltar
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GL
+Description: Greenland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GM
+Description: Gambia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GN
+Description: Guinea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GP
+Description: Guadeloupe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GQ
+Description: Equatorial Guinea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GR
+Description: Greece
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GS
+Description: South Georgia and the South Sandwich Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GT
+Description: Guatemala
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GU
+Description: Guam
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GW
+Description: Guinea-Bissau
+Added: 2005-10-16
+%%
+Type: region
+Subtag: GY
+Description: Guyana
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HK
+Description: Hong Kong
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HM
+Description: Heard Island and McDonald Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HN
+Description: Honduras
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HR
+Description: Croatia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HT
+Description: Haiti
+Added: 2005-10-16
+%%
+Type: region
+Subtag: HU
+Description: Hungary
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IC
+Description: Canary Islands
+Added: 2009-07-29
+%%
+Type: region
+Subtag: ID
+Description: Indonesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IE
+Description: Ireland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IL
+Description: Israel
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IM
+Description: Isle of Man
+Added: 2006-03-29
+%%
+Type: region
+Subtag: IN
+Description: India
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IO
+Description: British Indian Ocean Territory
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IQ
+Description: Iraq
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IR
+Description: Islamic Republic of Iran
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IS
+Description: Iceland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: IT
+Description: Italy
+Added: 2005-10-16
+%%
+Type: region
+Subtag: JE
+Description: Jersey
+Added: 2006-03-29
+%%
+Type: region
+Subtag: JM
+Description: Jamaica
+Added: 2005-10-16
+%%
+Type: region
+Subtag: JO
+Description: Jordan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: JP
+Description: Japan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KE
+Description: Kenya
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KG
+Description: Kyrgyzstan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KH
+Description: Cambodia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KI
+Description: Kiribati
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KM
+Description: Comoros
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KN
+Description: Saint Kitts and Nevis
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KP
+Description: Democratic People's Republic of Korea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KR
+Description: Republic of Korea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KW
+Description: Kuwait
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KY
+Description: Cayman Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: KZ
+Description: Kazakhstan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LA
+Description: Lao People's Democratic Republic
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LB
+Description: Lebanon
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LC
+Description: Saint Lucia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LI
+Description: Liechtenstein
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LK
+Description: Sri Lanka
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LR
+Description: Liberia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LS
+Description: Lesotho
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LT
+Description: Lithuania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LU
+Description: Luxembourg
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LV
+Description: Latvia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: LY
+Description: Libya
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MA
+Description: Morocco
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MC
+Description: Monaco
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MD
+Description: Moldova
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ME
+Description: Montenegro
+Added: 2006-10-05
+%%
+Type: region
+Subtag: MF
+Description: Saint Martin (French part)
+Added: 2007-11-02
+%%
+Type: region
+Subtag: MG
+Description: Madagascar
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MH
+Description: Marshall Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MK
+Description: The Former Yugoslav Republic of Macedonia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ML
+Description: Mali
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MM
+Description: Myanmar
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MN
+Description: Mongolia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MO
+Description: Macao
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MP
+Description: Northern Mariana Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MQ
+Description: Martinique
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MR
+Description: Mauritania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MS
+Description: Montserrat
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MT
+Description: Malta
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MU
+Description: Mauritius
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MV
+Description: Maldives
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MW
+Description: Malawi
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MX
+Description: Mexico
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MY
+Description: Malaysia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: MZ
+Description: Mozambique
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NA
+Description: Namibia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NC
+Description: New Caledonia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NE
+Description: Niger
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NF
+Description: Norfolk Island
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NG
+Description: Nigeria
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NI
+Description: Nicaragua
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NL
+Description: Netherlands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NO
+Description: Norway
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NP
+Description: Nepal
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NR
+Description: Nauru
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NT
+Description: Neutral Zone
+Added: 2005-10-16
+Deprecated: 1993-07-12
+%%
+Type: region
+Subtag: NU
+Description: Niue
+Added: 2005-10-16
+%%
+Type: region
+Subtag: NZ
+Description: New Zealand
+Added: 2005-10-16
+%%
+Type: region
+Subtag: OM
+Description: Oman
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PA
+Description: Panama
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PE
+Description: Peru
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PF
+Description: French Polynesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PG
+Description: Papua New Guinea
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PH
+Description: Philippines
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PK
+Description: Pakistan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PL
+Description: Poland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PM
+Description: Saint Pierre and Miquelon
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PN
+Description: Pitcairn
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PR
+Description: Puerto Rico
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PS
+Description: Occupied Palestinian Territory
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PT
+Description: Portugal
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PW
+Description: Palau
+Added: 2005-10-16
+%%
+Type: region
+Subtag: PY
+Description: Paraguay
+Added: 2005-10-16
+%%
+Type: region
+Subtag: QA
+Description: Qatar
+Added: 2005-10-16
+%%
+Type: region
+Subtag: QM..QZ
+Description: Private use
+Added: 2005-10-16
+%%
+Type: region
+Subtag: RE
+Description: Réunion
+Added: 2005-10-16
+%%
+Type: region
+Subtag: RO
+Description: Romania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: RS
+Description: Serbia
+Added: 2006-10-05
+%%
+Type: region
+Subtag: RU
+Description: Russian Federation
+Added: 2005-10-16
+%%
+Type: region
+Subtag: RW
+Description: Rwanda
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SA
+Description: Saudi Arabia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SB
+Description: Solomon Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SC
+Description: Seychelles
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SD
+Description: Sudan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SE
+Description: Sweden
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SG
+Description: Singapore
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SH
+Description: Saint Helena, Ascension and Tristan da Cunha
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SI
+Description: Slovenia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SJ
+Description: Svalbard and Jan Mayen
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SK
+Description: Slovakia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SL
+Description: Sierra Leone
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SM
+Description: San Marino
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SN
+Description: Senegal
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SO
+Description: Somalia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SR
+Description: Suriname
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SS
+Description: South Sudan
+Added: 2011-08-25
+%%
+Type: region
+Subtag: ST
+Description: Sao Tome and Principe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SU
+Description: Union of Soviet Socialist Republics
+Added: 2005-10-16
+Deprecated: 1992-08-30
+%%
+Type: region
+Subtag: SV
+Description: El Salvador
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SX
+Description: Sint Maarten (Dutch part)
+Added: 2011-01-07
+%%
+Type: region
+Subtag: SY
+Description: Syrian Arab Republic
+Added: 2005-10-16
+%%
+Type: region
+Subtag: SZ
+Description: Swaziland
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TA
+Description: Tristan da Cunha
+Added: 2009-07-29
+%%
+Type: region
+Subtag: TC
+Description: Turks and Caicos Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TD
+Description: Chad
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TF
+Description: French Southern Territories
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TG
+Description: Togo
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TH
+Description: Thailand
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TJ
+Description: Tajikistan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TK
+Description: Tokelau
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TL
+Description: Timor-Leste
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TM
+Description: Turkmenistan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TN
+Description: Tunisia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TO
+Description: Tonga
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TP
+Description: East Timor
+Added: 2005-10-16
+Deprecated: 2002-05-20
+Preferred-Value: TL
+%%
+Type: region
+Subtag: TR
+Description: Turkey
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TT
+Description: Trinidad and Tobago
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TV
+Description: Tuvalu
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TW
+Description: Taiwan, Province of China
+Added: 2005-10-16
+%%
+Type: region
+Subtag: TZ
+Description: United Republic of Tanzania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: UA
+Description: Ukraine
+Added: 2005-10-16
+%%
+Type: region
+Subtag: UG
+Description: Uganda
+Added: 2005-10-16
+%%
+Type: region
+Subtag: UM
+Description: United States Minor Outlying Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: US
+Description: United States
+Added: 2005-10-16
+%%
+Type: region
+Subtag: UY
+Description: Uruguay
+Added: 2005-10-16
+%%
+Type: region
+Subtag: UZ
+Description: Uzbekistan
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VA
+Description: Holy See (Vatican City State)
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VC
+Description: Saint Vincent and the Grenadines
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VE
+Description: Venezuela
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VG
+Description: British Virgin Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VI
+Description: U.S. Virgin Islands
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VN
+Description: Viet Nam
+Added: 2005-10-16
+%%
+Type: region
+Subtag: VU
+Description: Vanuatu
+Added: 2005-10-16
+%%
+Type: region
+Subtag: WF
+Description: Wallis and Futuna
+Added: 2005-10-16
+%%
+Type: region
+Subtag: WS
+Description: Samoa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: XA..XZ
+Description: Private use
+Added: 2005-10-16
+%%
+Type: region
+Subtag: YD
+Description: Democratic Yemen
+Added: 2005-10-16
+Deprecated: 1990-08-14
+Preferred-Value: YE
+%%
+Type: region
+Subtag: YE
+Description: Yemen
+Added: 2005-10-16
+%%
+Type: region
+Subtag: YT
+Description: Mayotte
+Added: 2005-10-16
+%%
+Type: region
+Subtag: YU
+Description: Yugoslavia
+Added: 2005-10-16
+Deprecated: 2003-07-23
+Comments: see BA, HR, ME, MK, RS, or SI
+%%
+Type: region
+Subtag: ZA
+Description: South Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ZM
+Description: Zambia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ZR
+Description: Zaire
+Added: 2005-10-16
+Deprecated: 1997-07-14
+Preferred-Value: CD
+%%
+Type: region
+Subtag: ZW
+Description: Zimbabwe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: ZZ
+Description: Private use
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 001
+Description: World
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 002
+Description: Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 003
+Description: North America
+Added: 2010-08-16
+Comments: Includes Northern America (021), Caribbean (029), and Central
+ America (013); see also 021
+%%
+Type: region
+Subtag: 005
+Description: South America
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 009
+Description: Oceania
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 011
+Description: Western Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 013
+Description: Central America
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 014
+Description: Eastern Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 015
+Description: Northern Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 017
+Description: Middle Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 018
+Description: Southern Africa
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 019
+Description: Americas
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 021
+Description: Northern America
+Added: 2005-10-16
+Comments: Does not include Caribbean (029) or Central America (013); see
+ also 003
+%%
+Type: region
+Subtag: 029
+Description: Caribbean
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 030
+Description: Eastern Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 034
+Description: Southern Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 035
+Description: South-Eastern Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 039
+Description: Southern Europe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 053
+Description: Australia and New Zealand
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 054
+Description: Melanesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 057
+Description: Micronesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 061
+Description: Polynesia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 142
+Description: Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 143
+Description: Central Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 145
+Description: Western Asia
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 150
+Description: Europe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 151
+Description: Eastern Europe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 154
+Description: Northern Europe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 155
+Description: Western Europe
+Added: 2005-10-16
+%%
+Type: region
+Subtag: 419
+Description: Latin America and the Caribbean
+Added: 2005-10-16
+%%
+Type: variant
+Subtag: 1606nict
+Description: Late Middle French (to 1606)
+Added: 2007-03-20
+Prefix: frm
+Comments: 16th century French as in Jean Nicot, "Thresor de la langue
+ francoyse", 1606, but also including some French similar to that of
+ Rabelais
+%%
+Type: variant
+Subtag: 1694acad
+Description: Early Modern French
+Added: 2007-03-20
+Prefix: fr
+Comments: 17th century French, as catalogued in the "Dictionnaire de
+ l'académie françoise", 4eme ed. 1694; frequently includes
+ elements of Middle French, as this is a transitional period
+%%
+Type: variant
+Subtag: 1901
+Description: Traditional German orthography
+Added: 2005-10-16
+Prefix: de
+%%
+Type: variant
+Subtag: 1959acad
+Description: "Academic" ("governmental") variant of Belarusian as
+ codified in 1959
+Added: 2008-09-30
+Prefix: be
+%%
+Type: variant
+Subtag: 1994
+Description: Standardized Resian orthography
+Added: 2007-07-28
+Prefix: sl-rozaj
+Prefix: sl-rozaj-biske
+Prefix: sl-rozaj-njiva
+Prefix: sl-rozaj-osojs
+Prefix: sl-rozaj-solba
+Comments: For standardized Resian an orthography was published in 1994.
+%%
+Type: variant
+Subtag: 1996
+Description: German orthography of 1996
+Added: 2005-10-16
+Prefix: de
+%%
+Type: variant
+Subtag: alalc97
+Description: ALA-LC Romanization, 1997 edition
+Added: 2009-12-09
+Comments: Romanizations recommended by the American Library Association
+ and the Library of Congress, in "ALA-LC Romanization Tables:
+ Transliteration Schemes for Non-Roman Scripts" (1997), ISBN
+ 978-0-8444-0940-5.
+%%
+Type: variant
+Subtag: aluku
+Description: Aluku dialect
+Description: Boni dialect
+Added: 2009-09-05
+Prefix: djk
+Comments: Aluku dialect of the "Busi Nenge Tongo" English-based Creole
+ continuum in Eastern Suriname and Western French Guiana
+%%
+Type: variant
+Subtag: arevela
+Description: Eastern Armenian
+Added: 2006-09-18
+Prefix: hy
+%%
+Type: variant
+Subtag: arevmda
+Description: Western Armenian
+Added: 2006-09-18
+Prefix: hy
+%%
+Type: variant
+Subtag: baku1926
+Description: Unified Turkic Latin Alphabet (Historical)
+Added: 2007-04-18
+Prefix: az
+Prefix: ba
+Prefix: crh
+Prefix: kk
+Prefix: krc
+Prefix: ky
+Prefix: sah
+Prefix: tk
+Prefix: tt
+Prefix: uz
+Comments: Denotes alphabet used in Turkic republics/regions of the
+ former USSR in late 1920s, and throughout 1930s, which aspired to
+ represent equivalent phonemes in a unified fashion. Also known as: New
+ Turkic Alphabet; Birlәşdirilmiş Jeni Tyrk
+ Әlifbasь (Birlesdirilmis Jeni Tyrk Elifbasi);
+ Jaŋalif (Janalif).
+%%
+Type: variant
+Subtag: bauddha
+Description: Buddhist Hybrid Sanskrit
+Added: 2010-07-28
+Prefix: sa
+%%
+Type: variant
+Subtag: biscayan
+Description: Biscayan dialect of Basque
+Added: 2010-04-13
+Prefix: eu
+%%
+Type: variant
+Subtag: biske
+Description: The San Giorgio dialect of Resian
+Description: The Bila dialect of Resian
+Added: 2007-07-05
+Prefix: sl-rozaj
+Comments: The dialect of San Giorgio/Bila is one of the four major local
+ dialects of Resian
+%%
+Type: variant
+Subtag: boont
+Description: Boontling
+Added: 2006-09-18
+Prefix: en
+Comments: Jargon embedded in American English
+%%
+Type: variant
+Subtag: fonipa
+Description: International Phonetic Alphabet
+Added: 2006-12-11
+%%
+Type: variant
+Subtag: fonupa
+Description: Uralic Phonetic Alphabet
+Added: 2006-12-11
+%%
+Type: variant
+Subtag: fonxsamp
+Description: X-SAMPA transcription
+Added: 2010-10-23
+Comments: Indicates that the content is transcribed according to X-SAMPA
+%%
+Type: variant
+Subtag: hepburn
+Description: Hepburn romanization
+Added: 2009-10-01
+Prefix: ja-Latn
+%%
+Type: variant
+Subtag: heploc
+Description: Hepburn romanization, Library of Congress method
+Added: 2009-10-01
+Deprecated: 2010-02-07
+Preferred-Value: alalc97
+Prefix: ja-Latn-hepburn
+Comments: Preferred tag is ja-Latn-alalc97
+%%
+Type: variant
+Subtag: hognorsk
+Description: Norwegian in Høgnorsk (High Norwegian) orthography
+Added: 2010-01-02
+Prefix: nn
+Comments: Norwegian following Ivar Aasen's orthographical principles,
+ including modern usage.
+%%
+Type: variant
+Subtag: itihasa
+Description: Epic Sanskrit
+Added: 2010-07-28
+Prefix: sa
+%%
+Type: variant
+Subtag: jauer
+Description: Jauer dialect of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: The spoken dialect of the Val Müstair, which has no written
+ standard.
+%%
+Type: variant
+Subtag: jyutping
+Description: Jyutping Cantonese Romanization
+Added: 2010-10-23
+Prefix: yue
+Comments: Jyutping romanization of Cantonese
+%%
+Type: variant
+Subtag: kkcor
+Description: Common Cornish orthography of Revived Cornish
+Added: 2008-10-14
+Prefix: kw
+%%
+Type: variant
+Subtag: laukika
+Description: Classical Sanskrit
+Added: 2010-07-28
+Prefix: sa
+%%
+Type: variant
+Subtag: lipaw
+Description: The Lipovaz dialect of Resian
+Description: The Lipovec dialect of Resian
+Added: 2007-08-11
+Prefix: sl-rozaj
+Comments: The dialect of Lipovaz/Lipovec is one of the minor local
+ dialects of Resian
+%%
+Type: variant
+Subtag: luna1918
+Description: Post-1917 Russian orthography
+Added: 2010-10-10
+Prefix: ru
+Comments: Russian orthography as established by the 1917/1918
+ orthographic reforms
+%%
+Type: variant
+Subtag: monoton
+Description: Monotonic Greek
+Added: 2006-12-11
+Prefix: el
+%%
+Type: variant
+Subtag: ndyuka
+Description: Ndyuka dialect
+Description: Aukan dialect
+Added: 2009-09-05
+Prefix: djk
+Comments: Ndyuka dialect of the "Busi Nenge Tongo" English-based
+ Creole continuum in Eastern Suriname and Western French Guiana
+%%
+Type: variant
+Subtag: nedis
+Description: Natisone dialect
+Description: Nadiza dialect
+Added: 2005-10-16
+Prefix: sl
+%%
+Type: variant
+Subtag: njiva
+Description: The Gniva dialect of Resian
+Description: The Njiva dialect of Resian
+Added: 2007-07-05
+Prefix: sl-rozaj
+Comments: The dialect of Gniva/Njiva is one of the four major local
+ dialects of Resian
+%%
+Type: variant
+Subtag: osojs
+Description: The Oseacco dialect of Resian
+Description: The Osojane dialect of Resian
+Added: 2007-07-05
+Prefix: sl-rozaj
+Comments: The dialect of Oseacco/Osojane is one of the four major local
+ dialects of Resian
+%%
+Type: variant
+Subtag: pamaka
+Description: Pamaka dialect
+Added: 2009-09-05
+Prefix: djk
+Comments: Pamaka dialect of the "Busi Nenge Tongo" English-based
+ Creole continuum in Eastern Suriname and Western French Guiana
+%%
+Type: variant
+Subtag: petr1708
+Description: Petrine orthography
+Added: 2010-10-10
+Prefix: ru
+Comments: Russian orthography from the Petrine orthographic reforms of
+ 1708 to the 1917 orthographic reform
+%%
+Type: variant
+Subtag: pinyin
+Description: Pinyin romanization
+Added: 2008-10-14
+Prefix: zh-Latn
+Prefix: bo-Latn
+%%
+Type: variant
+Subtag: polyton
+Description: Polytonic Greek
+Added: 2006-12-11
+Prefix: el
+%%
+Type: variant
+Subtag: puter
+Description: Puter idiom of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: Puter is one of the five traditional written standards or
+ "idioms" of the Romansh language.
+%%
+Type: variant
+Subtag: rozaj
+Description: Resian
+Description: Resianic
+Description: Rezijan
+Added: 2005-10-16
+Prefix: sl
+%%
+Type: variant
+Subtag: rumgr
+Description: Rumantsch Grischun
+Added: 2010-06-29
+Prefix: rm
+Comments: Supraregional Romansh written standard
+%%
+Type: variant
+Subtag: scotland
+Description: Scottish Standard English
+Added: 2007-08-31
+Prefix: en
+%%
+Type: variant
+Subtag: scouse
+Description: Scouse
+Added: 2006-09-18
+Prefix: en
+Comments: English Liverpudlian dialect known as 'Scouse'
+%%
+Type: variant
+Subtag: solba
+Description: The Stolvizza dialect of Resian
+Description: The Solbica dialect of Resian
+Added: 2007-07-05
+Prefix: sl-rozaj
+Comments: The dialect of Stolvizza/Solbica is one of the four major
+ local dialects of Resian
+%%
+Type: variant
+Subtag: surmiran
+Description: Surmiran idiom of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: Surmiran is one of the five traditional written standards or
+ "idioms" of the Romansh language.
+%%
+Type: variant
+Subtag: sursilv
+Description: Sursilvan idiom of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: Sursilvan is one of the five traditional written standards or
+ "idioms" of the Romansh language.
+%%
+Type: variant
+Subtag: sutsilv
+Description: Sutsilvan idiom of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: Sutsilvan is one of the five traditional written standards or
+ "idioms" of the Romansh language.
+%%
+Type: variant
+Subtag: tarask
+Description: Belarusian in Taraskievica orthography
+Added: 2007-04-27
+Prefix: be
+Comments: The subtag represents Branislau Taraskievic's Belarusian
+ orthography as published in "Bielaruski klasycny pravapis" by Juras
+ Buslakou, Vincuk Viacorka, Zmicier Sanko, and Zmicier Sauka (Vilnia-
+ Miensk 2005).
+%%
+Type: variant
+Subtag: uccor
+Description: Unified Cornish orthography of Revived Cornish
+Added: 2008-10-14
+Prefix: kw
+%%
+Type: variant
+Subtag: ucrcor
+Description: Unified Cornish Revised orthography of Revived Cornish
+Added: 2008-10-14
+Prefix: kw
+%%
+Type: variant
+Subtag: ulster
+Description: Ulster dialect of Scots
+Added: 2010-04-10
+Prefix: sco
+%%
+Type: variant
+Subtag: vaidika
+Description: Vedic Sanskrit
+Added: 2010-07-28
+Prefix: sa
+Comments: The most ancient dialect of Sanskrit used in verse and prose
+ composed until about the 4th century B.C.E.
+%%
+Type: variant
+Subtag: valencia
+Description: Valencian
+Added: 2007-03-06
+Prefix: ca
+Comments: Variety spoken in the "Comunidad Valenciana" region of Spain,
+ where it is co-official with Spanish.
+%%
+Type: variant
+Subtag: vallader
+Description: Vallader idiom of Romansh
+Added: 2010-06-29
+Prefix: rm
+Comments: Vallader is one of the five traditional written standards or
+ "idioms" of the Romansh language.
+%%
+Type: variant
+Subtag: wadegile
+Description: Wade-Giles romanization
+Added: 2008-10-03
+Prefix: zh-Latn
+%%
+Type: grandfathered
+Tag: art-lojban
+Description: Lojban
+Added: 2001-11-11
+Deprecated: 2003-09-02
+Preferred-Value: jbo
+%%
+Type: grandfathered
+Tag: cel-gaulish
+Description: Gaulish
+Added: 2001-05-25
+%%
+Type: grandfathered
+Tag: en-GB-oed
+Description: English, Oxford English Dictionary spelling
+Added: 2003-07-09
+%%
+Type: grandfathered
+Tag: i-ami
+Description: Amis
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: ami
+%%
+Type: grandfathered
+Tag: i-bnn
+Description: Bunun
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: bnn
+%%
+Type: grandfathered
+Tag: i-default
+Description: Default Language
+Added: 1998-03-10
+%%
+Type: grandfathered
+Tag: i-enochian
+Description: Enochian
+Added: 2002-07-03
+%%
+Type: grandfathered
+Tag: i-hak
+Description: Hakka
+Added: 1999-01-31
+Deprecated: 2000-01-10
+Preferred-Value: hak
+%%
+Type: grandfathered
+Tag: i-klingon
+Description: Klingon
+Added: 1999-05-26
+Deprecated: 2004-02-24
+Preferred-Value: tlh
+%%
+Type: grandfathered
+Tag: i-lux
+Description: Luxembourgish
+Added: 1997-09-19
+Deprecated: 1998-09-09
+Preferred-Value: lb
+%%
+Type: grandfathered
+Tag: i-mingo
+Description: Mingo
+Added: 1997-09-19
+%%
+Type: grandfathered
+Tag: i-navajo
+Description: Navajo
+Added: 1997-09-19
+Deprecated: 2000-02-18
+Preferred-Value: nv
+%%
+Type: grandfathered
+Tag: i-pwn
+Description: Paiwan
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: pwn
+%%
+Type: grandfathered
+Tag: i-tao
+Description: Tao
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: tao
+%%
+Type: grandfathered
+Tag: i-tay
+Description: Tayal
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: tay
+%%
+Type: grandfathered
+Tag: i-tsu
+Description: Tsou
+Added: 1999-05-25
+Deprecated: 2009-07-29
+Preferred-Value: tsu
+%%
+Type: grandfathered
+Tag: no-bok
+Description: Norwegian Bokmal
+Added: 1995-08-23
+Deprecated: 2000-02-18
+Preferred-Value: nb
+%%
+Type: grandfathered
+Tag: no-nyn
+Description: Norwegian Nynorsk
+Added: 1995-08-23
+Deprecated: 2000-02-18
+Preferred-Value: nn
+%%
+Type: grandfathered
+Tag: sgn-BE-FR
+Description: Belgian-French Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: sfb
+%%
+Type: grandfathered
+Tag: sgn-BE-NL
+Description: Belgian-Flemish Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: vgt
+%%
+Type: grandfathered
+Tag: sgn-CH-DE
+Description: Swiss German Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: sgg
+%%
+Type: grandfathered
+Tag: zh-guoyu
+Description: Mandarin or Standard Chinese
+Added: 1999-12-18
+Deprecated: 2005-07-15
+Preferred-Value: cmn
+%%
+Type: grandfathered
+Tag: zh-hakka
+Description: Hakka
+Added: 1999-12-18
+Deprecated: 2009-07-29
+Preferred-Value: hak
+%%
+Type: grandfathered
+Tag: zh-min
+Description: Min, Fuzhou, Hokkien, Amoy, or Taiwanese
+Added: 1999-12-18
+Deprecated: 2009-07-29
+%%
+Type: grandfathered
+Tag: zh-min-nan
+Description: Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern
+ Fujian, Hoklo, Southern Fukien, Ho-lo
+Added: 2001-03-26
+Deprecated: 2009-07-29
+Preferred-Value: nan
+%%
+Type: grandfathered
+Tag: zh-xiang
+Description: Xiang or Hunanese
+Added: 1999-12-18
+Deprecated: 2009-07-29
+Preferred-Value: hsn
+%%
+Type: redundant
+Tag: az-Arab
+Description: Azerbaijani in Arabic script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: az-Cyrl
+Description: Azerbaijani in Cyrillic script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: az-Latn
+Description: Azerbaijani in Latin script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: be-Latn
+Description: Belarusian in Latin script
+Added: 2005-01-06
+%%
+Type: redundant
+Tag: bs-Cyrl
+Description: Bosnian in Cyrillic script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: bs-Latn
+Description: Bosnian in Latin script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: de-1901
+Description: German, traditional orthography
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-1996
+Description: German, orthography of 1996
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-AT-1901
+Description: German, Austrian variant, traditional orthography
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-AT-1996
+Description: German, Austrian variant, orthography of 1996
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-CH-1901
+Description: German, Swiss variant, traditional orthography
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-CH-1996
+Description: German, Swiss variant, orthography of 1996
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-DE-1901
+Description: German, German variant, traditional orthography
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: de-DE-1996
+Description: German, German variant, orthography of 1996
+Added: 2001-07-17
+%%
+Type: redundant
+Tag: en-boont
+Description: Boontling
+Added: 2003-02-14
+%%
+Type: redundant
+Tag: en-scouse
+Description: Scouse
+Added: 2000-05-25
+%%
+Type: redundant
+Tag: es-419
+Description: Latin American Spanish
+Added: 2005-07-15
+%%
+Type: redundant
+Tag: iu-Cans
+Description: Inuktitut in Canadian Aboriginal Syllabic script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: iu-Latn
+Description: Inuktitut in Latin script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: mn-Cyrl
+Description: Mongolian in Cyrillic script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: mn-Mong
+Description: Mongolian in Mongolian script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: sgn-BR
+Description: Brazilian Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: bzs
+%%
+Type: redundant
+Tag: sgn-CO
+Description: Colombian Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: csn
+%%
+Type: redundant
+Tag: sgn-DE
+Description: German Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: gsg
+%%
+Type: redundant
+Tag: sgn-DK
+Description: Danish Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: dsl
+%%
+Type: redundant
+Tag: sgn-ES
+Description: Spanish Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: ssp
+%%
+Type: redundant
+Tag: sgn-FR
+Description: French Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: fsl
+%%
+Type: redundant
+Tag: sgn-GB
+Description: British Sign Language
+Added: 2001-03-02
+Deprecated: 2009-07-29
+Preferred-Value: bfi
+%%
+Type: redundant
+Tag: sgn-GR
+Description: Greek Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: gss
+%%
+Type: redundant
+Tag: sgn-IE
+Description: Irish Sign Language
+Added: 2001-03-02
+Deprecated: 2009-07-29
+Preferred-Value: isg
+%%
+Type: redundant
+Tag: sgn-IT
+Description: Italian Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: ise
+%%
+Type: redundant
+Tag: sgn-JP
+Description: Japanese Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: jsl
+%%
+Type: redundant
+Tag: sgn-MX
+Description: Mexican Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: mfs
+%%
+Type: redundant
+Tag: sgn-NI
+Description: Nicaraguan Sign Language
+Added: 2001-03-02
+Deprecated: 2009-07-29
+Preferred-Value: ncs
+%%
+Type: redundant
+Tag: sgn-NL
+Description: Dutch Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: dse
+%%
+Type: redundant
+Tag: sgn-NO
+Description: Norwegian Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: nsl
+%%
+Type: redundant
+Tag: sgn-PT
+Description: Portuguese Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: psr
+%%
+Type: redundant
+Tag: sgn-SE
+Description: Swedish Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: swl
+%%
+Type: redundant
+Tag: sgn-US
+Description: American Sign Language
+Added: 2001-03-02
+Deprecated: 2009-07-29
+Preferred-Value: ase
+%%
+Type: redundant
+Tag: sgn-ZA
+Description: South African Sign Language
+Added: 2001-11-11
+Deprecated: 2009-07-29
+Preferred-Value: sfs
+%%
+Type: redundant
+Tag: sl-nedis
+Description: Natisone dialect, Nadiza dialect
+Added: 2004-06-01
+%%
+Type: redundant
+Tag: sl-rozaj
+Description: Resian, Resianic, Rezijan
+Added: 2003-10-09
+%%
+Type: redundant
+Tag: sr-Cyrl
+Description: Serbian in Cyrillic script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: sr-Latn
+Description: Serbian in Latin script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: tg-Arab
+Description: Tajik in Arabic script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: tg-Cyrl
+Description: Tajik in Cyrillic script
+Added: 2005-02-17
+%%
+Type: redundant
+Tag: uz-Cyrl
+Description: Uzbek in Cyrillic script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: uz-Latn
+Description: Uzbek in Latin script
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: yi-Latn
+Description: Yiddish, in Latin script
+Added: 2003-01-07
+%%
+Type: redundant
+Tag: zh-cmn
+Description: Mandarin Chinese
+Added: 2005-07-15
+Deprecated: 2009-07-29
+Preferred-Value: cmn
+%%
+Type: redundant
+Tag: zh-cmn-Hans
+Description: Mandarin Chinese (Simplified)
+Added: 2005-07-15
+Deprecated: 2009-07-29
+Preferred-Value: cmn-Hans
+%%
+Type: redundant
+Tag: zh-cmn-Hant
+Description: Mandarin Chinese (Traditional)
+Added: 2005-07-15
+Deprecated: 2009-07-29
+Preferred-Value: cmn-Hant
+%%
+Type: redundant
+Tag: zh-gan
+Description: Kan or Gan
+Added: 1999-12-18
+Deprecated: 2009-07-29
+Preferred-Value: gan
+%%
+Type: redundant
+Tag: zh-Hans
+Description: simplified Chinese
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: zh-Hans-CN
+Description: PRC Mainland Chinese in simplified script
+Added: 2005-04-13
+%%
+Type: redundant
+Tag: zh-Hans-HK
+Description: Hong Kong Chinese in simplified script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hans-MO
+Description: Macao Chinese in simplified script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hans-SG
+Description: Singapore Chinese in simplified script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hans-TW
+Description: Taiwan Chinese in simplified script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hant
+Description: traditional Chinese
+Added: 2003-05-30
+%%
+Type: redundant
+Tag: zh-Hant-CN
+Description: PRC Mainland Chinese in traditional script
+Added: 2005-04-13
+%%
+Type: redundant
+Tag: zh-Hant-HK
+Description: Hong Kong Chinese in traditional script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hant-MO
+Description: Macao Chinese in traditional script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hant-SG
+Description: Singapore Chinese in traditional script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-Hant-TW
+Description: Taiwan Chinese in traditional script
+Added: 2005-04-11
+%%
+Type: redundant
+Tag: zh-wuu
+Description: Shanghaiese or Wu
+Added: 1999-12-18
+Deprecated: 2009-07-29
+Preferred-Value: wuu
+%%
+Type: redundant
+Tag: zh-yue
+Description: Cantonese
+Added: 1999-12-18
+Deprecated: 2009-07-29
+Preferred-Value: yue
diff --git a/tp/maintain/lib/README b/tp/maintain/lib/README
new file mode 100644
index 0000000..ac36619
--- /dev/null
+++ b/tp/maintain/lib/README
@@ -0,0 +1,12 @@
+We ship this version of libintl-perl to be sure that it is available, and
+also to have a consistent behaviour (different gettext implementations do
+things differently). This was downloaded from
+http://search.cpan.org/CPAN/authors/id/G/GU/GUIDO/libintl-perl-1.20.tar.gz
+in November, 2009.
+
+Same with Unicode-EastAsianWidth. Downloaded from
+http://search.cpan.org/CPAN/authors/id/A/AU/AUDREYT/Unicode-EastAsianWidth-1.30.tar.gz
+in December, 2009.
+
+Text-Unidecode downloaded in March, 2011 from
+http://search.cpan.org/CPAN/authors/id/S/SB/SBURKE/Text-Unidecode-0.04.tar.gz
diff --git a/tp/maintain/lib/Text-Unidecode/ChangeLog b/tp/maintain/lib/Text-Unidecode/ChangeLog
new file mode 100644
index 0000000..2c3a233
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/ChangeLog
@@ -0,0 +1,13 @@
+Revision history for Perl module Text::Unidecode
+ Time-stamp: "2001-07-14 02:28:13 MDT"
+
+2001-07-14 Sean M. Burke sburke@cpan.org
+
+ * Release 0.04 -- forgot to put TODO.txt in 0.03. Now including
+ it. That's the only change.
+
+2001-07-14 Sean M. Burke sburke@cpan.org
+
+ * Release 0.03 -- first public release.
+
+[END OF CHANGELOG]
diff --git a/tp/maintain/lib/Text-Unidecode/MANIFEST b/tp/maintain/lib/Text-Unidecode/MANIFEST
new file mode 100644
index 0000000..737aae3
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/MANIFEST
@@ -0,0 +1,188 @@
+ChangeLog
+MANIFEST
+MANIFEST.SKIP
+Makefile.PL
+README
+TODO.txt
+lib/Text/Unidecode.pm
+lib/Text/Unidecode/x00.pm
+lib/Text/Unidecode/x01.pm
+lib/Text/Unidecode/x02.pm
+lib/Text/Unidecode/x03.pm
+lib/Text/Unidecode/x04.pm
+lib/Text/Unidecode/x05.pm
+lib/Text/Unidecode/x06.pm
+lib/Text/Unidecode/x07.pm
+lib/Text/Unidecode/x09.pm
+lib/Text/Unidecode/x0a.pm
+lib/Text/Unidecode/x0b.pm
+lib/Text/Unidecode/x0c.pm
+lib/Text/Unidecode/x0d.pm
+lib/Text/Unidecode/x0e.pm
+lib/Text/Unidecode/x0f.pm
+lib/Text/Unidecode/x10.pm
+lib/Text/Unidecode/x11.pm
+lib/Text/Unidecode/x12.pm
+lib/Text/Unidecode/x13.pm
+lib/Text/Unidecode/x14.pm
+lib/Text/Unidecode/x15.pm
+lib/Text/Unidecode/x16.pm
+lib/Text/Unidecode/x17.pm
+lib/Text/Unidecode/x18.pm
+lib/Text/Unidecode/x1e.pm
+lib/Text/Unidecode/x1f.pm
+lib/Text/Unidecode/x20.pm
+lib/Text/Unidecode/x21.pm
+lib/Text/Unidecode/x22.pm
+lib/Text/Unidecode/x23.pm
+lib/Text/Unidecode/x24.pm
+lib/Text/Unidecode/x25.pm
+lib/Text/Unidecode/x26.pm
+lib/Text/Unidecode/x27.pm
+lib/Text/Unidecode/x28.pm
+lib/Text/Unidecode/x2e.pm
+lib/Text/Unidecode/x2f.pm
+lib/Text/Unidecode/x30.pm
+lib/Text/Unidecode/x31.pm
+lib/Text/Unidecode/x32.pm
+lib/Text/Unidecode/x33.pm
+lib/Text/Unidecode/x4d.pm
+lib/Text/Unidecode/x4e.pm
+lib/Text/Unidecode/x4f.pm
+lib/Text/Unidecode/x50.pm
+lib/Text/Unidecode/x51.pm
+lib/Text/Unidecode/x52.pm
+lib/Text/Unidecode/x53.pm
+lib/Text/Unidecode/x54.pm
+lib/Text/Unidecode/x55.pm
+lib/Text/Unidecode/x56.pm
+lib/Text/Unidecode/x57.pm
+lib/Text/Unidecode/x58.pm
+lib/Text/Unidecode/x59.pm
+lib/Text/Unidecode/x5a.pm
+lib/Text/Unidecode/x5b.pm
+lib/Text/Unidecode/x5c.pm
+lib/Text/Unidecode/x5d.pm
+lib/Text/Unidecode/x5e.pm
+lib/Text/Unidecode/x5f.pm
+lib/Text/Unidecode/x60.pm
+lib/Text/Unidecode/x61.pm
+lib/Text/Unidecode/x62.pm
+lib/Text/Unidecode/x63.pm
+lib/Text/Unidecode/x64.pm
+lib/Text/Unidecode/x65.pm
+lib/Text/Unidecode/x66.pm
+lib/Text/Unidecode/x67.pm
+lib/Text/Unidecode/x68.pm
+lib/Text/Unidecode/x69.pm
+lib/Text/Unidecode/x6a.pm
+lib/Text/Unidecode/x6b.pm
+lib/Text/Unidecode/x6c.pm
+lib/Text/Unidecode/x6d.pm
+lib/Text/Unidecode/x6e.pm
+lib/Text/Unidecode/x6f.pm
+lib/Text/Unidecode/x70.pm
+lib/Text/Unidecode/x71.pm
+lib/Text/Unidecode/x72.pm
+lib/Text/Unidecode/x73.pm
+lib/Text/Unidecode/x74.pm
+lib/Text/Unidecode/x75.pm
+lib/Text/Unidecode/x76.pm
+lib/Text/Unidecode/x77.pm
+lib/Text/Unidecode/x78.pm
+lib/Text/Unidecode/x79.pm
+lib/Text/Unidecode/x7a.pm
+lib/Text/Unidecode/x7b.pm
+lib/Text/Unidecode/x7c.pm
+lib/Text/Unidecode/x7d.pm
+lib/Text/Unidecode/x7e.pm
+lib/Text/Unidecode/x7f.pm
+lib/Text/Unidecode/x80.pm
+lib/Text/Unidecode/x81.pm
+lib/Text/Unidecode/x82.pm
+lib/Text/Unidecode/x83.pm
+lib/Text/Unidecode/x84.pm
+lib/Text/Unidecode/x85.pm
+lib/Text/Unidecode/x86.pm
+lib/Text/Unidecode/x87.pm
+lib/Text/Unidecode/x88.pm
+lib/Text/Unidecode/x89.pm
+lib/Text/Unidecode/x8a.pm
+lib/Text/Unidecode/x8b.pm
+lib/Text/Unidecode/x8c.pm
+lib/Text/Unidecode/x8d.pm
+lib/Text/Unidecode/x8e.pm
+lib/Text/Unidecode/x8f.pm
+lib/Text/Unidecode/x90.pm
+lib/Text/Unidecode/x91.pm
+lib/Text/Unidecode/x92.pm
+lib/Text/Unidecode/x93.pm
+lib/Text/Unidecode/x94.pm
+lib/Text/Unidecode/x95.pm
+lib/Text/Unidecode/x96.pm
+lib/Text/Unidecode/x97.pm
+lib/Text/Unidecode/x98.pm
+lib/Text/Unidecode/x99.pm
+lib/Text/Unidecode/x9a.pm
+lib/Text/Unidecode/x9b.pm
+lib/Text/Unidecode/x9c.pm
+lib/Text/Unidecode/x9d.pm
+lib/Text/Unidecode/x9e.pm
+lib/Text/Unidecode/x9f.pm
+lib/Text/Unidecode/xa0.pm
+lib/Text/Unidecode/xa1.pm
+lib/Text/Unidecode/xa2.pm
+lib/Text/Unidecode/xa3.pm
+lib/Text/Unidecode/xa4.pm
+lib/Text/Unidecode/xac.pm
+lib/Text/Unidecode/xad.pm
+lib/Text/Unidecode/xae.pm
+lib/Text/Unidecode/xaf.pm
+lib/Text/Unidecode/xb0.pm
+lib/Text/Unidecode/xb1.pm
+lib/Text/Unidecode/xb2.pm
+lib/Text/Unidecode/xb3.pm
+lib/Text/Unidecode/xb4.pm
+lib/Text/Unidecode/xb5.pm
+lib/Text/Unidecode/xb6.pm
+lib/Text/Unidecode/xb7.pm
+lib/Text/Unidecode/xb8.pm
+lib/Text/Unidecode/xb9.pm
+lib/Text/Unidecode/xba.pm
+lib/Text/Unidecode/xbb.pm
+lib/Text/Unidecode/xbc.pm
+lib/Text/Unidecode/xbd.pm
+lib/Text/Unidecode/xbe.pm
+lib/Text/Unidecode/xbf.pm
+lib/Text/Unidecode/xc0.pm
+lib/Text/Unidecode/xc1.pm
+lib/Text/Unidecode/xc2.pm
+lib/Text/Unidecode/xc3.pm
+lib/Text/Unidecode/xc4.pm
+lib/Text/Unidecode/xc5.pm
+lib/Text/Unidecode/xc6.pm
+lib/Text/Unidecode/xc7.pm
+lib/Text/Unidecode/xc8.pm
+lib/Text/Unidecode/xc9.pm
+lib/Text/Unidecode/xca.pm
+lib/Text/Unidecode/xcb.pm
+lib/Text/Unidecode/xcc.pm
+lib/Text/Unidecode/xcd.pm
+lib/Text/Unidecode/xce.pm
+lib/Text/Unidecode/xcf.pm
+lib/Text/Unidecode/xd0.pm
+lib/Text/Unidecode/xd1.pm
+lib/Text/Unidecode/xd2.pm
+lib/Text/Unidecode/xd3.pm
+lib/Text/Unidecode/xd4.pm
+lib/Text/Unidecode/xd5.pm
+lib/Text/Unidecode/xd6.pm
+lib/Text/Unidecode/xd7.pm
+lib/Text/Unidecode/xf9.pm
+lib/Text/Unidecode/xfa.pm
+lib/Text/Unidecode/xfb.pm
+lib/Text/Unidecode/xfc.pm
+lib/Text/Unidecode/xfd.pm
+lib/Text/Unidecode/xfe.pm
+lib/Text/Unidecode/xff.pm
+test.pl
diff --git a/tp/maintain/lib/Text-Unidecode/MANIFEST.SKIP b/tp/maintain/lib/Text-Unidecode/MANIFEST.SKIP
new file mode 100644
index 0000000..053dc4c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/MANIFEST.SKIP
@@ -0,0 +1,3 @@
+Makefile$
+~$
+.tar.gz$
diff --git a/tp/maintain/lib/Text-Unidecode/Makefile.PL b/tp/maintain/lib/Text-Unidecode/Makefile.PL
new file mode 100644
index 0000000..509371e
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/Makefile.PL
@@ -0,0 +1,20 @@
+require 5.006;
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+WriteMakefile(
+ 'NAME' => 'Text::Unidecode',
+ 'VERSION_FROM' => 'lib/Text/Unidecode.pm', # finds $VERSION
+ 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+);
+
+package MY;
+
+sub libscan
+{ # Determine things that should *not* be installed
+ my($self, $path) = @_;
+ return '' if $path =~ m/~/;
+ $path;
+}
+
+__END__
diff --git a/tp/maintain/lib/Text-Unidecode/README b/tp/maintain/lib/Text-Unidecode/README
new file mode 100644
index 0000000..d742034
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/README
@@ -0,0 +1,98 @@
+README for Text::Unidecode
+ Time-stamp: "2001-07-14 02:03:33 MDT"
+
+ Text::Unidecode
+
+NAME
+ Text::Unidecode -- US-ASCII transliterations of Unicode text
+
+SYNOPSIS
+ use utf8;
+ use Text::Unidecode;
+ print unidecode(
+ "\x{5317}\x{4EB0}\n"
+ # those are the Chinese characters for Beijing
+ );
+
+ # That prints: Bei Jing
+
+DESCRIPTION
+
+ It often happens that you have non-Roman text data in Unicode, but
+ you can't display it -- usually because you're trying to show it
+ to a user via an application that doesn't support Unicode, or
+ because the fonts you need aren't accessible. You could represent
+ the Unicode characters as "???????" or "\15BA\15A0\1610...", but
+ that's nearly useless to the user who actually wants to read what
+ the text says.
+
+ What Text::Unidecode provides is a function, `unidecode(...)' that
+ takes Unicode data and tries to represent it in US-ASCII
+ characters (i.e., the universally displayable characters between
+ 0x00 and 0x7F). The representation is almost always an attempt at
+ *transliteration* -- i.e., conveying, in Roman letters, the
+ pronunciation expressed by the text in some other writing
+ system. (See the example in the synopsis.)
+
+
+See the POD for more information.
+
+
+REQUIREMENTS
+
+This module requires Perl 5.6.0 or higher. (Earlier Perls apparently
+lack the "use utf8" pragma that Text::Unidecode needs.)
+I have also observed that 5.6.0's Unicode support is shakey; strongly
+consider upgrading to 5.6.1 at least.
+
+
+
+INSTALLATION
+
+You install Text::Unidecode, as you would install any perl module
+library, by running these commands:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+If you want to install a private copy of Text::Unidecode in your home
+directory, then you should try to produce the initial Makefile with
+something like this command:
+
+ perl Makefile.PL LIB=~/perl
+
+See perldoc perlmodinstall for more information on installing modules.
+
+
+DOCUMENTATION
+
+POD-format documentation is included in Unidecode.pm. POD is readable
+with the 'perldoc' utility. See ChangeLog for recent changes.
+
+
+SUPPORT
+
+Questions, bug reports, useful code bits, and suggestions for
+Text::Unidecode should just be sent to me at sburke@cpan.org
+
+
+AVAILABILITY
+
+The latest version of Text::Unidecode is available from the
+Comprehensive Perl Archive Network (CPAN). Visit
+<http://www.perl.com/CPAN/> to find a CPAN site near you.
+
+
+COPYRIGHT
+
+Copyright 2001, Sean M. Burke <sburke@cpan.org>, all rights reserved.
+
+The programs and documentation in this dist are distributed in the
+hope that they will be useful, but without any warranty; without even
+the implied warranty of merchantability or fitness for a particular
+purpose.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
diff --git a/tp/maintain/lib/Text-Unidecode/TODO.txt b/tp/maintain/lib/Text-Unidecode/TODO.txt
new file mode 100644
index 0000000..052c19d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/TODO.txt
@@ -0,0 +1,103 @@
+Text::Unidecode Transliteration Notes -- TODO FILE
+
+
+
+============================== BLOCK 03 ==============================
+
+Coptic things I'm unsure of: Khei=kh, Gangia=g, Shima=ch, Dei=ti.
+
+
+============================== BLOCK 09 ==============================
+
+What's an isshar? (09FA = "bengali isshar")
+
+
+============================== BLOCK 0b ==============================
+
+What's an isshar? (0B70 = "oriya isshar")
+
+
+============================== BLOCK 0e ==============================
+
+What is 0E4C = "thai character thanthakhat" ?
+
+What is 0E4E = "thai character yamakkan" ?
+
+
+============================== BLOCK 0f ==============================
+
+Various questions to do with Tibetan (0f00-0fff)...
+
+A lot of these characters end up as "". What to do with them?
+
+How to represent these Astrological signs, 0F15-0F1F ?
+
+What is a 0F38 = "Tibetan mark Che Mgo" ?
+
+Should I leave "Marks and Signs" (0F82-0F87) as ""?
+
+What to do with "Transliteration head letters" (0F88-0F8B) ?
+
+
+============================== BLOCK 11 ==============================
+
+Various Hangul components need checking:
+
+What are chitueumsios, chitueumssangsios,
+ceongchieumsios, and ceongchieumssangsios?
+
+Is "Z" a good transliteration for pansios?
+
+I'm using "N" for yesieung and kapyeoun both. Is this right?
+
+What are chitueumcieuc, chitueumssangcieuc, ceongchieumcieuc,
+ceongchieumssangcieuc, chitueumchieuch, and ceongchieumchieuch?
+
+Is "kapyeounphieuph" best transliterated as "Np" or "pN"?,
+and so on for: kapyeounrieul, kapyeounmieum, kapyeounpieup,
+kapyeounssangpieup, kapyeounphieuph
+
+I'm using "Q" for yeorinhieuh, apparently an archaic glottal
+stop character. Is that right?
+
+
+============================== BLOCK 14 ==============================
+
+How to transliterate 0x1426,
+AKA "canadian syllabics final double short vertical strokes"?
+
+How to transliterate 0x1429, AKA "canadian syllabics final plus"?
+
+
+============================== BLOCK 16 ==============================
+
+Fact-check the Ogham and Runes.
+
+What are eabhadh, or, uilleann, ifin, eamhancholl, and peith (1695-169A)?
+
+
+============================== BLOCK 18 ==============================
+
+What's 180A = "Mongolian nirugu" ?
+
+
+============================== BLOCK 31 ==============================
+
+I leave the Kaeriten (3190-319F) as null-string. Is that good?
+
+
+============================== BLOCK fb ==============================
+
+Arabic Presentation Forms-A (FB50-FDFF) -- do I need to
+do these, or are they never actually found in text files?
+
+
+============================== BLOCK fe ==============================
+
+Arabic Presentation Forms-B (FE70-FEFF) -- do I need to
+do these, or are they never actually found in text files?
+
+
+
+--
+26 TODOs at Sat Jul 14 00:27:44 2001
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode.pm
new file mode 100644
index 0000000..f6b06ae
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode.pm
@@ -0,0 +1,432 @@
+
+require 5.006;
+package Text::Unidecode; # Time-stamp: "2001-07-14 02:29:41 MDT"
+use utf8;
+use strict;
+use integer; # vroom vroom!
+use vars qw($VERSION @ISA @EXPORT @Char $NULLMAP);
+$VERSION = '0.04';
+require Exporter;
+@ISA = ('Exporter');
+@EXPORT = ('unidecode');
+
+BEGIN { *DEBUG = sub () {0} unless defined &DEBUG }
+
+$NULLMAP = [('[?] ') x 0x100]; # for blocks we can't load
+
+#--------------------------------------------------------------------------
+{
+ my $x = join '', "\x00" .. "\x7F";
+ die "the 7-bit purity test fails!" unless $x eq unidecode($x);
+}
+
+#--------------------------------------------------------------------------
+
+sub unidecode {
+ # Destructive in void context -- in other contexts, nondestructive.
+
+ unless(@_) {
+ # Nothing coming in
+ return() if wantarray;
+ return '';
+ }
+ @_ = map $_, @_ if defined wantarray;
+ # We're in list or scalar context, NOT void context.
+ # So make @_'s items no longer be aliases.
+ # Otherwise, let @_ be aliases, and alter in-place.
+
+ foreach my $x (@_) {
+ next unless defined $x;
+ $x =~ s~([^\x00-\x7f])~${$Char[ord($1)>>8]||t($1)}[ord($1)&255]~egs;
+ # Replace character 0xABCD with $Char[0xAB][0xCD], loading
+ # the table as needed.
+ }
+
+ return unless defined wantarray; # void context
+ return @_ if wantarray; # normal list context -- return the copies
+ # Else normal scalar context:
+ return $_[0] if @_ == 1;
+ return join '', @_; # rarer fallthru: a list in, but a scalar out.
+}
+
+sub t {
+ # load (and return) a char table for this character
+ # this should get called only once per table per session.
+ my $bank = ord($_[0]) >> 8;
+ return $Char[$bank] if $Char[$bank];
+
+ {
+ DEBUG and printf "Loading %s::x%02x\n", __PACKAGE__, $bank;
+ local $SIG{'__DIE__'};
+ eval(sprintf 'require %s::x%02x;', __PACKAGE__, $bank);
+ }
+
+ # Now see how that fared...
+ if(ref($Char[$bank] || '') ne 'ARRAY') {
+ DEBUG > 1 and print
+ " Loading failed for bank $bank (err $@). Using null map.\n";
+ return $Char[$bank] = $NULLMAP;
+ } else {
+ DEBUG > 1 and print " Succeeded.\n";
+ if(DEBUG) {
+ # Sanity-check it:
+ my $cb = $Char[$bank];
+ unless(@$cb == 256) {
+ printf "Block x%02x is of size %d -- chopping to 256\n",
+ scalar(@$cb);
+ $#$cb = 255; # pre-extend the array, or chop it to size.
+ }
+ for(my $i = 0; $i < 256; ++$i) {
+ unless(defined $cb->[$i]) {
+ printf "Undef at position %d in block x%02x\n",
+ $i, $bank;
+ $cb->[$i] = '';
+ }
+ }
+ }
+ return $Char[$bank];
+ }
+}
+
+#--------------------------------------------------------------------------
+1;
+__END__
+
+=head1 NAME
+
+Text::Unidecode -- US-ASCII transliterations of Unicode text
+
+=head1 SYNOPSIS
+
+ use utf8;
+ use Text::Unidecode;
+ print unidecode(
+ "\x{5317}\x{4EB0}\n"
+ # those are the Chinese characters for Beijing
+ );
+
+ # That prints: Bei Jing
+
+=head1 DESCRIPTION
+
+It often happens that you have non-Roman text data in Unicode, but
+you can't display it -- usually because you're trying to
+show it to a user via an application that doesn't support Unicode,
+or because the fonts you need aren't accessible. You could
+represent the Unicode characters as "???????" or
+"\15BA\15A0\1610...", but that's nearly useless to the user who
+actually wants to read what the text says.
+
+What Text::Unidecode provides is a function, C<unidecode(...)> that
+takes Unicode data and tries to represent it in US-ASCII characters
+(i.e., the universally displayable characters between 0x00 and
+0x7F). The representation is
+almost always an attempt at I<transliteration> -- i.e., conveying,
+in Roman letters, the pronunciation expressed by the text in
+some other writing system. (See the example in the synopsis.)
+
+Unidecode's ability to transliterate is limited by two factors:
+
+=over
+
+=item * The amount and quality of data in the original
+
+So if you have Hebrew data
+that has no vowel points in it, then Unidecode cannot guess what
+vowels should appear in a pronounciation.
+S f y hv n vwls n th npt, y wn't gt ny vwls
+n th tpt. (This is a specific application of the general principle
+of "Garbage In, Garbage Out".)
+
+=item * Basic limitations in the Unidecode design
+
+Writing a real and clever transliteration algorithm for any single
+language usually requires a lot of time, and at least a passable
+knowledge of the language involved. But Unicode text can convey
+more languages than I could possibly learn (much less create a
+transliterator for) in the entire rest of my lifetime. So I put
+a cap on how intelligent Unidecode could be, by insisting that
+it support only context-I<in>sensitive transliteration. That means
+missing the finer details of any given writing system,
+while still hopefully being useful.
+
+=back
+
+Unidecode, in other words, is quick and
+dirty. Sometimes the output is not so dirty at all:
+Russian and Greek seem to work passably; and
+while Thaana (Divehi, AKA Maldivian) is a definitely non-Western
+writing system, setting up a mapping from it to Roman letters
+seems to work pretty well. But sometimes the output is I<very
+dirty:> Unidecode does quite badly on Japanese and Thai.
+
+If you want a smarter transliteration for a particular language
+than Unidecode provides, then you should look for (or write)
+a transliteration algorithm specific to that language, and apply
+it instead of (or at least before) applying Unidecode.
+
+In other words, Unidecode's
+approach is broad (knowing about dozens of writing systems), but
+shallow (not being meticulous about any of them).
+
+=head1 FUNCTIONS
+
+Text::Unidecode provides one function, C<unidecode(...)>, which
+is exported by default. It can be used in a variety of calling contexts:
+
+=over
+
+=item C<$out = unidecode($in);> # scalar context
+
+This returns a copy of $in, transliterated.
+
+=item C<$out = unidecode(@in);> # scalar context
+
+This is the same as C<$out = unidecode(join '', @in);>
+
+=item C<@out = unidecode(@in);> # list context
+
+This returns a list consisting of copies of @in, each transliterated. This
+is the same as C<@out = map scalar(unidecode($_)), @in;>
+
+=item C<unidecode(@items);> # void context
+
+=item C<unidecode(@bar, $foo, @baz);> # void context
+
+Each item on input is replaced with its transliteration. This
+is the same as C<for(@bar, $foo, @baz) { $_ = unidecode($_) }>
+
+=back
+
+You should make a minimum of assumptions about the output of
+C<unidecode(...)>. For example, if you assume an all-alphabetic
+(Unicode) string passed to C<unidecode(...)> will return an all-alphabetic
+string, you're wrong -- some alphabetic Unicode characters are
+transliterated as strings containing punctuation (e.g., the
+Armenian letter at 0x0539 currently transliterates as C<T`>.
+
+However, these are the assumptions you I<can> make:
+
+=over
+
+=item *
+
+Each character 0x0000 - 0x007F transliterates as itself. That is,
+C<unidecode(...)> is 7-bit pure.
+
+=item *
+
+The output of C<unidecode(...)> always consists entirely of US-ASCII
+characters -- i.e., characters 0x0000 - 0x007F.
+
+=item *
+
+All Unicode characters translate to a sequence of (any number of)
+characters that are newline ("\n") or in the range 0x0020-0x007E. That
+is, no Unicode character translates to "\x01", for example. (Altho if
+you have a "\x01" on input, you'll get a "\x01" in output.)
+
+=item *
+
+Yes, some transliterations produce a "\n" -- but just a few, and only
+with good reason. Note that the value of newline ("\n") varies
+from platform to platform -- see L<perlport/perlport>.
+
+=item *
+
+Some Unicode characters may transliterate to nothing (i.e., empty string).
+
+=item *
+
+Very many Unicode characters transliterate to multi-character sequences.
+E.g., Han character 0x5317 transliterates as the four-character string
+"Bei ".
+
+=item *
+
+Within these constraints, I may change the transliteration of characters
+in future versions. For example, if someone convinces me that
+the Armenian letter at 0x0539, currently transliterated as "T`", would
+be better transliterated as "D", I may well make that change.
+
+=back
+
+=head1 DESIGN GOALS AND CONSTRAINTS
+
+Text::Unidecode is meant to be a transliterator-of-last resort,
+to be used once you've decided that you can't just display the
+Unicode data as is, and once you've decided you don't have a
+more clever, language-specific transliterator available. It
+transliterates context-insensitively -- that is, a given character is
+replaced with the same US-ASCII (7-bit ASCII) character or characters,
+no matter what the surrounding character are.
+
+The main reason I'm making Text::Unidecode work with only
+context-insensitive substitution is that it's fast, dumb, and
+straightforward enough to be feasable. It doesn't tax my
+(quite limited) knowledge of world languages. It doesn't require
+me writing a hundred lines of code to get the Thai syllabification
+right (and never knowing whether I've gotten it wrong, because I
+don't know Thai), or spending a year trying to get Text::Unidecode
+to use the ChaSen algorithm for Japanese, or trying to write heuristics
+for telling the difference between Japanese, Chinese, or Korean, so
+it knows how to transliterate any given Uni-Han glyph. And
+moreover, context-insensitive substitution is still mostly useful,
+but still clearly couldn't be mistaken for authoritative.
+
+Text::Unidecode is an example of the 80/20 rule in
+action -- you get 80% of the usefulness using just 20% of a
+"real" solution.
+
+A "real" approach to transliteration for any given language can
+involve such increasingly tricky contextual factors as these
+
+=over
+
+=item The previous / preceding character(s)
+
+What a given symbol "X" means, could
+depend on whether it's followed by a consonant, or by vowel, or
+by some diacritic character.
+
+=item Syllables
+
+A character "X" at end of a syllable could mean something
+different from when it's at the start -- which is especially problematic
+when the language involved doesn't explicitly mark where one syllable
+stops and the next starts.
+
+=item Parts of speech
+
+What "X" sounds like at the end of a word,
+depends on whether that word is a noun, or a verb, or what.
+
+=item Meaning
+
+By semantic context, you can tell that this ideogram "X" means "shoe"
+(pronounced one way) and not "time" (pronounced another),
+and that's how you know to transliterate it one way instead of the other.
+
+=item Origin of the word
+
+"X" means one thing in loanwords and/or placenames (and
+derivatives thereof), and another in native words.
+
+=item "It's just that way"
+
+"X" normally makes
+the /X/ sound, except for this list of seventy exceptions (and words based
+on them, sometimes indirectly). Or: you never can tell which of the three
+ways to pronounce "X" this word actually uses; you just have to know
+which it is, so keep a dictionary on hand!
+
+=item Language
+
+The character "X" is actually used in several different languages, and you
+have to figure out which you're looking at before you can determine how
+to transliterate it.
+
+=back
+
+Out of a desire to avoid being mired in I<any> of these kinds of
+contextual factors, I chose to exclude I<all of them> and just stick
+with context-insensitive replacement.
+
+=head1 TODO
+
+Things that need tending to are detailed in the TODO.txt file, included
+in this distribution. Normal installs probably don't leave the TODO.txt
+lying around, but if nothing else, you can see it at
+http://search.cpan.org/search?dist=Text::Unidecode
+
+=head1 MOTTO
+
+The Text::Unidecode motto is:
+
+ It's better than nothing!
+
+...in both meanings: 1) seeing the output of C<unidecode(...)> is
+better than just having all font-unavailable Unicode characters
+replaced with "?"'s, or rendered as gibberish; and 2) it's the
+worst, i.e., there's nothing that Text::Unidecode's algorithm is
+better than.
+
+=head1 CAVEATS
+
+If you get really implausible nonsense out of C<unidecode(...)>, make
+sure that the input data really is a utf8 string. See
+L<perlunicode/perlunicode>.
+
+=head1 THANKS
+
+Thanks to Harald Tveit Alvestrand,
+Abhijit Menon-Sen, and Mark-Jason Dominus.
+
+=head1 SEE ALSO
+
+Unicode Consortium: http://www.unicode.org/
+
+Geoffrey Sampson. 1990. I<Writing Systems: A Linguistic Introduction.>
+ISBN: 0804717567
+
+Randall K. Barry (editor). 1997. I<ALA-LC Romanization Tables:
+Transliteration Schemes for Non-Roman Scripts.>
+ISBN: 0844409405
+[ALA is the American Library Association; LC is the Library of
+Congress.]
+
+Rupert Snell. 2000. I<Beginner's Hindi Script (Teach Yourself
+Books).> ISBN: 0658009109
+
+=head1 COPYRIGHT AND DISCLAIMERS
+
+Copyright (c) 2001 Sean M. Burke. All rights reserved.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+This program 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.
+
+Much of Text::Unidecode's internal data is based on data from The
+Unicode Consortium, with which I am unafiliated.
+
+=head1 AUTHOR
+
+Sean M. Burke C<sburke@cpan.org>
+
+=cut
+
+#################### SCOOBIE SNACK ####################
+
+Lest there be any REMAINING doubt that the Unicode Consortium has
+a sense of humor, the CDROM that comes with /The Unicode Standard,
+Version 3.0/ book, has an audio track of the Unicode anthem [!].
+The lyrics are:
+
+ Unicode, Oh Unicode!
+ --------------------
+
+ Oh, beautiful for Uni-Han,
+ for spacious User Zone!
+ For rampant scripts of India
+ and polar Nunavut!
+
+ Chorus:
+ Unicode, Oh Unicode!
+ May all your code points shine forever
+ and your beacon light the world!
+
+ Oh, marvelous for sixteen bits,
+ for precious surrogates!
+ For Bi-Di algorithm dear
+ and stalwart I-P-A!
+
+ Oh, glorious for Hangul fair,
+ for symbols mathematical!
+ For myriad exotic scripts
+ and punctuation we adore!
+
+# End.
+
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x00.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x00.pm
new file mode 100644
index 0000000..788ec0c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x00.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:20 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x00] = [
+qq{\x00}, qq{\x01}, qq{\x02}, qq{\x03}, qq{\x04}, qq{\x05}, qq{\x06}, qq{\x07}, qq{\x08}, qq{\x09}, qq{\x0a}, qq{\x0b}, qq{\x0c}, qq{\x0d}, qq{\x0e}, qq{\x0f},
+qq{\x10}, qq{\x11}, qq{\x12}, qq{\x13}, qq{\x14}, qq{\x15}, qq{\x16}, qq{\x17}, qq{\x18}, qq{\x19}, qq{\x1a}, qq{\x1b}, qq{\x1c}, qq{\x1d}, qq{\x1e}, qq{\x1f},
+' ', qq{!}, qq{"}, qq{#}, qq{\$}, qq{%}, qq{&}, qq{'}, qq{(}, qq{)}, qq{*}, qq{+}, qq{,}, qq{-}, qq{.}, qq{/},
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{:}, qq{;}, qq{<}, qq{=}, qq{>}, qq{?},
+qq{\@}, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', qq{]}, qq{\\}, qq{]}, qq{^}, qq{_},
+qq{`}, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', qq{\{}, qq{|}, qq{\}}, qq{~}, qq{\x7f},
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+' ', qq{!}, qq{C/}, 'PS', qq{\$?}, qq{Y=}, qq{|}, 'SS', qq{"}, qq{(c)}, 'a', qq{<<}, qq{!}, "", qq{(r)}, qq{-},
+'deg', qq{+-}, '2', '3', qq{'}, 'u', 'P', qq{*}, qq{,}, '1', 'o', qq{>>}, qq{1/4}, qq{1/2}, qq{3/4}, qq{?},
+'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I',
+'D', 'N', 'O', 'O', 'O', 'O', 'O', 'x', 'O', 'U', 'U', 'U', 'U', 'U', 'Th', 'ss',
+'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
+'d', 'n', 'o', 'o', 'o', 'o', 'o', qq{/}, 'o', 'u', 'u', 'u', 'u', 'y', 'th', 'y',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x01.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x01.pm
new file mode 100644
index 0000000..a42b22e
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x01.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:20 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x01] = [
+'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd',
+'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g',
+'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i',
+'I', 'i', 'IJ', "", 'J', 'j', 'K', 'k', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L',
+'l', 'L', 'l', 'N', 'n', 'N', 'n', 'N', 'n', qq{'n}, 'ng', 'NG', 'O', 'o', 'O', 'o',
+'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's',
+'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u',
+'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's',
+'b', 'B', 'B', 'b', '6', '6', 'O', 'C', 'c', 'D', 'D', 'D', 'd', 'd', '3', qq{\@},
+'E', 'F', 'f', 'G', 'G', 'hv', 'I', 'I', 'K', 'k', 'l', 'l', 'W', 'N', 'n', 'O',
+'O', 'o', 'OI', 'oi', 'P', 'p', 'YR', '2', '2', 'SH', 'sh', 't', 'T', 't', 'T', 'U',
+'u', 'Y', 'V', 'Y', 'y', 'Z', 'z', 'ZH', 'ZH', 'zh', 'zh', '2', '5', '5', 'ts', 'w',
+qq{|}, qq{||}, qq{|=}, qq{!}, 'DZ', 'Dz', 'dz', 'LJ', 'Lj', 'lj', 'NJ', 'Nj', 'nj', 'A', 'a', 'I',
+'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', qq{\@}, 'A', 'a',
+'A', 'a', 'AE', 'ae', 'G', 'g', 'G', 'g', 'K', 'k', 'O', 'o', 'O', 'o', 'ZH', 'zh',
+'j', 'DZ', 'D', 'dz', 'G', 'g', 'HV', 'W', 'N', 'n', 'A', 'a', 'AE', 'ae', 'O', 'o',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x02.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x02.pm
new file mode 100644
index 0000000..53ce7e4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x02.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:20 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x02] = [
+'A', 'a', 'A', 'a', 'E', 'e', 'E', 'e', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o',
+'R', 'r', 'R', 'r', 'U', 'u', 'U', 'u', 'S', 's', 'T', 't', 'Y', 'y', 'H', 'h',
+'[?]', '[?]', 'OU', 'ou', 'Z', 'z', 'A', 'a', 'E', 'e', 'O', 'o', 'O', 'o', 'O', 'o',
+'O', 'o', 'Y', 'y', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'a', 'a', 'a', 'b', 'o', 'c', 'd', 'd', 'e', qq{\@}, qq{\@}, 'e', 'e', 'e', 'e', 'j',
+'g', 'g', 'g', 'g', 'u', 'Y', 'h', 'h', 'i', 'i', 'I', 'l', 'l', 'l', 'lZ', 'W',
+'W', 'm', 'n', 'n', 'n', 'o', 'OE', 'O', 'F', 'R', 'R', 'R', 'R', 'r', 'r', 'R',
+'R', 'R', 's', 'S', 'j', 'S', 'S', 't', 't', 'U', 'U', 'v', qq{^}, 'W', 'Y', 'Y',
+'z', 'z', 'Z', 'Z', qq{?}, qq{?}, qq{?}, 'C', qq{\@}, 'B', 'E', 'G', 'H', 'j', 'k', 'L',
+'q', qq{?}, qq{?}, 'dz', 'dZ', 'dz', 'ts', 'tS', 'tC', 'fN', 'ls', 'lz', 'WW', qq{]]}, '[?]', '[?]',
+'k', 'h', 'j', 'r', 'r', 'r', 'r', 'w', 'y', qq{'}, qq{"}, qq{`}, qq{'}, qq{`}, qq{`}, qq{'},
+qq{?}, qq{?}, qq{<}, qq{>}, qq{^}, 'V', qq{^}, 'V', qq{'}, qq{-}, qq{/}, qq{\\}, qq{,}, qq{_}, qq{\\}, qq{/},
+qq{:}, qq{.}, qq{`}, qq{'}, qq{^}, 'V', qq{+}, qq{-}, 'V', qq{.}, qq{\@}, qq{,}, qq{~}, qq{"}, 'R', 'X',
+'G', 'l', 's', 'x', qq{?}, "", "", "", "", "", "", "", 'V', qq{=}, qq{"}, '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x03.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x03.pm
new file mode 100644
index 0000000..37342c6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x03.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:20 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x03] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', qq{'}, qq{,}, '[?]', '[?]', '[?]', '[?]', "", '[?]', '[?]', '[?]', qq{?}, '[?]',
+'[?]', '[?]', '[?]', '[?]', "", "", 'A', qq{;}, 'E', 'E', 'I', '[?]', 'O', '[?]', 'U', 'O',
+'I', 'A', 'B', 'G', 'D', 'E', 'Z', 'E', 'Th', 'I', 'K', 'L', 'M', 'N', 'Ks', 'O',
+'P', 'R', '[?]', 'S', 'T', 'U', 'Ph', 'Kh', 'Ps', 'O', 'I', 'U', 'a', 'e', 'e', 'i',
+'u', 'a', 'b', 'g', 'd', 'e', 'z', 'e', 'th', 'i', 'k', 'l', 'm', 'n', 'x', 'o',
+'p', 'r', 's', 's', 't', 'u', 'ph', 'kh', 'ps', 'o', 'i', 'u', 'o', 'u', 'o', '[?]',
+'b', 'th', 'U', 'U', 'U', 'ph', 'p', qq{&}, '[?]', '[?]', 'St', 'st', 'W', 'w', 'Q', 'q',
+'Sp', 'sp', 'Sh', 'sh', 'F', 'f', 'Kh', 'kh', 'H', 'h', 'G', 'g', 'CH', 'ch', 'Ti', 'ti',
+'k', 'r', 'c', 'j', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x04.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x04.pm
new file mode 100644
index 0000000..190b782
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x04.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x04] = [
+'Ie', 'Io', 'Dj', 'Gj', 'Ie', 'Dz', 'I', 'Yi', 'J', 'Lj', 'Nj', 'Tsh', 'Kj', 'I', 'U', 'Dzh',
+'A', 'B', 'V', 'G', 'D', 'Ie', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P',
+'R', 'S', 'T', 'U', 'F', 'Kh', 'Ts', 'Ch', 'Sh', 'Shch', "", 'Y', qq{'}, 'E', 'Iu', 'Ia',
+'a', 'b', 'v', 'gh', 'd', 'ie', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p',
+'r', 's', 't', 'u', 'f', 'kh', 'ts', 'ch', 'sh', 'shch', "", 'y', qq{'}, 'e', 'iu', 'ia',
+'ie', 'io', 'dj', 'gj', 'ie', 'dz', 'i', 'yi', 'j', 'lj', 'nj', 'tsh', 'kj', 'i', 'u', 'dzh',
+'O', 'o', 'E', 'e', 'Ie', 'ie', 'E', 'e', 'Ie', 'ie', 'O', 'o', 'Io', 'io', 'Ks', 'ks',
+'Ps', 'ps', 'F', 'f', 'Y', 'y', 'Y', 'y', 'u', 'u', 'O', 'o', 'O', 'o', 'Ot', 'ot',
+'Q', 'q', qq{*1000*}, "", "", "", "", '[?]', qq{*100.000*}, qq{*1.000.000*}, '[?]', '[?]', qq{"}, qq{"}, qq{R'}, qq{r'},
+qq{G'}, qq{g'}, qq{G'}, qq{g'}, qq{G'}, qq{g'}, qq{Zh'}, qq{zh'}, qq{Z'}, qq{z'}, qq{K'}, qq{k'}, qq{K'}, qq{k'}, qq{K'}, qq{k'},
+qq{K'}, qq{k'}, qq{N'}, qq{n'}, 'Ng', 'ng', qq{P'}, qq{p'}, 'Kh', 'kh', qq{S'}, qq{s'}, qq{T'}, qq{t'}, 'U', 'u',
+qq{U'}, qq{u'}, qq{Kh'}, qq{kh'}, 'Tts', 'tts', qq{Ch'}, qq{ch'}, qq{Ch'}, qq{ch'}, 'H', 'h', 'Ch', 'ch', qq{Ch'}, qq{ch'},
+qq{`}, 'Zh', 'zh', qq{K'}, qq{k'}, '[?]', '[?]', qq{N'}, qq{n'}, '[?]', '[?]', 'Ch', 'ch', '[?]', '[?]', '[?]',
+'a', 'a', 'A', 'a', 'Ae', 'ae', 'Ie', 'ie', qq{\@}, qq{\@}, qq{\@}, qq{\@}, 'Zh', 'zh', 'Z', 'z',
+'Dz', 'dz', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o', 'O', 'o', 'E', 'e', 'U', 'u',
+'U', 'u', 'U', 'u', 'Ch', 'ch', '[?]', '[?]', 'Y', 'y', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x05.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x05.pm
new file mode 100644
index 0000000..3df929f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x05.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x05] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'A', 'B', 'G', 'D', 'E', 'Z', 'E', 'E', qq{T`}, 'Zh', 'I', 'L', 'Kh', 'Ts', 'K',
+'H', 'Dz', 'Gh', 'Ch', 'M', 'Y', 'N', 'Sh', 'O', qq{Ch`}, 'P', 'J', 'Rh', 'S', 'V', 'T',
+'R', qq{Ts`}, 'W', qq{P`}, qq{K`}, 'O', 'F', '[?]', '[?]', qq{<}, qq{'}, qq{/}, qq{!}, qq{,}, qq{?}, qq{.},
+'[?]', 'a', 'b', 'g', 'd', 'e', 'z', 'e', 'e', qq{t`}, 'zh', 'i', 'l', 'kh', 'ts', 'k',
+'h', 'dz', 'gh', 'ch', 'm', 'y', 'n', 'sh', 'o', qq{ch`}, 'p', 'j', 'rh', 's', 'v', 't',
+'r', qq{ts`}, 'w', qq{p`}, qq{k`}, 'o', 'f', 'ew', '[?]', qq{.}, qq{-}, '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", '[?]', "", "", "", "", "", "", "", "", "", "", "", "", "",
+qq{\@}, 'e', 'a', 'o', 'i', 'e', 'e', 'a', 'a', 'o', '[?]', 'u', qq{'}, "", "", "",
+"", "", "", qq{:}, "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", 'b', 'g', 'd', 'h', 'v', 'z', 'kh', 't', 'y', 'k', 'k', 'l', 'm', 'm', 'n',
+'n', 's', qq{`}, 'p', 'p', 'ts', 'ts', 'q', 'r', 'sh', 't', '[?]', '[?]', '[?]', '[?]', '[?]',
+'V', 'oy', 'i', qq{'}, qq{"}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x06.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x06.pm
new file mode 100644
index 0000000..5ef4787
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x06.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x06] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{,}, '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{;}, '[?]', '[?]', '[?]', qq{?},
+'[?]', "", 'a', qq{'}, qq{w'}, "", qq{y'}, "", 'b', qq{\@}, 't', 'th', 'j', 'H', 'kh', 'd',
+'dh', 'r', 'z', 's', 'sh', 'S', 'D', 'T', 'Z', qq{`}, 'G', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", 'f', 'q', 'k', 'l', 'm', 'n', 'h', 'w', qq{~}, 'y', 'an', 'un', 'in', 'a', 'u',
+'i', 'W', "", "", qq{'}, qq{'}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{%}, qq{.}, qq{,}, qq{*}, '[?]', '[?]',
+"", qq{'}, qq{'}, qq{'}, "", qq{'}, qq{'w}, qq{'u}, qq{'y}, 'tt', 'tth', 'b', 't', 'T', 'p', 'th',
+'bh', qq{'h}, 'H', 'ny', 'dy', 'H', 'ch', 'cch', 'dd', 'D', 'D', 'Dt', 'dh', 'ddh', 'd', 'D',
+'D', 'rr', 'R', 'R', 'R', 'R', 'R', 'R', 'j', 'R', 'S', 'S', 'S', 'S', 'S', 'T',
+'GH', 'F', 'F', 'F', 'v', 'f', 'ph', 'Q', 'Q', 'kh', 'k', 'K', 'K', 'ng', 'K', 'g',
+'G', 'N', 'G', 'G', 'G', 'L', 'L', 'L', 'L', 'N', 'N', 'N', 'N', 'N', 'h', 'Ch',
+'hy', 'h', 'H', qq{\@}, 'W', 'oe', 'oe', 'u', 'yu', 'yu', 'W', 'v', 'y', 'Y', 'Y', 'W',
+"", "", 'y', qq{y'}, qq{.}, 'ae', "", "", "", "", "", "", "", qq{\@}, qq{#}, "",
+"", "", "", "", "", "", "", "", "", qq{^}, "", "", "", "", '[?]', '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'Sh', 'D', 'Gh', qq{&}, qq{+m},
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x07.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x07.pm
new file mode 100644
index 0000000..c35c4a6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x07.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x07] = [
+qq{//}, qq{/}, qq{,}, qq{!}, qq{!}, qq{-}, qq{,}, qq{,}, qq{;}, qq{?}, qq{~}, qq{\{}, qq{\}}, qq{*}, '[?]', "",
+qq{'}, "", 'b', 'g', 'g', 'd', 'd', 'h', 'w', 'z', 'H', 't', 't', 'y', 'yh', 'k',
+'l', 'm', 'n', 's', 's', qq{`}, 'p', 'p', 'S', 'q', 'r', 'sh', 't', '[?]', '[?]', '[?]',
+'a', 'a', 'a', 'A', 'A', 'A', 'e', 'e', 'e', 'E', 'i', 'i', 'u', 'u', 'u', 'o',
+"", qq{`}, qq{'}, "", "", 'X', 'Q', qq{\@}, qq{\@}, qq{|}, qq{+}, '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'h', 'sh', 'n', 'r', 'b', 'L', 'k', qq{'}, 'v', 'm', 'f', 'dh', 'th', 'l', 'g', 'ny',
+'s', 'd', 'z', 't', 'y', 'p', 'j', 'ch', 'tt', 'hh', 'kh', 'th', 'z', 'sh', 's', 'd',
+'t', 'z', qq{`}, 'gh', 'q', 'w', 'a', 'aa', 'i', 'ee', 'u', 'oo', 'e', 'ey', 'o', 'oa',
+"", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x09.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x09.pm
new file mode 100644
index 0000000..50b38c0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x09.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x09] = [
+'[?]', 'N', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'L', 'eN', 'e', 'e',
+'ai', 'oN', 'o', 'o', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', 'nnn', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', 'rr', 'l', 'l', 'lll', 'v', 'sh', 'ss', 's', 'h', '[?]', '[?]', qq{'}, qq{'}, 'aa', 'i',
+'ii', 'u', 'uu', 'R', 'RR', 'eN', 'e', 'e', 'ai', 'oN', 'o', 'o', 'au', "", '[?]', '[?]',
+'AUM', qq{'}, qq{'}, qq{`}, qq{'}, '[?]', '[?]', '[?]', 'q', 'khh', 'ghh', 'z', 'dddh', 'rh', 'f', 'yy',
+'RR', 'LL', 'L', 'LL', qq{ / }, qq{ // }, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+qq{.}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'N', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'RR', '[?]', '[?]', 'e',
+'ai', '[?]', '[?]', 'o', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', '[?]', 'l', '[?]', '[?]', '[?]', 'sh', 'ss', 's', 'h', '[?]', '[?]', qq{'}, '[?]', 'aa', 'i',
+'ii', 'u', 'uu', 'R', 'RR', '[?]', '[?]', 'e', 'ai', '[?]', '[?]', 'o', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, '[?]', '[?]', '[?]', '[?]', 'rr', 'rh', '[?]', 'yy',
+'RR', 'LL', 'L', 'LL', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+qq{r'}, qq{r`}, 'Rs', 'Rs', qq{1/}, qq{2/}, qq{3/}, qq{4/}, qq{ 1 - 1/}, qq{/16}, "", '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0a.pm
new file mode 100644
index 0000000..a7fd429
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0a] = [
+'[?]', '[?]', 'N', '[?]', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', '[?]', '[?]', '[?]', '[?]', 'ee',
+'ai', '[?]', '[?]', 'oo', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bb', 'm', 'y',
+'r', '[?]', 'l', 'll', '[?]', 'v', 'sh', '[?]', 's', 'h', '[?]', '[?]', qq{'}, '[?]', 'aa', 'i',
+'ii', 'u', 'uu', '[?]', '[?]', '[?]', '[?]', 'ee', 'ai', '[?]', '[?]', 'oo', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', 'khh', 'ghh', 'z', 'rr', '[?]', 'f', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+'N', 'H', "", "", qq{G.E.O.}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'N', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', '[?]', 'eN', '[?]', 'e',
+'ai', 'oN', '[?]', 'o', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'ya',
+'r', '[?]', 'l', 'll', '[?]', 'v', 'sh', 'ss', 's', 'h', '[?]', '[?]', qq{'}, qq{'}, 'aa', 'i',
+'ii', 'u', 'uu', 'R', 'RR', 'eN', '[?]', 'e', 'ai', 'oN', '[?]', 'o', 'au', "", '[?]', '[?]',
+'AUM', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'RR', '[?]', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0b.pm
new file mode 100644
index 0000000..1c14cdd
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0b] = [
+'[?]', 'N', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'L', '[?]', '[?]', 'e',
+'ai', '[?]', '[?]', 'o', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', '[?]', 'l', 'll', '[?]', "", 'sh', 'ss', 's', 'h', '[?]', '[?]', qq{'}, qq{'}, 'aa', 'i',
+'ii', 'u', 'uu', 'R', '[?]', '[?]', '[?]', 'e', 'ai', '[?]', '[?]', 'o', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, qq{+}, '[?]', '[?]', '[?]', '[?]', 'rr', 'rh', '[?]', 'yy',
+'RR', 'LL', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+"", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', '[?]', '[?]', '[?]', 'e', 'ee',
+'ai', '[?]', 'o', 'oo', 'au', 'k', '[?]', '[?]', '[?]', 'ng', 'c', '[?]', 'j', '[?]', 'ny', 'tt',
+'[?]', '[?]', '[?]', 'nn', 't', '[?]', '[?]', '[?]', 'n', 'nnn', 'p', '[?]', '[?]', '[?]', 'm', 'y',
+'r', 'rr', 'l', 'll', 'lll', 'v', '[?]', 'ss', 's', 'h', '[?]', '[?]', '[?]', '[?]', 'aa', 'i',
+'ii', 'u', 'uu', '[?]', '[?]', '[?]', 'e', 'ee', 'ai', '[?]', 'o', 'oo', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+qq{+10+}, qq{+100+}, qq{+1000+}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0c.pm
new file mode 100644
index 0000000..24e3f0b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0c] = [
+'[?]', 'N', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'L', '[?]', 'e', 'ee',
+'ai', '[?]', 'o', 'oo', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', 'rr', 'l', 'll', '[?]', 'v', 'sh', 'ss', 's', 'h', '[?]', '[?]', '[?]', '[?]', 'aa', 'i',
+'ii', 'u', 'uu', 'R', 'RR', '[?]', 'e', 'ee', 'ai', '[?]', 'o', 'oo', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, qq{+}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'RR', 'LL', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'L', '[?]', 'e', 'ee',
+'ai', '[?]', 'o', 'oo', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', 'rr', 'l', 'll', '[?]', 'v', 'sh', 'ss', 's', 'h', '[?]', '[?]', '[?]', '[?]', 'aa', 'i',
+'ii', 'u', 'uu', 'R', 'RR', '[?]', 'e', 'ee', 'ai', '[?]', 'o', 'oo', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, qq{+}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', 'lll', '[?]',
+'RR', 'LL', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0d.pm
new file mode 100644
index 0000000..659507c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0d] = [
+'[?]', '[?]', 'N', 'H', '[?]', 'a', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'L', '[?]', 'e', 'ee',
+'ai', '[?]', 'o', 'oo', 'au', 'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'tt',
+'tth', 'dd', 'ddh', 'nn', 't', 'th', 'd', 'dh', 'n', '[?]', 'p', 'ph', 'b', 'bh', 'm', 'y',
+'r', 'rr', 'l', 'll', 'lll', 'v', 'sh', 'ss', 's', 'h', '[?]', '[?]', '[?]', '[?]', 'aa', 'i',
+'ii', 'u', 'uu', 'R', '[?]', '[?]', 'e', 'ee', 'ai', "", 'o', 'oo', 'au', "", '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{+}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'RR', 'LL', '[?]', '[?]', '[?]', '[?]', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', 'N', 'H', '[?]', 'a', 'aa', 'ae', 'aae', 'i', 'ii', 'u', 'uu', 'R', 'RR', 'L',
+'LL', 'e', 'ee', 'ai', 'o', 'oo', 'au', '[?]', '[?]', '[?]', 'k', 'kh', 'g', 'gh', 'ng', 'nng',
+'c', 'ch', 'j', 'jh', 'ny', 'jny', 'nyj', 'tt', 'tth', 'dd', 'ddh', 'nn', 'nndd', 't', 'th', 'd',
+'dh', 'n', '[?]', 'nd', 'p', 'ph', 'b', 'bh', 'm', 'mb', 'y', 'r', '[?]', 'l', '[?]', '[?]',
+'v', 'sh', 'ss', 's', 'h', 'll', 'f', '[?]', '[?]', '[?]', "", '[?]', '[?]', '[?]', '[?]', 'aa',
+'ae', 'aae', 'i', 'ii', 'u', '[?]', 'uu', '[?]', 'R', 'e', 'ee', 'ai', 'o', 'oo', 'au', 'L',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', 'RR', 'LL', qq{ . }, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0e.pm
new file mode 100644
index 0000000..edb4a7f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0e] = [
+'[?]', 'k', 'kh', 'kh', 'kh', 'kh', 'kh', 'ng', 'cch', 'ch', 'ch', 'ch', 'ch', 'y', 'd', 't',
+'th', 'th', 'th', 'n', 'd', 't', 'th', 'th', 'th', 'n', 'b', 'p', 'ph', 'f', 'ph', 'f',
+'ph', 'm', 'y', 'r', 'R', 'l', 'L', 'w', 's', 's', 's', 'h', 'l', qq{`}, 'h', qq{~},
+'a', 'a', 'aa', 'am', 'i', 'ii', 'ue', 'uue', 'u', 'uu', qq{'}, '[?]', '[?]', '[?]', '[?]', qq{Bh.},
+'e', 'ae', 'o', 'ai', 'ai', 'ao', qq{+}, "", "", "", "", "", "", 'M', "", qq{ * },
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{ // }, qq{ /// }, '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'k', 'kh', '[?]', 'kh', '[?]', '[?]', 'ng', 'ch', '[?]', 's', '[?]', '[?]', 'ny', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', 'd', 'h', 'th', 'th', '[?]', 'n', 'b', 'p', 'ph', 'f', 'ph', 'f',
+'[?]', 'm', 'y', 'r', '[?]', 'l', '[?]', 'w', '[?]', '[?]', 's', 'h', '[?]', qq{`}, "", qq{~},
+'a', "", 'aa', 'am', 'i', 'ii', 'y', 'yy', 'u', 'uu', '[?]', 'o', 'l', 'ny', '[?]', '[?]',
+'e', 'ei', 'o', 'ay', 'ai', '[?]', qq{+}, '[?]', "", "", "", "", "", 'M', '[?]', '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '[?]', '[?]', 'hn', 'hm', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0f.pm
new file mode 100644
index 0000000..4619fa2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x0f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x0f] = [
+'AUM', "", "", "", "", "", "", "", qq{ // }, qq{ * }, "", qq{-}, qq{ / }, qq{ / }, qq{ // }, qq{ -/ },
+qq{ +/ }, qq{ X/ }, qq{ /XX/ }, qq{ /X/ }, qq{, }, "", "", "", "", "", "", "", "", "", "", "",
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{.5}, qq{1.5}, qq{2.5}, qq{3.5}, qq{4.5}, qq{5.5},
+qq{6.5}, qq{7.5}, qq{8.5}, qq{-.5}, qq{+}, qq{*}, qq{^}, qq{_}, "", qq{~}, '[?]', qq{]}, qq{[[}, qq{]]}, "", "",
+'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', '[?]', 'ny', 'tt', 'tth', 'dd', 'ddh', 'nn', 't',
+'th', 'd', 'dh', 'n', 'p', 'ph', 'b', 'bh', 'm', 'ts', 'tsh', 'dz', 'dzh', 'w', 'zh', 'z',
+qq{'}, 'y', 'r', 'l', 'sh', 'ssh', 's', 'h', 'a', 'kss', 'r', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'aa', 'i', 'ii', 'u', 'uu', 'R', 'RR', 'L', 'LL', 'e', 'ee', 'o', 'oo', 'M', 'H',
+'i', 'ii', "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]',
+'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', '[?]', 'ny', 'tt', 'tth', 'dd', 'ddh', 'nn', 't',
+'th', 'd', 'dh', 'n', 'p', 'ph', 'b', 'bh', 'm', 'ts', 'tsh', 'dz', 'dzh', 'w', 'zh', 'z',
+qq{'}, 'y', 'r', 'l', 'sh', 'ss', 's', 'h', 'a', 'kss', 'w', 'y', 'r', '[?]', 'X', qq{ :X: },
+qq{ /O/ }, qq{ /o/ }, qq{ \\o\\ }, qq{ (O) }, "", "", "", "", "", "", "", "", "", '[?]', '[?]', "",
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x10.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x10.pm
new file mode 100644
index 0000000..85a7e9b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x10.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x10] = [
+'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 'nny', 'tt', 'tth', 'dd', 'ddh', 'nn',
+'tt', 'th', 'd', 'dh', 'n', 'p', 'ph', 'b', 'bh', 'm', 'y', 'r', 'l', 'w', 's', 'h',
+'ll', 'a', '[?]', 'i', 'ii', 'u', 'uu', 'e', '[?]', 'o', 'au', '[?]', 'aa', 'i', 'ii', 'u',
+'uu', 'e', 'ai', '[?]', '[?]', '[?]', 'N', qq{'}, qq{:}, "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{ / }, qq{ // }, qq{n*}, qq{r*}, qq{l*}, qq{e*},
+'sh', 'ss', 'R', 'RR', 'L', 'LL', 'R', 'RR', 'L', 'LL', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'A', 'B', 'G', 'D', 'E', 'V', 'Z', qq{T`}, 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Zh',
+'R', 'S', 'T', 'U', qq{P`}, qq{K`}, qq{G'}, 'Q', 'Sh', qq{Ch`}, qq{C`}, qq{Z'}, 'C', 'Ch', 'X', 'J',
+'H', 'E', 'Y', 'W', 'Xh', 'OE', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'a', 'b', 'g', 'd', 'e', 'v', 'z', qq{t`}, 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'zh',
+'r', 's', 't', 'u', qq{p`}, qq{k`}, qq{g'}, 'q', 'sh', qq{ch`}, qq{c`}, qq{z'}, 'c', 'ch', 'x', 'j',
+'h', 'e', 'y', 'w', 'xh', 'oe', 'f', '[?]', '[?]', '[?]', '[?]', qq{ // }, '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x11.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x11.pm
new file mode 100644
index 0000000..446ebc6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x11.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:21 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x11] = [
+'g', 'gg', 'n', 'd', 'dd', 'r', 'm', 'b', 'bb', 's', 'ss', "", 'j', 'jj', 'c', 'k',
+'t', 'p', 'h', 'ng', 'nn', 'nd', 'nb', 'dg', 'rn', 'rr', 'rh', 'rN', 'mb', 'mN', 'bg', 'bn',
+"", 'bs', 'bsg', 'bst', 'bsb', 'bss', 'bsj', 'bj', 'bc', 'bt', 'bp', 'bN', 'bbN', 'sg', 'sn', 'sd',
+'sr', 'sm', 'sb', 'sbg', 'sss', 's', 'sj', 'sc', 'sk', 'st', 'sp', 'sh', "", "", "", "",
+'Z', 'g', 'd', 'm', 'b', 's', 'Z', "", 'j', 'c', 't', 'p', 'N', 'j', "", "",
+"", "", 'ck', 'ch', "", "", 'pb', 'pN', 'hh', 'Q', '[?]', '[?]', '[?]', '[?]', '[?]', "",
+"", 'a', 'ae', 'ya', 'yae', 'eo', 'e', 'yeo', 'ye', 'o', 'wa', 'wae', 'oe', 'yo', 'u', 'weo',
+'we', 'wi', 'yu', 'eu', 'yi', 'i', qq{a-o}, qq{a-u}, qq{ya-o}, qq{ya-yo}, qq{eo-o}, qq{eo-u}, qq{eo-eu}, qq{yeo-o}, qq{yeo-u}, qq{o-eo},
+qq{o-e}, qq{o-ye}, qq{o-o}, qq{o-u}, qq{yo-ya}, qq{yo-yae}, qq{yo-yeo}, qq{yo-o}, qq{yo-i}, qq{u-a}, qq{u-ae}, qq{u-eo-eu}, qq{u-ye}, qq{u-u}, qq{yu-a}, qq{yu-eo},
+qq{yu-e}, qq{yu-yeo}, qq{yu-ye}, qq{yu-u}, qq{yu-i}, qq{eu-u}, qq{eu-eu}, qq{yi-u}, qq{i-a}, qq{i-ya}, qq{i-o}, qq{i-u}, qq{i-eu}, qq{i-U}, 'U', qq{U-eo},
+qq{U-u}, qq{U-i}, 'UU', '[?]', '[?]', '[?]', '[?]', '[?]', 'g', 'gg', 'gs', 'n', 'nj', 'nh', 'd', 'l',
+'lg', 'lm', 'lb', 'ls', 'lt', 'lp', 'lh', 'm', 'b', 'bs', 's', 'ss', 'ng', 'j', 'c', 'k',
+'t', 'p', 'h', 'gl', 'gsg', 'ng', 'nd', 'ns', 'nZ', 'nt', 'dg', 'tl', 'lgs', 'ln', 'ld', 'lth',
+'ll', 'lmg', 'lms', 'lbs', 'lbh', 'rNp', 'lss', 'lZ', 'lk', 'lQ', 'mg', 'ml', 'mb', 'ms', 'mss', 'mZ',
+'mc', 'mh', 'mN', 'bl', 'bp', 'ph', 'pN', 'sg', 'sd', 'sl', 'sb', 'Z', 'g', 'ss', "", 'kh',
+'N', 'Ns', 'NZ', 'pb', 'pN', 'hn', 'hl', 'hm', 'hb', 'Q', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x12.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x12.pm
new file mode 100644
index 0000000..dbbe16a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x12.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x12] = [
+'ha', 'hu', 'hi', 'haa', 'hee', 'he', 'ho', '[?]', 'la', 'lu', 'li', 'laa', 'lee', 'le', 'lo', 'lwa',
+'hha', 'hhu', 'hhi', 'hhaa', 'hhee', 'hhe', 'hho', 'hhwa', 'ma', 'mu', 'mi', 'maa', 'mee', 'me', 'mo', 'mwa',
+'sza', 'szu', 'szi', 'szaa', 'szee', 'sze', 'szo', 'szwa', 'ra', 'ru', 'ri', 'raa', 'ree', 're', 'ro', 'rwa',
+'sa', 'su', 'si', 'saa', 'see', 'se', 'so', 'swa', 'sha', 'shu', 'shi', 'shaa', 'shee', 'she', 'sho', 'shwa',
+'qa', 'qu', 'qi', 'qaa', 'qee', 'qe', 'qo', '[?]', 'qwa', '[?]', 'qwi', 'qwaa', 'qwee', 'qwe', '[?]', '[?]',
+'qha', 'qhu', 'qhi', 'qhaa', 'qhee', 'qhe', 'qho', '[?]', 'qhwa', '[?]', 'qhwi', 'qhwaa', 'qhwee', 'qhwe', '[?]', '[?]',
+'ba', 'bu', 'bi', 'baa', 'bee', 'be', 'bo', 'bwa', 'va', 'vu', 'vi', 'vaa', 'vee', 've', 'vo', 'vwa',
+'ta', 'tu', 'ti', 'taa', 'tee', 'te', 'to', 'twa', 'ca', 'cu', 'ci', 'caa', 'cee', 'ce', 'co', 'cwa',
+'xa', 'xu', 'xi', 'xaa', 'xee', 'xe', 'xo', '[?]', 'xwa', '[?]', 'xwi', 'xwaa', 'xwee', 'xwe', '[?]', '[?]',
+'na', 'nu', 'ni', 'naa', 'nee', 'ne', 'no', 'nwa', 'nya', 'nyu', 'nyi', 'nyaa', 'nyee', 'nye', 'nyo', 'nywa',
+qq{'a}, qq{'u}, '[?]', qq{'aa}, qq{'ee}, qq{'e}, qq{'o}, qq{'wa}, 'ka', 'ku', 'ki', 'kaa', 'kee', 'ke', 'ko', '[?]',
+'kwa', '[?]', 'kwi', 'kwaa', 'kwee', 'kwe', '[?]', '[?]', 'kxa', 'kxu', 'kxi', 'kxaa', 'kxee', 'kxe', 'kxo', '[?]',
+'kxwa', '[?]', 'kxwi', 'kxwaa', 'kxwee', 'kxwe', '[?]', '[?]', 'wa', 'wu', 'wi', 'waa', 'wee', 'we', 'wo', '[?]',
+qq{`a}, qq{`u}, qq{`i}, qq{`aa}, qq{`ee}, qq{`e}, qq{`o}, '[?]', 'za', 'zu', 'zi', 'zaa', 'zee', 'ze', 'zo', 'zwa',
+'zha', 'zhu', 'zhi', 'zhaa', 'zhee', 'zhe', 'zho', 'zhwa', 'ya', 'yu', 'yi', 'yaa', 'yee', 'ye', 'yo', '[?]',
+'da', 'du', 'di', 'daa', 'dee', 'de', 'do', 'dwa', 'dda', 'ddu', 'ddi', 'ddaa', 'ddee', 'dde', 'ddo', 'ddwa',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x13.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x13.pm
new file mode 100644
index 0000000..694f610
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x13.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x13] = [
+'ja', 'ju', 'ji', 'jaa', 'jee', 'je', 'jo', 'jwa', 'ga', 'gu', 'gi', 'gaa', 'gee', 'ge', 'go', '[?]',
+'gwa', '[?]', 'gwi', 'gwaa', 'gwee', 'gwe', '[?]', '[?]', 'gga', 'ggu', 'ggi', 'ggaa', 'ggee', 'gge', 'ggo', '[?]',
+'tha', 'thu', 'thi', 'thaa', 'thee', 'the', 'tho', 'thwa', 'cha', 'chu', 'chi', 'chaa', 'chee', 'che', 'cho', 'chwa',
+'pha', 'phu', 'phi', 'phaa', 'phee', 'phe', 'pho', 'phwa', 'tsa', 'tsu', 'tsi', 'tsaa', 'tsee', 'tse', 'tso', 'tswa',
+'tza', 'tzu', 'tzi', 'tzaa', 'tzee', 'tze', 'tzo', '[?]', 'fa', 'fu', 'fi', 'faa', 'fee', 'fe', 'fo', 'fwa',
+'pa', 'pu', 'pi', 'paa', 'pee', 'pe', 'po', 'pwa', 'rya', 'mya', 'fya', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', ' ', qq{.}, qq{,}, qq{;}, qq{:}, qq{:: }, qq{?}, qq{//}, '1', '2', '3', '4', '5', '6', '7',
+'8', '9', qq{10+}, qq{20+}, qq{30+}, qq{40+}, qq{50+}, qq{60+}, qq{70+}, qq{80+}, qq{90+}, qq{100+}, qq{10,000+}, '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'a', 'e', 'i', 'o', 'u', 'v', 'ga', 'ka', 'ge', 'gi', 'go', 'gu', 'gv', 'ha', 'he', 'hi',
+'ho', 'hu', 'hv', 'la', 'le', 'li', 'lo', 'lu', 'lv', 'ma', 'me', 'mi', 'mo', 'mu', 'na', 'hna',
+'nah', 'ne', 'ni', 'no', 'nu', 'nv', 'qua', 'que', 'qui', 'quo', 'quu', 'quv', 'sa', 's', 'se', 'si',
+'so', 'su', 'sv', 'da', 'ta', 'de', 'te', 'di', 'ti', 'do', 'du', 'dv', 'dla', 'tla', 'tle', 'tli',
+'tlo', 'tlu', 'tlv', 'tsa', 'tse', 'tsi', 'tso', 'tsu', 'tsv', 'wa', 'we', 'wi', 'wo', 'wu', 'wv', 'ya',
+'ye', 'yi', 'yo', 'yu', 'yv', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x14.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x14.pm
new file mode 100644
index 0000000..90c6bf4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x14.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x14] = [
+'[?]', 'e', 'aai', 'i', 'ii', 'o', 'oo', 'oo', 'ee', 'i', 'a', 'aa', 'we', 'we', 'wi', 'wi',
+'wii', 'wii', 'wo', 'wo', 'woo', 'woo', 'woo', 'wa', 'wa', 'waa', 'waa', 'waa', 'ai', 'w', qq{'}, 't',
+'k', 'sh', 's', 'n', 'w', 'n', qq{[?]}, 'w', 'c', qq{?}, 'l', 'en', 'in', 'on', 'an', 'pe',
+'paai', 'pi', 'pii', 'po', 'poo', 'poo', 'hee', 'hi', 'pa', 'paa', 'pwe', 'pwe', 'pwi', 'pwi', 'pwii', 'pwii',
+'pwo', 'pwo', 'pwoo', 'pwoo', 'pwa', 'pwa', 'pwaa', 'pwaa', 'pwaa', 'p', 'p', 'h', 'te', 'taai', 'ti', 'tii',
+'to', 'too', 'too', 'dee', 'di', 'ta', 'taa', 'twe', 'twe', 'twi', 'twi', 'twii', 'twii', 'two', 'two', 'twoo',
+'twoo', 'twa', 'twa', 'twaa', 'twaa', 'twaa', 't', 'tte', 'tti', 'tto', 'tta', 'ke', 'kaai', 'ki', 'kii', 'ko',
+'koo', 'koo', 'ka', 'kaa', 'kwe', 'kwe', 'kwi', 'kwi', 'kwii', 'kwii', 'kwo', 'kwo', 'kwoo', 'kwoo', 'kwa', 'kwa',
+'kwaa', 'kwaa', 'kwaa', 'k', 'kw', 'keh', 'kih', 'koh', 'kah', 'ce', 'caai', 'ci', 'cii', 'co', 'coo', 'coo',
+'ca', 'caa', 'cwe', 'cwe', 'cwi', 'cwi', 'cwii', 'cwii', 'cwo', 'cwo', 'cwoo', 'cwoo', 'cwa', 'cwa', 'cwaa', 'cwaa',
+'cwaa', 'c', 'th', 'me', 'maai', 'mi', 'mii', 'mo', 'moo', 'moo', 'ma', 'maa', 'mwe', 'mwe', 'mwi', 'mwi',
+'mwii', 'mwii', 'mwo', 'mwo', 'mwoo', 'mwoo', 'mwa', 'mwa', 'mwaa', 'mwaa', 'mwaa', 'm', 'm', 'mh', 'm', 'm',
+'ne', 'naai', 'ni', 'nii', 'no', 'noo', 'noo', 'na', 'naa', 'nwe', 'nwe', 'nwa', 'nwa', 'nwaa', 'nwaa', 'nwaa',
+'n', 'ng', 'nh', 'le', 'laai', 'li', 'lii', 'lo', 'loo', 'loo', 'la', 'laa', 'lwe', 'lwe', 'lwi', 'lwi',
+'lwii', 'lwii', 'lwo', 'lwo', 'lwoo', 'lwoo', 'lwa', 'lwa', 'lwaa', 'lwaa', 'l', 'l', 'l', 'se', 'saai', 'si',
+'sii', 'so', 'soo', 'soo', 'sa', 'saa', 'swe', 'swe', 'swi', 'swi', 'swii', 'swii', 'swo', 'swo', 'swoo', 'swoo',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x15.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x15.pm
new file mode 100644
index 0000000..6a57cd0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x15.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x15] = [
+'swa', 'swa', 'swaa', 'swaa', 'swaa', 's', 's', 'sw', 's', 'sk', 'skw', 'sW', 'spwa', 'stwa', 'skwa', 'scwa',
+'she', 'shi', 'shii', 'sho', 'shoo', 'sha', 'shaa', 'shwe', 'shwe', 'shwi', 'shwi', 'shwii', 'shwii', 'shwo', 'shwo', 'shwoo',
+'shwoo', 'shwa', 'shwa', 'shwaa', 'shwaa', 'sh', 'ye', 'yaai', 'yi', 'yii', 'yo', 'yoo', 'yoo', 'ya', 'yaa', 'ywe',
+'ywe', 'ywi', 'ywi', 'ywii', 'ywii', 'ywo', 'ywo', 'ywoo', 'ywoo', 'ywa', 'ywa', 'ywaa', 'ywaa', 'ywaa', 'y', 'y',
+'y', 'yi', 're', 're', 'le', 'raai', 'ri', 'rii', 'ro', 'roo', 'lo', 'ra', 'raa', 'la', 'rwaa', 'rwaa',
+'r', 'r', 'r', 'fe', 'faai', 'fi', 'fii', 'fo', 'foo', 'fa', 'faa', 'fwaa', 'fwaa', 'f', 'the', 'the',
+'thi', 'thi', 'thii', 'thii', 'tho', 'thoo', 'tha', 'thaa', 'thwaa', 'thwaa', 'th', 'tthe', 'tthi', 'ttho', 'ttha', 'tth',
+'tye', 'tyi', 'tyo', 'tya', 'he', 'hi', 'hii', 'ho', 'hoo', 'ha', 'haa', 'h', 'h', 'hk', 'qaai', 'qi',
+'qii', 'qo', 'qoo', 'qa', 'qaa', 'q', 'tlhe', 'tlhi', 'tlho', 'tlha', 're', 'ri', 'ro', 'ra', 'ngaai', 'ngi',
+'ngii', 'ngo', 'ngoo', 'nga', 'ngaa', 'ng', 'nng', 'she', 'shi', 'sho', 'sha', 'the', 'thi', 'tho', 'tha', 'th',
+'lhi', 'lhii', 'lho', 'lhoo', 'lha', 'lhaa', 'lh', 'the', 'thi', 'thii', 'tho', 'thoo', 'tha', 'thaa', 'th', 'b',
+'e', 'i', 'o', 'a', 'we', 'wi', 'wo', 'wa', 'ne', 'ni', 'no', 'na', 'ke', 'ki', 'ko', 'ka',
+'he', 'hi', 'ho', 'ha', 'ghu', 'gho', 'ghe', 'ghee', 'ghi', 'gha', 'ru', 'ro', 're', 'ree', 'ri', 'ra',
+'wu', 'wo', 'we', 'wee', 'wi', 'wa', 'hwu', 'hwo', 'hwe', 'hwee', 'hwi', 'hwa', 'thu', 'tho', 'the', 'thee',
+'thi', 'tha', 'ttu', 'tto', 'tte', 'ttee', 'tti', 'tta', 'pu', 'po', 'pe', 'pee', 'pi', 'pa', 'p', 'gu',
+'go', 'ge', 'gee', 'gi', 'ga', 'khu', 'kho', 'khe', 'khee', 'khi', 'kha', 'kku', 'kko', 'kke', 'kkee', 'kki',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x16.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x16.pm
new file mode 100644
index 0000000..0810fc2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x16.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x16] = [
+'kka', 'kk', 'nu', 'no', 'ne', 'nee', 'ni', 'na', 'mu', 'mo', 'me', 'mee', 'mi', 'ma', 'yu', 'yo',
+'ye', 'yee', 'yi', 'ya', 'ju', 'ju', 'jo', 'je', 'jee', 'ji', 'ji', 'ja', 'jju', 'jjo', 'jje', 'jjee',
+'jji', 'jja', 'lu', 'lo', 'le', 'lee', 'li', 'la', 'dlu', 'dlo', 'dle', 'dlee', 'dli', 'dla', 'lhu', 'lho',
+'lhe', 'lhee', 'lhi', 'lha', 'tlhu', 'tlho', 'tlhe', 'tlhee', 'tlhi', 'tlha', 'tlu', 'tlo', 'tle', 'tlee', 'tli', 'tla',
+'zu', 'zo', 'ze', 'zee', 'zi', 'za', 'z', 'z', 'dzu', 'dzo', 'dze', 'dzee', 'dzi', 'dza', 'su', 'so',
+'se', 'see', 'si', 'sa', 'shu', 'sho', 'she', 'shee', 'shi', 'sha', 'sh', 'tsu', 'tso', 'tse', 'tsee', 'tsi',
+'tsa', 'chu', 'cho', 'che', 'chee', 'chi', 'cha', 'ttsu', 'ttso', 'ttse', 'ttsee', 'ttsi', 'ttsa', 'X', qq{.}, 'qai',
+'ngai', 'nngi', 'nngii', 'nngo', 'nngoo', 'nnga', 'nngaa', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+' ', 'b', 'l', 'f', 's', 'n', 'h', 'd', 't', 'c', 'q', 'm', 'g', 'ng', 'z', 'r',
+'a', 'o', 'u', 'e', 'i', 'ch', 'th', 'ph', 'p', 'x', 'p', qq{<}, qq{>}, '[?]', '[?]', '[?]',
+'f', 'v', 'u', 'yr', 'y', 'w', 'th', 'th', 'a', 'o', 'ac', 'ae', 'o', 'o', 'o', 'oe',
+'on', 'r', 'k', 'c', 'k', 'g', 'ng', 'g', 'g', 'w', 'h', 'h', 'h', 'h', 'n', 'n',
+'n', 'i', 'e', 'j', 'g', 'ae', 'a', 'eo', 'p', 'z', 's', 's', 's', 'c', 'z', 't',
+'t', 'd', 'b', 'b', 'p', 'p', 'e', 'm', 'm', 'm', 'l', 'l', 'ng', 'ng', 'd', 'o',
+'ear', 'ior', 'qu', 'qu', 'qu', 's', 'yr', 'yr', 'yr', 'q', 'x', qq{.}, qq{:}, qq{+}, '17', '18',
+'19', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x17.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x17.pm
new file mode 100644
index 0000000..46681fa
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x17.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x17] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'k', 'kh', 'g', 'gh', 'ng', 'c', 'ch', 'j', 'jh', 'ny', 't', 'tth', 'd', 'ddh', 'nn', 't',
+'th', 'd', 'dh', 'n', 'p', 'ph', 'b', 'bh', 'm', 'y', 'r', 'l', 'v', 'sh', 'ss', 's',
+'h', 'l', 'q', 'a', 'aa', 'i', 'ii', 'u', 'uk', 'uu', 'uuv', 'ry', 'ryy', 'ly', 'lyy', 'e',
+'ai', 'oo', 'oo', 'au', 'a', 'aa', 'aa', 'i', 'ii', 'y', 'yy', 'u', 'uu', 'ua', 'oe', 'ya',
+'ie', 'e', 'ae', 'ai', 'oo', 'au', 'M', 'H', qq{a`}, "", "", "", 'r', "", qq{!}, "",
+"", "", "", "", qq{.}, qq{ // }, qq{:}, qq{+}, qq{++}, qq{ * }, qq{ /// }, 'KR', qq{'}, '[?]', '[?]', '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x18.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x18.pm
new file mode 100644
index 0000000..9a96a18
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x18.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x18] = [
+qq{ \@ }, qq{ ... }, qq{, }, qq{. }, qq{: }, qq{ // }, "", qq{-}, qq{, }, qq{. }, "", "", "", "", "", '[?]',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'a', 'e', 'i', 'o', 'u', 'O', 'U', 'ee', 'n', 'ng', 'b', 'p', 'q', 'g', 'm', 'l',
+'s', 'sh', 't', 'd', 'ch', 'j', 'y', 'r', 'w', 'f', 'k', 'kha', 'ts', 'z', 'h', 'zr',
+'lh', 'zh', 'ch', qq{-}, 'e', 'i', 'o', 'u', 'O', 'U', 'ng', 'b', 'p', 'q', 'g', 'm',
+'t', 'd', 'ch', 'j', 'ts', 'y', 'w', 'k', 'g', 'h', 'jy', 'ny', 'dz', 'e', 'i', 'iy',
+'U', 'u', 'ng', 'k', 'g', 'h', 'p', 'sh', 't', 'd', 'j', 'f', 'g', 'h', 'ts', 'z',
+'r', 'ch', 'zh', 'i', 'k', 'r', 'f', 'zh', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', 'H', 'X', 'W', 'M', ' 3 ', ' 333 ', 'a', 'i', 'k', 'ng', 'c', 'tt', 'tth', 'dd', 'nn',
+'t', 'd', 'p', 'ph', 'ss', 'zh', 'z', 'a', 't', 'zh', 'gh', 'ng', 'c', 'jh', 'tta', 'ddh',
+'t', 'dh', 'ss', 'cy', 'zh', 'z', 'u', 'y', 'bh', qq{'}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1e.pm
new file mode 100644
index 0000000..527cddb
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x1e] = [
+'A', 'a', 'B', 'b', 'B', 'b', 'B', 'b', 'C', 'c', 'D', 'd', 'D', 'd', 'D', 'd',
+'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'F', 'f',
+'G', 'g', 'H', 'h', 'H', 'h', 'H', 'h', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i',
+'K', 'k', 'K', 'k', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'M', 'm',
+'M', 'm', 'M', 'm', 'N', 'n', 'N', 'n', 'N', 'n', 'N', 'n', 'O', 'o', 'O', 'o',
+'O', 'o', 'O', 'o', 'P', 'p', 'P', 'p', 'R', 'r', 'R', 'r', 'R', 'r', 'R', 'r',
+'S', 's', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't',
+'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'V', 'v', 'V', 'v',
+'W', 'w', 'W', 'w', 'W', 'w', 'W', 'w', 'W', 'w', 'X', 'x', 'X', 'x', 'Y', 'y',
+'Z', 'z', 'Z', 'z', 'Z', 'z', 'h', 't', 'w', 'y', 'a', 'S', '[?]', '[?]', '[?]', '[?]',
+'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a',
+'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e',
+'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'I', 'i', 'I', 'i', 'O', 'o', 'O', 'o',
+'O', 'o', 'O', 'o', 'O', 'o', 'O', 'o', 'O', 'o', 'O', 'o', 'O', 'o', 'O', 'o',
+'O', 'o', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u',
+'U', 'u', 'Y', 'y', 'Y', 'y', 'Y', 'y', 'Y', 'y', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1f.pm
new file mode 100644
index 0000000..e4e00a2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x1f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x1f] = [
+'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+'e', 'e', 'e', 'e', 'e', 'e', '[?]', '[?]', 'E', 'E', 'E', 'E', 'E', 'E', '[?]', '[?]',
+'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E',
+'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I',
+'o', 'o', 'o', 'o', 'o', 'o', '[?]', '[?]', 'O', 'O', 'O', 'O', 'O', 'O', '[?]', '[?]',
+'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', '[?]', 'U', '[?]', 'U', '[?]', 'U', '[?]', 'U',
+'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O',
+'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'o', 'o', 'u', 'u', 'o', 'o', '[?]', '[?]',
+'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E',
+'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O',
+'a', 'a', 'a', 'a', 'a', '[?]', 'a', 'a', 'A', 'A', 'A', 'A', 'A', qq{'}, 'i', qq{'},
+qq{~}, qq{"~}, 'e', 'e', 'e', '[?]', 'e', 'e', 'E', 'E', 'E', 'E', 'E', qq{'`}, qq{''}, qq{'~},
+'i', 'i', 'i', 'i', '[?]', '[?]', 'i', 'i', 'I', 'I', 'I', 'I', '[?]', qq{`'}, qq{`'}, qq{`~},
+'u', 'u', 'u', 'u', 'R', 'R', 'u', 'u', 'U', 'U', 'U', 'U', 'R', qq{"`}, qq{"'}, qq{`},
+'[?]', '[?]', 'o', 'o', 'o', '[?]', 'o', 'o', 'O', 'O', 'O', 'O', 'O', qq{'}, qq{`},
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x20.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x20.pm
new file mode 100644
index 0000000..720d9c2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x20.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x20] = [
+' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', "", "", "", "",
+qq{-}, qq{-}, qq{-}, qq{-}, qq{--}, qq{--}, qq{||}, qq{_}, qq{'}, qq{'}, qq{,}, qq{'}, qq{"}, qq{"}, qq{,,}, qq{"},
+qq{+}, qq{++}, qq{*}, qq{*>}, qq{.}, qq{..}, qq{...}, qq{.}, qq{\n}, qq{\n\n}, "", "", "", "", "", ' ',
+qq{%0}, qq{%00}, qq{'}, qq{''}, qq{'''}, qq{`}, qq{``}, qq{```}, qq{^}, qq{<}, qq{>}, qq{*}, qq{!!}, qq{!?}, qq{-}, qq{_},
+qq{-}, qq{^}, qq{***}, qq{--}, qq{/}, qq{-[}, qq{]-}, '[?]', qq{?!}, qq{!?}, '7', 'PP', qq{(]}, qq{[)}, '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', "", "", "", "", "", "",
+'0', "", "", "", '4', '5', '6', '7', '8', '9', qq{+}, qq{-}, qq{=}, qq{(}, qq{)}, 'n',
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{+}, qq{-}, qq{=}, qq{(}, qq{)}, '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'ECU', 'CL', 'Cr', 'FF', 'L', 'mil', 'N', 'Pts', 'Rs', 'W', 'NS', 'D', 'EU', 'K', 'T', 'Dr',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x21.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x21.pm
new file mode 100644
index 0000000..13f5039
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x21.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x21] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', qq{ 1/3 }, qq{ 2/3 }, qq{ 1/5 }, qq{ 2/5 }, qq{ 3/5 }, qq{ 4/5 }, qq{ 1/6 }, qq{ 5/6 }, qq{ 1/8 }, qq{ 3/8 }, qq{ 5/8 }, qq{ 7/8 }, qq{ 1/},
+'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'L', 'C', 'D', 'M',
+'i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii', 'ix', 'x', 'xi', 'xii', 'l', 'c', 'd', 'm',
+qq{(D}, qq{D)}, qq{((|))}, qq{)}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{|}, qq{\\}, qq{/}, qq{\\}, qq{/}, qq{-}, qq{-}, qq{~}, qq{~}, qq{-}, qq{|},
+qq{-}, qq{|}, qq{-}, qq{-}, qq{-}, qq{|}, qq{-}, qq{|}, qq{|}, qq{-}, qq{-}, qq{-}, qq{-}, qq{-}, qq{-}, qq{|},
+qq{|}, qq{|}, qq{|}, qq{|}, qq{|}, qq{|}, qq{^}, 'V', qq{\\}, qq{=}, 'V', qq{^}, qq{-}, qq{-}, qq{|}, qq{|},
+qq{-}, qq{-}, qq{|}, qq{|}, qq{=}, qq{|}, qq{=}, qq{=}, qq{|}, qq{=}, qq{|}, qq{=}, qq{=}, qq{=}, qq{=}, qq{=},
+qq{=}, qq{|}, qq{=}, qq{|}, qq{=}, qq{|}, qq{\\}, qq{/}, qq{\\}, qq{/}, qq{=}, qq{=}, qq{~}, qq{~}, qq{|}, qq{|},
+qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{-}, qq{-}, qq{|}, qq{-}, qq{|}, qq{|}, qq{|}, qq{|}, qq{|}, qq{|}, qq{|},
+qq{-}, qq{\\}, qq{\\}, qq{|}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x22.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x22.pm
new file mode 100644
index 0000000..e786264
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x22.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:22 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x22] = [
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x23.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x23.pm
new file mode 100644
index 0000000..5a086a0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x23.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x23] = [
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, '[?]', qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]},
+qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, qq{[?]}, '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x24.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x24.pm
new file mode 100644
index 0000000..339a38e
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x24.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x24] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x25.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x25.pm
new file mode 100644
index 0000000..798e51f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x25.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x25] = [
+qq{-}, qq{-}, qq{|}, qq{|}, qq{-}, qq{-}, qq{|}, qq{|}, qq{-}, qq{-}, qq{|}, qq{|}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{-}, qq{-}, qq{|}, qq{|},
+qq{-}, qq{|}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+}, qq{+},
+qq{+}, qq{/}, qq{\\}, 'X', qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{|}, qq{-}, qq{|},
+qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#},
+qq{#}, qq{#}, qq{#}, qq{#}, qq{-}, qq{|}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#},
+qq{#}, qq{#}, qq{^}, qq{^}, qq{^}, qq{^}, qq{>}, qq{>}, qq{>}, qq{>}, qq{>}, qq{>}, 'V', 'V', 'V', 'V',
+qq{<}, qq{<}, qq{<}, qq{<}, qq{<}, qq{<}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*},
+qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*},
+qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{*}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{^}, qq{^}, qq{^}, 'O',
+qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, qq{#}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x26.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x26.pm
new file mode 100644
index 0000000..ddc7761
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x26.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x26] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]', "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x27.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x27.pm
new file mode 100644
index 0000000..e67eb60
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x27.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x27] = [
+'[?]', "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", '[?]',
+'[?]', "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+'[?]', "", "", "", "", "", "", "", "", "", "", "", "", "", "", '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x28.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x28.pm
new file mode 100644
index 0000000..55ea4b5
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x28.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x28] = [
+' ', 'a', '1', 'b', qq{'}, 'k', '2', 'l', qq{\@}, 'c', 'i', 'f', qq{/}, 'm', 's', 'p',
+qq{"}, 'e', '3', 'h', '9', 'o', '6', 'r', qq{^}, 'd', 'j', 'g', qq{>}, 'n', 't', 'q',
+qq{,}, qq{*}, '5', qq{<}, qq{-}, 'u', '8', 'v', qq{.}, qq{%}, qq{[}, qq{\$}, qq{+}, 'x', qq{!}, qq{&},
+qq{;}, qq{:}, '4', qq{\\}, '0', 'z', '7', qq{(}, qq{_}, qq{?}, 'w', qq{]}, qq{#}, 'y', qq{)}, qq{=},
+qq{[d7]}, qq{[d17]}, qq{[d27]}, qq{[d127]}, qq{[d37]}, qq{[d137]}, qq{[d237]}, qq{[d1237]}, qq{[d47]}, qq{[d147]}, qq{[d247]}, qq{[d1247]}, qq{[d347]}, qq{[d1347]}, qq{[d2347]}, qq{[d12347]},
+qq{[d57]}, qq{[d157]}, qq{[d257]}, qq{[d1257]}, qq{[d357]}, qq{[d1357]}, qq{[d2357]}, qq{[d12357]}, qq{[d457]}, qq{[d1457]}, qq{[d2457]}, qq{[d12457]}, qq{[d3457]}, qq{[d13457]}, qq{[d23457]}, qq{[d123457]},
+qq{[d67]}, qq{[d167]}, qq{[d267]}, qq{[d1267]}, qq{[d367]}, qq{[d1367]}, qq{[d2367]}, qq{[d12367]}, qq{[d467]}, qq{[d1467]}, qq{[d2467]}, qq{[d12467]}, qq{[d3467]}, qq{[d13467]}, qq{[d23467]}, qq{[d123467]},
+qq{[d567]}, qq{[d1567]}, qq{[d2567]}, qq{[d12567]}, qq{[d3567]}, qq{[d13567]}, qq{[d23567]}, qq{[d123567]}, qq{[d4567]}, qq{[d14567]}, qq{[d24567]}, qq{[d124567]}, qq{[d34567]}, qq{[d134567]}, qq{[d234567]}, qq{[d1234567]},
+qq{[d8]}, qq{[d18]}, qq{[d28]}, qq{[d128]}, qq{[d38]}, qq{[d138]}, qq{[d238]}, qq{[d1238]}, qq{[d48]}, qq{[d148]}, qq{[d248]}, qq{[d1248]}, qq{[d348]}, qq{[d1348]}, qq{[d2348]}, qq{[d12348]},
+qq{[d58]}, qq{[d158]}, qq{[d258]}, qq{[d1258]}, qq{[d358]}, qq{[d1358]}, qq{[d2358]}, qq{[d12358]}, qq{[d458]}, qq{[d1458]}, qq{[d2458]}, qq{[d12458]}, qq{[d3458]}, qq{[d13458]}, qq{[d23458]}, qq{[d123458]},
+qq{[d68]}, qq{[d168]}, qq{[d268]}, qq{[d1268]}, qq{[d368]}, qq{[d1368]}, qq{[d2368]}, qq{[d12368]}, qq{[d468]}, qq{[d1468]}, qq{[d2468]}, qq{[d12468]}, qq{[d3468]}, qq{[d13468]}, qq{[d23468]}, qq{[d123468]},
+qq{[d568]}, qq{[d1568]}, qq{[d2568]}, qq{[d12568]}, qq{[d3568]}, qq{[d13568]}, qq{[d23568]}, qq{[d123568]}, qq{[d4568]}, qq{[d14568]}, qq{[d24568]}, qq{[d124568]}, qq{[d34568]}, qq{[d134568]}, qq{[d234568]}, qq{[d1234568]},
+qq{[d78]}, qq{[d178]}, qq{[d278]}, qq{[d1278]}, qq{[d378]}, qq{[d1378]}, qq{[d2378]}, qq{[d12378]}, qq{[d478]}, qq{[d1478]}, qq{[d2478]}, qq{[d12478]}, qq{[d3478]}, qq{[d13478]}, qq{[d23478]}, qq{[d123478]},
+qq{[d578]}, qq{[d1578]}, qq{[d2578]}, qq{[d12578]}, qq{[d3578]}, qq{[d13578]}, qq{[d23578]}, qq{[d123578]}, qq{[d4578]}, qq{[d14578]}, qq{[d24578]}, qq{[d124578]}, qq{[d34578]}, qq{[d134578]}, qq{[d234578]}, qq{[d1234578]},
+qq{[d678]}, qq{[d1678]}, qq{[d2678]}, qq{[d12678]}, qq{[d3678]}, qq{[d13678]}, qq{[d23678]}, qq{[d123678]}, qq{[d4678]}, qq{[d14678]}, qq{[d24678]}, qq{[d124678]}, qq{[d34678]}, qq{[d134678]}, qq{[d234678]}, qq{[d1234678]},
+qq{[d5678]}, qq{[d15678]}, qq{[d25678]}, qq{[d125678]}, qq{[d35678]}, qq{[d135678]}, qq{[d235678]}, qq{[d1235678]}, qq{[d45678]}, qq{[d145678]}, qq{[d245678]}, qq{[d1245678]}, qq{[d345678]}, qq{[d1345678]}, qq{[d2345678]}, qq{[d12345678]},
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2e.pm
new file mode 100644
index 0000000..e57949f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:23 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x2e] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, '[?]', qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2f.pm
new file mode 100644
index 0000000..67cd4ce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x2f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:24 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x2f] = [
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x30.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x30.pm
new file mode 100644
index 0000000..dd0d37e
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x30.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:24 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x30] = [
+' ', qq{, }, qq{. }, qq{"}, qq{[JIS]}, qq{"}, qq{/}, '0', qq{<}, qq{> }, qq{<<}, qq{>> }, qq{[}, qq{] }, qq{\{}, qq{\} },
+qq{[(}, qq{)] }, qq{\@}, 'X ', qq{[}, qq{] }, qq{[[}, qq{]] }, qq{((}, qq{)) }, qq{[[}, qq{]] }, qq{~ }, qq{``}, qq{''}, qq{,,},
+qq{\@}, '1', '2', '3', '4', '5', '6', '7', '8', '9', "", "", "", "", "", "",
+qq{~}, qq{+}, qq{+}, qq{+}, qq{+}, "", qq{\@}, qq{ // }, qq{+10+}, qq{+20+}, qq{+30+}, '[?]', '[?]', '[?]', "", "",
+'[?]', 'a', 'a', 'i', 'i', 'u', 'u', 'e', 'e', 'o', 'o', 'ka', 'ga', 'ki', 'gi', 'ku',
+'gu', 'ke', 'ge', 'ko', 'go', 'sa', 'za', 'si', 'zi', 'su', 'zu', 'se', 'ze', 'so', 'zo', 'ta',
+'da', 'ti', 'di', 'tu', 'tu', 'du', 'te', 'de', 'to', 'do', 'na', 'ni', 'nu', 'ne', 'no', 'ha',
+'ba', 'pa', 'hi', 'bi', 'pi', 'hu', 'bu', 'pu', 'he', 'be', 'pe', 'ho', 'bo', 'po', 'ma', 'mi',
+'mu', 'me', 'mo', 'ya', 'ya', 'yu', 'yu', 'yo', 'yo', 'ra', 'ri', 'ru', 're', 'ro', 'wa', 'wa',
+'wi', 'we', 'wo', 'n', 'vu', '[?]', '[?]', '[?]', '[?]', "", "", "", "", qq{"}, qq{"}, '[?]',
+'[?]', 'a', 'a', 'i', 'i', 'u', 'u', 'e', 'e', 'o', 'o', 'ka', 'ga', 'ki', 'gi', 'ku',
+'gu', 'ke', 'ge', 'ko', 'go', 'sa', 'za', 'si', 'zi', 'su', 'zu', 'se', 'ze', 'so', 'zo', 'ta',
+'da', 'ti', 'di', 'tu', 'tu', 'du', 'te', 'de', 'to', 'do', 'na', 'ni', 'nu', 'ne', 'no', 'ha',
+'ba', 'pa', 'hi', 'bi', 'pi', 'hu', 'bu', 'pu', 'he', 'be', 'pe', 'ho', 'bo', 'po', 'ma', 'mi',
+'mu', 'me', 'mo', 'ya', 'ya', 'yu', 'yu', 'yo', 'yo', 'ra', 'ri', 'ru', 're', 'ro', 'wa', 'wa',
+'wi', 'we', 'wo', 'n', 'vu', 'ka', 'ke', 'va', 'vi', 've', 'vo', "", "", qq{"}, qq{"},
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x31.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x31.pm
new file mode 100644
index 0000000..670b8b9
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x31.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:24 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x31] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', 'B', 'P', 'M', 'F', 'D', 'T', 'N', 'L', 'G', 'K', 'H',
+'J', 'Q', 'X', 'ZH', 'CH', 'SH', 'R', 'Z', 'C', 'S', 'A', 'O', 'E', 'EH', 'AI', 'EI',
+'AU', 'OU', 'AN', 'EN', 'ANG', 'ENG', 'ER', 'I', 'U', 'IU', 'V', 'NG', 'GN', '[?]', '[?]', '[?]',
+'[?]', 'g', 'gg', 'gs', 'n', 'nj', 'nh', 'd', 'dd', 'r', 'lg', 'lm', 'lb', 'ls', 'lt', 'lp',
+'rh', 'm', 'b', 'bb', 'bs', 's', 'ss', "", 'j', 'jj', 'c', 'k', 't', 'p', 'h', 'a',
+'ae', 'ya', 'yae', 'eo', 'e', 'yeo', 'ye', 'o', 'wa', 'wae', 'oe', 'yo', 'u', 'weo', 'we', 'wi',
+'yu', 'eu', 'yi', 'i', "", 'nn', 'nd', 'ns', 'nZ', 'lgs', 'ld', 'lbs', 'lZ', 'lQ', 'mb', 'ms',
+'mZ', 'mN', 'bg', "", 'bsg', 'bst', 'bj', 'bt', 'bN', 'bbN', 'sg', 'sn', 'sd', 'sb', 'sj', 'Z',
+"", 'N', 'Ns', 'NZ', 'pN', 'hh', 'Q', qq{yo-ya}, qq{yo-yae}, qq{yo-i}, qq{yu-yeo}, qq{yu-ye}, qq{yu-i}, 'U', qq{U-i}, '[?]',
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+'BU', 'ZI', 'JI', 'GU', 'EE', 'ENN', 'OO', 'ONN', 'IR', 'ANN', 'INN', 'UNN', 'IM', 'NGG', 'AINN', 'AUNN',
+'AM', 'OM', 'ONG', 'INNN', 'P', 'T', 'K', 'H', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x32.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x32.pm
new file mode 100644
index 0000000..44a92af
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x32.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:24 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x32] = [
+qq{(g)}, qq{(n)}, qq{(d)}, qq{(r)}, qq{(m)}, qq{(b)}, qq{(s)}, qq{()}, qq{(j)}, qq{(c)}, qq{(k)}, qq{(t)}, qq{(p)}, qq{(h)}, qq{(ga)}, qq{(na)},
+qq{(da)}, qq{(ra)}, qq{(ma)}, qq{(ba)}, qq{(sa)}, qq{(a)}, qq{(ja)}, qq{(ca)}, qq{(ka)}, qq{(ta)}, qq{(pa)}, qq{(ha)}, qq{(ju)}, '[?]', '[?]', '[?]',
+qq{(1) }, qq{(2) }, qq{(3) }, qq{(4) }, qq{(5) }, qq{(6) }, qq{(7) }, qq{(8) }, qq{(9) }, qq{(10) }, qq{(Yue) }, qq{(Huo) }, qq{(Shui) }, qq{(Mu) }, qq{(Jin) }, qq{(Tu) },
+qq{(Ri) }, qq{(Zhu) }, qq{(You) }, qq{(She) }, qq{(Ming) }, qq{(Te) }, qq{(Cai) }, qq{(Zhu) }, qq{(Lao) }, qq{(Dai) }, qq{(Hu) }, qq{(Xue) }, qq{(Jian) }, qq{(Qi) }, qq{(Zi) }, qq{(Xie) },
+qq{(Ji) }, qq{(Xiu) }, qq{<<}, qq{>>}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{(g)}, qq{(n)}, qq{(d)}, qq{(r)}, qq{(m)}, qq{(b)}, qq{(s)}, qq{()}, qq{(j)}, qq{(c)}, qq{(k)}, qq{(t)}, qq{(p)}, qq{(h)}, qq{(ga)}, qq{(na)},
+qq{(da)}, qq{(ra)}, qq{(ma)}, qq{(ba)}, qq{(sa)}, qq{(a)}, qq{(ja)}, qq{(ca)}, qq{(ka)}, qq{(ta)}, qq{(pa)}, qq{(ha)}, '[?]', '[?]', '[?]', 'KIS ',
+qq{(1) }, qq{(2) }, qq{(3) }, qq{(4) }, qq{(5) }, qq{(6) }, qq{(7) }, qq{(8) }, qq{(9) }, qq{(10) }, qq{(Yue) }, qq{(Huo) }, qq{(Shui) }, qq{(Mu) }, qq{(Jin) }, qq{(Tu) },
+qq{(Ri) }, qq{(Zhu) }, qq{(You) }, qq{(She) }, qq{(Ming) }, qq{(Te) }, qq{(Cai) }, qq{(Zhu) }, qq{(Lao) }, qq{(Mi) }, qq{(Nan) }, qq{(Nu) }, qq{(Shi) }, qq{(You) }, qq{(Yin) }, qq{(Zhu) },
+qq{(Xiang) }, qq{(Xiu) }, qq{(Xie) }, qq{(Zheng) }, qq{(Shang) }, qq{(Zhong) }, qq{(Xia) }, qq{(Zuo) }, qq{(You) }, qq{(Yi) }, qq{(Zong) }, qq{(Xue) }, qq{(Jian) }, qq{(Qi) }, qq{(Zi) }, qq{(Xie) },
+qq{(Ye) }, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'1M', '2M', '3M', '4M', '5M', '6M', '7M', '8M', '9M', '10M', '11M', '12M', '[?]', '[?]', '[?]', '[?]',
+'a', 'i', 'u', 'u', 'o', 'ka', 'ki', 'ku', 'ke', 'ko', 'sa', 'si', 'su', 'se', 'so', 'ta',
+'ti', 'tu', 'te', 'to', 'na', 'ni', 'nu', 'ne', 'no', 'ha', 'hi', 'hu', 'he', 'ho', 'ma', 'mi',
+'mu', 'me', 'mo', 'ya', 'yu', 'yo', 'ra', 'ri', 'ru', 're', 'ro', 'wa', 'wi', 'we', 'wo',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x33.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x33.pm
new file mode 100644
index 0000000..c1d0fa1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x33.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:24 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x33] = [
+'apartment', 'alpha', 'ampere', 'are', 'inning', 'inch', 'won', 'escudo', 'acre', 'ounce', 'ohm', qq{kai-ri}, 'carat', 'calorie', 'gallon', 'gamma',
+'giga', 'guinea', 'curie', 'guilder', 'kilo', 'kilogram', 'kilometer', 'kilowatt', 'gram', 'gram ton', 'cruzeiro', 'krone', 'case', 'koruna', qq{co-op}, 'cycle',
+'centime', 'shilling', 'centi', 'cent', 'dozen', 'desi', 'dollar', 'ton', 'nano', 'knot', 'heights', 'percent', 'parts', 'barrel', 'piaster', 'picul',
+'pico', 'building', 'farad', 'feet', 'bushel', 'franc', 'hectare', 'peso', 'pfennig', 'hertz', 'pence', 'page', 'beta', 'point', 'volt', 'hon',
+'pound', 'hall', 'horn', 'micro', 'mile', 'mach', 'mark', 'mansion', 'micron', 'milli', 'millibar', 'mega', 'megaton', 'meter', 'yard', 'yard',
+'yuan', 'liter', 'lira', 'rupee', 'ruble', 'rem', 'roentgen', 'watt', '0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h',
+'8h', '9h', '10h', '11h', '12h', '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h',
+'24h', 'HPA', 'da', 'AU', 'bar', 'oV', 'pc', '[?]', '[?]', '[?]', '[?]', 'Heisei', 'Syouwa', 'Taisyou', 'Meiji', qq{Inc.},
+'pA', 'nA', 'microamp', 'mA', 'kA', 'kB', 'MB', 'GB', 'cal', 'kcal', 'pF', 'nF', 'microFarad', 'microgram', 'mg', 'kg',
+'Hz', 'kHz', 'MHz', 'GHz', 'THz', 'microliter', 'ml', 'dl', 'kl', 'fm', 'nm', 'micrometer', 'mm', 'cm', 'km', qq{mm^2},
+qq{cm^2}, qq{m^2}, qq{km^2}, qq{mm^4}, qq{cm^3}, qq{m^3}, qq{km^3}, qq{m/s}, qq{m/s^2}, 'Pa', 'kPa', 'MPa', 'GPa', 'rad', qq{rad/s}, qq{rad/s^2},
+'ps', 'ns', 'microsecond', 'ms', 'pV', 'nV', 'microvolt', 'mV', 'kV', 'MV', 'pW', 'nW', 'microwatt', 'mW', 'kW', 'MW',
+'kOhm', 'MOhm', qq{a.m.}, 'Bq', 'cc', 'cd', qq{C/kg}, qq{Co.}, 'dB', 'Gy', 'ha', 'HP', 'in', qq{K.K.}, 'KM', 'kt',
+'lm', 'ln', 'log', 'lx', 'mb', 'mil', 'mol', 'pH', qq{p.m.}, 'PPM', 'PR', 'sr', 'Sv', 'Wb', '[?]', '[?]',
+'1d', '2d', '3d', '4d', '5d', '6d', '7d', '8d', '9d', '10d', '11d', '12d', '13d', '14d', '15d', '16d',
+'17d', '18d', '19d', '20d', '21d', '22d', '23d', '24d', '25d', '26d', '27d', '28d', '29d', '30d', '31d',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4d.pm
new file mode 100644
index 0000000..1fec329
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x4d] = [
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, qq{[?] }, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4e.pm
new file mode 100644
index 0000000..458c11b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x4e] = [
+qq{[?] }, 'Ding ', 'Kao ', 'Qi ', 'Shang ', 'Xia ', qq{[?] }, 'Mo ', 'Zhang ', 'San ', 'Shang ', 'Xia ', 'Ji ', 'Bu ', 'Yu ', 'Mian ',
+'Gai ', 'Chou ', 'Chou ', 'Zhuan ', 'Qie ', 'Pi ', 'Shi ', 'Shi ', 'Qiu ', 'Bing ', 'Ye ', 'Cong ', 'Dong ', 'Si ', 'Cheng ', 'Diu ',
+'Qiu ', 'Liang ', 'Diu ', 'You ', 'Liang ', 'Yan ', 'Bing ', 'Sang ', 'Gun ', 'Jiu ', 'Ge ', 'Ya ', 'Qiang ', 'Zhong ', 'Ji ', 'Jie ',
+'Feng ', 'Guan ', 'Chuan ', 'Chan ', 'Lin ', 'Zhuo ', 'Zhu ', 'Ha ', 'Wan ', 'Dan ', 'Wei ', 'Zhu ', 'Jing ', 'Li ', 'Ju ', 'Pie ',
+'Fu ', 'Yi ', 'Yi ', 'Nai ', 'Shime ', 'Jiu ', 'Jiu ', 'Zhe ', 'Yao ', 'Yi ', qq{[?] }, 'Zhi ', 'Wu ', 'Zha ', 'Hu ', 'Fa ',
+'Le ', 'Zhong ', 'Ping ', 'Pang ', 'Qiao ', 'Hu ', 'Guai ', 'Cheng ', 'Cheng ', 'Yi ', 'Yin ', qq{[?] }, 'Mie ', 'Jiu ', 'Qi ', 'Ye ',
+'Xi ', 'Xiang ', 'Gai ', 'Diu ', 'Hal ', qq{[?] }, 'Shu ', 'Twul ', 'Shi ', 'Ji ', 'Nang ', 'Jia ', 'Kel ', 'Shi ', qq{[?] }, 'Ol ',
+'Mai ', 'Luan ', 'Cal ', 'Ru ', 'Xue ', 'Yan ', 'Fu ', 'Sha ', 'Na ', 'Gan ', 'Sol ', 'El ', 'Cwul ', qq{[?] }, 'Gan ', 'Chi ',
+'Gui ', 'Gan ', 'Luan ', 'Lin ', 'Yi ', 'Jue ', 'Liao ', 'Ma ', 'Yu ', 'Zheng ', 'Shi ', 'Shi ', 'Er ', 'Chu ', 'Yu ', 'Yu ',
+'Yu ', 'Yun ', 'Hu ', 'Qi ', 'Wu ', 'Jing ', 'Si ', 'Sui ', 'Gen ', 'Gen ', 'Ya ', 'Xie ', 'Ya ', 'Qi ', 'Ya ', 'Ji ',
+'Tou ', 'Wang ', 'Kang ', 'Ta ', 'Jiao ', 'Hai ', 'Yi ', 'Chan ', 'Heng ', 'Mu ', qq{[?] }, 'Xiang ', 'Jing ', 'Ting ', 'Liang ', 'Xiang ',
+'Jing ', 'Ye ', 'Qin ', 'Bo ', 'You ', 'Xie ', 'Dan ', 'Lian ', 'Duo ', 'Wei ', 'Ren ', 'Ren ', 'Ji ', 'La ', 'Wang ', 'Yi ',
+'Shi ', 'Ren ', 'Le ', 'Ding ', 'Ze ', 'Jin ', 'Pu ', 'Chou ', 'Ba ', 'Zhang ', 'Jin ', 'Jie ', 'Bing ', 'Reng ', 'Cong ', 'Fo ',
+'San ', 'Lun ', 'Sya ', 'Cang ', 'Zi ', 'Shi ', 'Ta ', 'Zhang ', 'Fu ', 'Xian ', 'Xian ', 'Tuo ', 'Hong ', 'Tong ', 'Ren ', 'Qian ',
+'Gan ', 'Yi ', 'Di ', 'Dai ', 'Ling ', 'Yi ', 'Chao ', 'Chang ', 'Sa ', qq{[?] }, 'Yi ', 'Mu ', 'Men ', 'Ren ', 'Jia ', 'Chao ',
+'Yang ', 'Qian ', 'Zhong ', 'Pi ', 'Wan ', 'Wu ', 'Jian ', 'Jie ', 'Yao ', 'Feng ', 'Cang ', 'Ren ', 'Wang ', 'Fen ', 'Di ', 'Fang ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4f.pm
new file mode 100644
index 0000000..c74cf5a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x4f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x4f] = [
+'Zhong ', 'Qi ', 'Pei ', 'Yu ', 'Diao ', 'Dun ', 'Wen ', 'Yi ', 'Xin ', 'Kang ', 'Yi ', 'Ji ', 'Ai ', 'Wu ', 'Ji ', 'Fu ',
+'Fa ', 'Xiu ', 'Jin ', 'Bei ', 'Dan ', 'Fu ', 'Tang ', 'Zhong ', 'You ', 'Huo ', 'Hui ', 'Yu ', 'Cui ', 'Chuan ', 'San ', 'Wei ',
+'Chuan ', 'Che ', 'Ya ', 'Xian ', 'Shang ', 'Chang ', 'Lun ', 'Cang ', 'Xun ', 'Xin ', 'Wei ', 'Zhu ', qq{[?] }, 'Xuan ', 'Nu ', 'Bo ',
+'Gu ', 'Ni ', 'Ni ', 'Xie ', 'Ban ', 'Xu ', 'Ling ', 'Zhou ', 'Shen ', 'Qu ', 'Si ', 'Beng ', 'Si ', 'Jia ', 'Pi ', 'Yi ',
+'Si ', 'Ai ', 'Zheng ', 'Dian ', 'Han ', 'Mai ', 'Dan ', 'Zhu ', 'Bu ', 'Qu ', 'Bi ', 'Shao ', 'Ci ', 'Wei ', 'Di ', 'Zhu ',
+'Zuo ', 'You ', 'Yang ', 'Ti ', 'Zhan ', 'He ', 'Bi ', 'Tuo ', 'She ', 'Yu ', 'Yi ', 'Fo ', 'Zuo ', 'Kou ', 'Ning ', 'Tong ',
+'Ni ', 'Xuan ', 'Qu ', 'Yong ', 'Wa ', 'Qian ', qq{[?] }, 'Ka ', qq{[?] }, 'Pei ', 'Huai ', 'He ', 'Lao ', 'Xiang ', 'Ge ', 'Yang ',
+'Bai ', 'Fa ', 'Ming ', 'Jia ', 'Er ', 'Bing ', 'Ji ', 'Hen ', 'Huo ', 'Gui ', 'Quan ', 'Tiao ', 'Jiao ', 'Ci ', 'Yi ', 'Shi ',
+'Xing ', 'Shen ', 'Tuo ', 'Kan ', 'Zhi ', 'Gai ', 'Lai ', 'Yi ', 'Chi ', 'Kua ', 'Guang ', 'Li ', 'Yin ', 'Shi ', 'Mi ', 'Zhu ',
+'Xu ', 'You ', 'An ', 'Lu ', 'Mou ', 'Er ', 'Lun ', 'Tong ', 'Cha ', 'Chi ', 'Xun ', 'Gong ', 'Zhou ', 'Yi ', 'Ru ', 'Jian ',
+'Xia ', 'Jia ', 'Zai ', 'Lu ', 'Ko ', 'Jiao ', 'Zhen ', 'Ce ', 'Qiao ', 'Kuai ', 'Chai ', 'Ning ', 'Nong ', 'Jin ', 'Wu ', 'Hou ',
+'Jiong ', 'Cheng ', 'Zhen ', 'Zuo ', 'Chou ', 'Qin ', 'Lu ', 'Ju ', 'Shu ', 'Ting ', 'Shen ', 'Tuo ', 'Bo ', 'Nan ', 'Hao ', 'Bian ',
+'Tui ', 'Yu ', 'Xi ', 'Cu ', 'E ', 'Qiu ', 'Xu ', 'Kuang ', 'Ku ', 'Wu ', 'Jun ', 'Yi ', 'Fu ', 'Lang ', 'Zu ', 'Qiao ',
+'Li ', 'Yong ', 'Hun ', 'Jing ', 'Xian ', 'San ', 'Pai ', 'Su ', 'Fu ', 'Xi ', 'Li ', 'Fu ', 'Ping ', 'Bao ', 'Yu ', 'Si ',
+'Xia ', 'Xin ', 'Xiu ', 'Yu ', 'Ti ', 'Che ', 'Chou ', qq{[?] }, 'Yan ', 'Lia ', 'Li ', 'Lai ', qq{[?] }, 'Jian ', 'Xiu ', 'Fu ',
+'He ', 'Ju ', 'Xiao ', 'Pai ', 'Jian ', 'Biao ', 'Chu ', 'Fei ', 'Feng ', 'Ya ', 'An ', 'Bei ', 'Yu ', 'Xin ', 'Bi ', 'Jian ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x50.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x50.pm
new file mode 100644
index 0000000..9e90bd0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x50.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x50] = [
+'Chang ', 'Chi ', 'Bing ', 'Zan ', 'Yao ', 'Cui ', 'Lia ', 'Wan ', 'Lai ', 'Cang ', 'Zong ', 'Ge ', 'Guan ', 'Bei ', 'Tian ', 'Shu ',
+'Shu ', 'Men ', 'Dao ', 'Tan ', 'Jue ', 'Chui ', 'Xing ', 'Peng ', 'Tang ', 'Hou ', 'Yi ', 'Qi ', 'Ti ', 'Gan ', 'Jing ', 'Jie ',
+'Sui ', 'Chang ', 'Jie ', 'Fang ', 'Zhi ', 'Kong ', 'Juan ', 'Zong ', 'Ju ', 'Qian ', 'Ni ', 'Lun ', 'Zhuo ', 'Wei ', 'Luo ', 'Song ',
+'Leng ', 'Hun ', 'Dong ', 'Zi ', 'Ben ', 'Wu ', 'Ju ', 'Nai ', 'Cai ', 'Jian ', 'Zhai ', 'Ye ', 'Zhi ', 'Sha ', 'Qing ', qq{[?] },
+'Ying ', 'Cheng ', 'Jian ', 'Yan ', 'Nuan ', 'Zhong ', 'Chun ', 'Jia ', 'Jie ', 'Wei ', 'Yu ', 'Bing ', 'Ruo ', 'Ti ', 'Wei ', 'Pian ',
+'Yan ', 'Feng ', 'Tang ', 'Wo ', 'E ', 'Xie ', 'Che ', 'Sheng ', 'Kan ', 'Di ', 'Zuo ', 'Cha ', 'Ting ', 'Bei ', 'Ye ', 'Huang ',
+'Yao ', 'Zhan ', 'Chou ', 'Yan ', 'You ', 'Jian ', 'Xu ', 'Zha ', 'Ci ', 'Fu ', 'Bi ', 'Zhi ', 'Zong ', 'Mian ', 'Ji ', 'Yi ',
+'Xie ', 'Xun ', 'Si ', 'Duan ', 'Ce ', 'Zhen ', 'Ou ', 'Tou ', 'Tou ', 'Bei ', 'Za ', 'Lu ', 'Jie ', 'Wei ', 'Fen ', 'Chang ',
+'Gui ', 'Sou ', 'Zhi ', 'Su ', 'Xia ', 'Fu ', 'Yuan ', 'Rong ', 'Li ', 'Ru ', 'Yun ', 'Gou ', 'Ma ', 'Bang ', 'Dian ', 'Tang ',
+'Hao ', 'Jie ', 'Xi ', 'Shan ', 'Qian ', 'Jue ', 'Cang ', 'Chu ', 'San ', 'Bei ', 'Xiao ', 'Yong ', 'Yao ', 'Tan ', 'Suo ', 'Yang ',
+'Fa ', 'Bing ', 'Jia ', 'Dai ', 'Zai ', 'Tang ', qq{[?] }, 'Bin ', 'Chu ', 'Nuo ', 'Can ', 'Lei ', 'Cui ', 'Yong ', 'Zao ', 'Zong ',
+'Peng ', 'Song ', 'Ao ', 'Chuan ', 'Yu ', 'Zhai ', 'Cou ', 'Shang ', 'Qiang ', 'Jing ', 'Chi ', 'Sha ', 'Han ', 'Zhang ', 'Qing ', 'Yan ',
+'Di ', 'Xi ', 'Lu ', 'Bei ', 'Piao ', 'Jin ', 'Lian ', 'Lu ', 'Man ', 'Qian ', 'Xian ', 'Tan ', 'Ying ', 'Dong ', 'Zhuan ', 'Xiang ',
+'Shan ', 'Qiao ', 'Jiong ', 'Tui ', 'Zun ', 'Pu ', 'Xi ', 'Lao ', 'Chang ', 'Guang ', 'Liao ', 'Qi ', 'Deng ', 'Chan ', 'Wei ', 'Ji ',
+'Fan ', 'Hui ', 'Chuan ', 'Jian ', 'Dan ', 'Jiao ', 'Jiu ', 'Seng ', 'Fen ', 'Xian ', 'Jue ', 'E ', 'Jiao ', 'Jian ', 'Tong ', 'Lin ',
+'Bo ', 'Gu ', qq{[?] }, 'Su ', 'Xian ', 'Jiang ', 'Min ', 'Ye ', 'Jin ', 'Jia ', 'Qiao ', 'Pi ', 'Feng ', 'Zhou ', 'Ai ', 'Sai ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x51.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x51.pm
new file mode 100644
index 0000000..f0f9d20
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x51.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x51] = [
+'Yi ', 'Jun ', 'Nong ', 'Chan ', 'Yi ', 'Dang ', 'Jing ', 'Xuan ', 'Kuai ', 'Jian ', 'Chu ', 'Dan ', 'Jiao ', 'Sha ', 'Zai ', qq{[?] },
+'Bin ', 'An ', 'Ru ', 'Tai ', 'Chou ', 'Chai ', 'Lan ', 'Ni ', 'Jin ', 'Qian ', 'Meng ', 'Wu ', 'Ning ', 'Qiong ', 'Ni ', 'Chang ',
+'Lie ', 'Lei ', 'Lu ', 'Kuang ', 'Bao ', 'Du ', 'Biao ', 'Zan ', 'Zhi ', 'Si ', 'You ', 'Hao ', 'Chen ', 'Chen ', 'Li ', 'Teng ',
+'Wei ', 'Long ', 'Chu ', 'Chan ', 'Rang ', 'Shu ', 'Hui ', 'Li ', 'Luo ', 'Zan ', 'Nuo ', 'Tang ', 'Yan ', 'Lei ', 'Nang ', 'Er ',
+'Wu ', 'Yun ', 'Zan ', 'Yuan ', 'Xiong ', 'Chong ', 'Zhao ', 'Xiong ', 'Xian ', 'Guang ', 'Dui ', 'Ke ', 'Dui ', 'Mian ', 'Tu ', 'Chang ',
+'Er ', 'Dui ', 'Er ', 'Xin ', 'Tu ', 'Si ', 'Yan ', 'Yan ', 'Shi ', 'Shi ', 'Dang ', 'Qian ', 'Dou ', 'Fen ', 'Mao ', 'Shen ',
+'Dou ', 'Bai ', 'Jing ', 'Li ', 'Huang ', 'Ru ', 'Wang ', 'Nei ', 'Quan ', 'Liang ', 'Yu ', 'Ba ', 'Gong ', 'Liu ', 'Xi ', qq{[?] },
+'Lan ', 'Gong ', 'Tian ', 'Guan ', 'Xing ', 'Bing ', 'Qi ', 'Ju ', 'Dian ', 'Zi ', 'Ppwun ', 'Yang ', 'Jian ', 'Shou ', 'Ji ', 'Yi ',
+'Ji ', 'Chan ', 'Jiong ', 'Mao ', 'Ran ', 'Nei ', 'Yuan ', 'Mao ', 'Gang ', 'Ran ', 'Ce ', 'Jiong ', 'Ce ', 'Zai ', 'Gua ', 'Jiong ',
+'Mao ', 'Zhou ', 'Mou ', 'Gou ', 'Xu ', 'Mian ', 'Mi ', 'Rong ', 'Yin ', 'Xie ', 'Kan ', 'Jun ', 'Nong ', 'Yi ', 'Mi ', 'Shi ',
+'Guan ', 'Meng ', 'Zhong ', 'Ju ', 'Yuan ', 'Ming ', 'Kou ', 'Lam ', 'Fu ', 'Xie ', 'Mi ', 'Bing ', 'Dong ', 'Tai ', 'Gang ', 'Feng ',
+'Bing ', 'Hu ', 'Chong ', 'Jue ', 'Hu ', 'Kuang ', 'Ye ', 'Leng ', 'Pan ', 'Fu ', 'Min ', 'Dong ', 'Xian ', 'Lie ', 'Xia ', 'Jian ',
+'Jing ', 'Shu ', 'Mei ', 'Tu ', 'Qi ', 'Gu ', 'Zhun ', 'Song ', 'Jing ', 'Liang ', 'Qing ', 'Diao ', 'Ling ', 'Dong ', 'Gan ', 'Jian ',
+'Yin ', 'Cou ', 'Yi ', 'Li ', 'Cang ', 'Ming ', 'Zhuen ', 'Cui ', 'Si ', 'Duo ', 'Jin ', 'Lin ', 'Lin ', 'Ning ', 'Xi ', 'Du ',
+'Ji ', 'Fan ', 'Fan ', 'Fan ', 'Feng ', 'Ju ', 'Chu ', 'Tako ', 'Feng ', 'Mok ', 'Ci ', 'Fu ', 'Feng ', 'Ping ', 'Feng ', 'Kai ',
+'Huang ', 'Kai ', 'Gan ', 'Deng ', 'Ping ', 'Qu ', 'Xiong ', 'Kuai ', 'Tu ', 'Ao ', 'Chu ', 'Ji ', 'Dang ', 'Han ', 'Han ', 'Zao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x52.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x52.pm
new file mode 100644
index 0000000..e638316
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x52.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x52] = [
+'Dao ', 'Diao ', 'Dao ', 'Ren ', 'Ren ', 'Chuang ', 'Fen ', 'Qie ', 'Yi ', 'Ji ', 'Kan ', 'Qian ', 'Cun ', 'Chu ', 'Wen ', 'Ji ',
+'Dan ', 'Xing ', 'Hua ', 'Wan ', 'Jue ', 'Li ', 'Yue ', 'Lie ', 'Liu ', 'Ze ', 'Gang ', 'Chuang ', 'Fu ', 'Chu ', 'Qu ', 'Ju ',
+'Shan ', 'Min ', 'Ling ', 'Zhong ', 'Pan ', 'Bie ', 'Jie ', 'Jie ', 'Bao ', 'Li ', 'Shan ', 'Bie ', 'Chan ', 'Jing ', 'Gua ', 'Gen ',
+'Dao ', 'Chuang ', 'Kui ', 'Ku ', 'Duo ', 'Er ', 'Zhi ', 'Shua ', 'Quan ', 'Cha ', 'Ci ', 'Ke ', 'Jie ', 'Gui ', 'Ci ', 'Gui ',
+'Kai ', 'Duo ', 'Ji ', 'Ti ', 'Jing ', 'Lou ', 'Gen ', 'Ze ', 'Yuan ', 'Cuo ', 'Xue ', 'Ke ', 'La ', 'Qian ', 'Cha ', 'Chuang ',
+'Gua ', 'Jian ', 'Cuo ', 'Li ', 'Ti ', 'Fei ', 'Pou ', 'Chan ', 'Qi ', 'Chuang ', 'Zi ', 'Gang ', 'Wan ', 'Bo ', 'Ji ', 'Duo ',
+'Qing ', 'Yan ', 'Zhuo ', 'Jian ', 'Ji ', 'Bo ', 'Yan ', 'Ju ', 'Huo ', 'Sheng ', 'Jian ', 'Duo ', 'Duan ', 'Wu ', 'Gua ', 'Fu ',
+'Sheng ', 'Jian ', 'Ge ', 'Zha ', 'Kai ', 'Chuang ', 'Juan ', 'Chan ', 'Tuan ', 'Lu ', 'Li ', 'Fou ', 'Shan ', 'Piao ', 'Kou ', 'Jiao ',
+'Gua ', 'Qiao ', 'Jue ', 'Hua ', 'Zha ', 'Zhuo ', 'Lian ', 'Ju ', 'Pi ', 'Liu ', 'Gui ', 'Jiao ', 'Gui ', 'Jian ', 'Jian ', 'Tang ',
+'Huo ', 'Ji ', 'Jian ', 'Yi ', 'Jian ', 'Zhi ', 'Chan ', 'Cuan ', 'Mo ', 'Li ', 'Zhu ', 'Li ', 'Ya ', 'Quan ', 'Ban ', 'Gong ',
+'Jia ', 'Wu ', 'Mai ', 'Lie ', 'Jin ', 'Keng ', 'Xie ', 'Zhi ', 'Dong ', 'Zhu ', 'Nu ', 'Jie ', 'Qu ', 'Shao ', 'Yi ', 'Zhu ',
+'Miao ', 'Li ', 'Jing ', 'Lao ', 'Lao ', 'Juan ', 'Kou ', 'Yang ', 'Wa ', 'Xiao ', 'Mou ', 'Kuang ', 'Jie ', 'Lie ', 'He ', 'Shi ',
+'Ke ', 'Jing ', 'Hao ', 'Bo ', 'Min ', 'Chi ', 'Lang ', 'Yong ', 'Yong ', 'Mian ', 'Ke ', 'Xun ', 'Juan ', 'Qing ', 'Lu ', 'Pou ',
+'Meng ', 'Lai ', 'Le ', 'Kai ', 'Mian ', 'Dong ', 'Xu ', 'Xu ', 'Kan ', 'Wu ', 'Yi ', 'Xun ', 'Weng ', 'Sheng ', 'Lao ', 'Mu ',
+'Lu ', 'Piao ', 'Shi ', 'Ji ', 'Qin ', 'Qiang ', 'Jiao ', 'Quan ', 'Yang ', 'Yi ', 'Jue ', 'Fan ', 'Juan ', 'Tong ', 'Ju ', 'Dan ',
+'Xie ', 'Mai ', 'Xun ', 'Xun ', 'Lu ', 'Li ', 'Che ', 'Rang ', 'Quan ', 'Bao ', 'Shao ', 'Yun ', 'Jiu ', 'Bao ', 'Gou ', 'Wu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x53.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x53.pm
new file mode 100644
index 0000000..2112b84
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x53.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x53] = [
+'Yun ', 'Mwun ', 'Nay ', 'Gai ', 'Gai ', 'Bao ', 'Cong ', qq{[?] }, 'Xiong ', 'Peng ', 'Ju ', 'Tao ', 'Ge ', 'Pu ', 'An ', 'Pao ',
+'Fu ', 'Gong ', 'Da ', 'Jiu ', 'Qiong ', 'Bi ', 'Hua ', 'Bei ', 'Nao ', 'Chi ', 'Fang ', 'Jiu ', 'Yi ', 'Za ', 'Jiang ', 'Kang ',
+'Jiang ', 'Kuang ', 'Hu ', 'Xia ', 'Qu ', 'Bian ', 'Gui ', 'Qie ', 'Zang ', 'Kuang ', 'Fei ', 'Hu ', 'Tou ', 'Gui ', 'Gui ', 'Hui ',
+'Dan ', 'Gui ', 'Lian ', 'Lian ', 'Suan ', 'Du ', 'Jiu ', 'Qu ', 'Xi ', 'Pi ', 'Qu ', 'Yi ', 'Qia ', 'Yan ', 'Bian ', 'Ni ',
+'Qu ', 'Shi ', 'Xin ', 'Qian ', 'Nian ', 'Sa ', 'Zu ', 'Sheng ', 'Wu ', 'Hui ', 'Ban ', 'Shi ', 'Xi ', 'Wan ', 'Hua ', 'Xie ',
+'Wan ', 'Bei ', 'Zu ', 'Zhuo ', 'Xie ', 'Dan ', 'Mai ', 'Nan ', 'Dan ', 'Ji ', 'Bo ', 'Shuai ', 'Bu ', 'Kuang ', 'Bian ', 'Bu ',
+'Zhan ', 'Qia ', 'Lu ', 'You ', 'Lu ', 'Xi ', 'Gua ', 'Wo ', 'Xie ', 'Jie ', 'Jie ', 'Wei ', 'Ang ', 'Qiong ', 'Zhi ', 'Mao ',
+'Yin ', 'Wei ', 'Shao ', 'Ji ', 'Que ', 'Luan ', 'Shi ', 'Juan ', 'Xie ', 'Xu ', 'Jin ', 'Que ', 'Wu ', 'Ji ', 'E ', 'Qing ',
+'Xi ', qq{[?] }, 'Han ', 'Zhan ', 'E ', 'Ting ', 'Li ', 'Zhe ', 'Han ', 'Li ', 'Ya ', 'Ya ', 'Yan ', 'She ', 'Zhi ', 'Zha ',
+'Pang ', qq{[?] }, 'He ', 'Ya ', 'Zhi ', 'Ce ', 'Pang ', 'Ti ', 'Li ', 'She ', 'Hou ', 'Ting ', 'Zui ', 'Cuo ', 'Fei ', 'Yuan ',
+'Ce ', 'Yuan ', 'Xiang ', 'Yan ', 'Li ', 'Jue ', 'Sha ', 'Dian ', 'Chu ', 'Jiu ', 'Qin ', 'Ao ', 'Gui ', 'Yan ', 'Si ', 'Li ',
+'Chang ', 'Lan ', 'Li ', 'Yan ', 'Yan ', 'Yuan ', 'Si ', 'Gong ', 'Lin ', 'Qiu ', 'Qu ', 'Qu ', 'Uk ', 'Lei ', 'Du ', 'Xian ',
+'Zhuan ', 'San ', 'Can ', 'Can ', 'Can ', 'Can ', 'Ai ', 'Dai ', 'You ', 'Cha ', 'Ji ', 'You ', 'Shuang ', 'Fan ', 'Shou ', 'Guai ',
+'Ba ', 'Fa ', 'Ruo ', 'Shi ', 'Shu ', 'Zhuo ', 'Qu ', 'Shou ', 'Bian ', 'Xu ', 'Jia ', 'Pan ', 'Sou ', 'Gao ', 'Wei ', 'Sou ',
+'Die ', 'Rui ', 'Cong ', 'Kou ', 'Gu ', 'Ju ', 'Ling ', 'Gua ', 'Tao ', 'Kou ', 'Zhi ', 'Jiao ', 'Zhao ', 'Ba ', 'Ding ', 'Ke ',
+'Tai ', 'Chi ', 'Shi ', 'You ', 'Qiu ', 'Po ', 'Xie ', 'Hao ', 'Si ', 'Tan ', 'Chi ', 'Le ', 'Diao ', 'Ji ', qq{[?] }, 'Hong ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x54.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x54.pm
new file mode 100644
index 0000000..fc2239f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x54.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x54] = [
+'Mie ', 'Xu ', 'Mang ', 'Chi ', 'Ge ', 'Xuan ', 'Yao ', 'Zi ', 'He ', 'Ji ', 'Diao ', 'Cun ', 'Tong ', 'Ming ', 'Hou ', 'Li ',
+'Tu ', 'Xiang ', 'Zha ', 'Xia ', 'Ye ', 'Lu ', 'A ', 'Ma ', 'Ou ', 'Xue ', 'Yi ', 'Jun ', 'Chou ', 'Lin ', 'Tun ', 'Yin ',
+'Fei ', 'Bi ', 'Qin ', 'Qin ', 'Jie ', 'Bu ', 'Fou ', 'Ba ', 'Dun ', 'Fen ', 'E ', 'Han ', 'Ting ', 'Hang ', 'Shun ', 'Qi ',
+'Hong ', 'Zhi ', 'Shen ', 'Wu ', 'Wu ', 'Chao ', 'Ne ', 'Xue ', 'Xi ', 'Chui ', 'Dou ', 'Wen ', 'Hou ', 'Ou ', 'Wu ', 'Gao ',
+'Ya ', 'Jun ', 'Lu ', 'E ', 'Ge ', 'Mei ', 'Ai ', 'Qi ', 'Cheng ', 'Wu ', 'Gao ', 'Fu ', 'Jiao ', 'Hong ', 'Chi ', 'Sheng ',
+'Ne ', 'Tun ', 'Fu ', 'Yi ', 'Dai ', 'Ou ', 'Li ', 'Bai ', 'Yuan ', 'Kuai ', qq{[?] }, 'Qiang ', 'Wu ', 'E ', 'Shi ', 'Quan ',
+'Pen ', 'Wen ', 'Ni ', 'M ', 'Ling ', 'Ran ', 'You ', 'Di ', 'Zhou ', 'Shi ', 'Zhou ', 'Tie ', 'Xi ', 'Yi ', 'Qi ', 'Ping ',
+'Zi ', 'Gu ', 'Zi ', 'Wei ', 'Xu ', 'He ', 'Nao ', 'Xia ', 'Pei ', 'Yi ', 'Xiao ', 'Shen ', 'Hu ', 'Ming ', 'Da ', 'Qu ',
+'Ju ', 'Gem ', 'Za ', 'Tuo ', 'Duo ', 'Pou ', 'Pao ', 'Bi ', 'Fu ', 'Yang ', 'He ', 'Zha ', 'He ', 'Hai ', 'Jiu ', 'Yong ',
+'Fu ', 'Que ', 'Zhou ', 'Wa ', 'Ka ', 'Gu ', 'Ka ', 'Zuo ', 'Bu ', 'Long ', 'Dong ', 'Ning ', 'Tha ', 'Si ', 'Xian ', 'Huo ',
+'Qi ', 'Er ', 'E ', 'Guang ', 'Zha ', 'Xi ', 'Yi ', 'Lie ', 'Zi ', 'Mie ', 'Mi ', 'Zhi ', 'Yao ', 'Ji ', 'Zhou ', 'Ge ',
+'Shuai ', 'Zan ', 'Xiao ', 'Ke ', 'Hui ', 'Kua ', 'Huai ', 'Tao ', 'Xian ', 'E ', 'Xuan ', 'Xiu ', 'Wai ', 'Yan ', 'Lao ', 'Yi ',
+'Ai ', 'Pin ', 'Shen ', 'Tong ', 'Hong ', 'Xiong ', 'Chi ', 'Wa ', 'Ha ', 'Zai ', 'Yu ', 'Di ', 'Pai ', 'Xiang ', 'Ai ', 'Hen ',
+'Kuang ', 'Ya ', 'Da ', 'Xiao ', 'Bi ', 'Yue ', qq{[?] }, 'Hua ', 'Sasou ', 'Kuai ', 'Duo ', qq{[?] }, 'Ji ', 'Nong ', 'Mou ', 'Yo ',
+'Hao ', 'Yuan ', 'Long ', 'Pou ', 'Mang ', 'Ge ', 'E ', 'Chi ', 'Shao ', 'Li ', 'Na ', 'Zu ', 'He ', 'Ku ', 'Xiao ', 'Xian ',
+'Lao ', 'Bo ', 'Zhe ', 'Zha ', 'Liang ', 'Ba ', 'Mie ', 'Le ', 'Sui ', 'Fou ', 'Bu ', 'Han ', 'Heng ', 'Geng ', 'Shuo ', 'Ge ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x55.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x55.pm
new file mode 100644
index 0000000..277fdce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x55.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x55] = [
+'You ', 'Yan ', 'Gu ', 'Gu ', 'Bai ', 'Han ', 'Suo ', 'Chun ', 'Yi ', 'Ai ', 'Jia ', 'Tu ', 'Xian ', 'Huan ', 'Li ', 'Xi ',
+'Tang ', 'Zuo ', 'Qiu ', 'Che ', 'Wu ', 'Zao ', 'Ya ', 'Dou ', 'Qi ', 'Di ', 'Qin ', 'Ma ', 'Mal ', 'Hong ', 'Dou ', 'Kes ',
+'Lao ', 'Liang ', 'Suo ', 'Zao ', 'Huan ', 'Lang ', 'Sha ', 'Ji ', 'Zuo ', 'Wo ', 'Feng ', 'Yin ', 'Hu ', 'Qi ', 'Shou ', 'Wei ',
+'Shua ', 'Chang ', 'Er ', 'Li ', 'Qiang ', 'An ', 'Jie ', 'Yo ', 'Nian ', 'Yu ', 'Tian ', 'Lai ', 'Sha ', 'Xi ', 'Tuo ', 'Hu ',
+'Ai ', 'Zhou ', 'Nou ', 'Ken ', 'Zhuo ', 'Zhuo ', 'Shang ', 'Di ', 'Heng ', 'Lan ', 'A ', 'Xiao ', 'Xiang ', 'Tun ', 'Wu ', 'Wen ',
+'Cui ', 'Sha ', 'Hu ', 'Qi ', 'Qi ', 'Tao ', 'Dan ', 'Dan ', 'Ye ', 'Zi ', 'Bi ', 'Cui ', 'Chuo ', 'He ', 'Ya ', 'Qi ',
+'Zhe ', 'Pei ', 'Liang ', 'Xian ', 'Pi ', 'Sha ', 'La ', 'Ze ', 'Qing ', 'Gua ', 'Pa ', 'Zhe ', 'Se ', 'Zhuan ', 'Nie ', 'Guo ',
+'Luo ', 'Yan ', 'Di ', 'Quan ', 'Tan ', 'Bo ', 'Ding ', 'Lang ', 'Xiao ', qq{[?] }, 'Tang ', 'Chi ', 'Ti ', 'An ', 'Jiu ', 'Dan ',
+'Ke ', 'Yong ', 'Wei ', 'Nan ', 'Shan ', 'Yu ', 'Zhe ', 'La ', 'Jie ', 'Hou ', 'Han ', 'Die ', 'Zhou ', 'Chai ', 'Wai ', 'Re ',
+'Yu ', 'Yin ', 'Zan ', 'Yao ', 'Wo ', 'Mian ', 'Hu ', 'Yun ', 'Chuan ', 'Hui ', 'Huan ', 'Huan ', 'Xi ', 'He ', 'Ji ', 'Kui ',
+'Zhong ', 'Wei ', 'Sha ', 'Xu ', 'Huang ', 'Du ', 'Nie ', 'Xuan ', 'Liang ', 'Yu ', 'Sang ', 'Chi ', 'Qiao ', 'Yan ', 'Dan ', 'Pen ',
+'Can ', 'Li ', 'Yo ', 'Zha ', 'Wei ', 'Miao ', 'Ying ', 'Pen ', 'Phos ', 'Kui ', 'Xi ', 'Yu ', 'Jie ', 'Lou ', 'Ku ', 'Sao ',
+'Huo ', 'Ti ', 'Yao ', 'He ', 'A ', 'Xiu ', 'Qiang ', 'Se ', 'Yong ', 'Su ', 'Hong ', 'Xie ', 'Yi ', 'Suo ', 'Ma ', 'Cha ',
+'Hai ', 'Ke ', 'Ta ', 'Sang ', 'Tian ', 'Ru ', 'Sou ', 'Wa ', 'Ji ', 'Pang ', 'Wu ', 'Xian ', 'Shi ', 'Ge ', 'Zi ', 'Jie ',
+'Luo ', 'Weng ', 'Wa ', 'Si ', 'Chi ', 'Hao ', 'Suo ', 'Jia ', 'Hai ', 'Suo ', 'Qin ', 'Nie ', 'He ', 'Cis ', 'Sai ', 'Ng ',
+'Ge ', 'Na ', 'Dia ', 'Ai ', qq{[?] }, 'Tong ', 'Bi ', 'Ao ', 'Ao ', 'Lian ', 'Cui ', 'Zhe ', 'Mo ', 'Sou ', 'Sou ', 'Tan ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x56.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x56.pm
new file mode 100644
index 0000000..1902b18
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x56.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x56] = [
+'Di ', 'Qi ', 'Jiao ', 'Chong ', 'Jiao ', 'Kai ', 'Tan ', 'San ', 'Cao ', 'Jia ', 'Ai ', 'Xiao ', 'Piao ', 'Lou ', 'Ga ', 'Gu ',
+'Xiao ', 'Hu ', 'Hui ', 'Guo ', 'Ou ', 'Xian ', 'Ze ', 'Chang ', 'Xu ', 'Po ', 'De ', 'Ma ', 'Ma ', 'Hu ', 'Lei ', 'Du ',
+'Ga ', 'Tang ', 'Ye ', 'Beng ', 'Ying ', 'Saai ', 'Jiao ', 'Mi ', 'Xiao ', 'Hua ', 'Mai ', 'Ran ', 'Zuo ', 'Peng ', 'Lao ', 'Xiao ',
+'Ji ', 'Zhu ', 'Chao ', 'Kui ', 'Zui ', 'Xiao ', 'Si ', 'Hao ', 'Fu ', 'Liao ', 'Qiao ', 'Xi ', 'Xiu ', 'Tan ', 'Tan ', 'Mo ',
+'Xun ', 'E ', 'Zun ', 'Fan ', 'Chi ', 'Hui ', 'Zan ', 'Chuang ', 'Cu ', 'Dan ', 'Yu ', 'Tun ', 'Cheng ', 'Jiao ', 'Ye ', 'Xi ',
+'Qi ', 'Hao ', 'Lian ', 'Xu ', 'Deng ', 'Hui ', 'Yin ', 'Pu ', 'Jue ', 'Qin ', 'Xun ', 'Nie ', 'Lu ', 'Si ', 'Yan ', 'Ying ',
+'Da ', 'Dan ', 'Yu ', 'Zhou ', 'Jin ', 'Nong ', 'Yue ', 'Hui ', 'Qi ', 'E ', 'Zao ', 'Yi ', 'Shi ', 'Jiao ', 'Yuan ', 'Ai ',
+'Yong ', 'Jue ', 'Kuai ', 'Yu ', 'Pen ', 'Dao ', 'Ge ', 'Xin ', 'Dun ', 'Dang ', 'Sin ', 'Sai ', 'Pi ', 'Pi ', 'Yin ', 'Zui ',
+'Ning ', 'Di ', 'Lan ', 'Ta ', 'Huo ', 'Ru ', 'Hao ', 'Xia ', 'Ya ', 'Duo ', 'Xi ', 'Chou ', 'Ji ', 'Jin ', 'Hao ', 'Ti ',
+'Chang ', qq{[?] }, qq{[?] }, 'Ca ', 'Ti ', 'Lu ', 'Hui ', 'Bo ', 'You ', 'Nie ', 'Yin ', 'Hu ', 'Mo ', 'Huang ', 'Zhe ', 'Li ',
+'Liu ', 'Haai ', 'Nang ', 'Xiao ', 'Mo ', 'Yan ', 'Li ', 'Lu ', 'Long ', 'Fu ', 'Dan ', 'Chen ', 'Pin ', 'Pi ', 'Xiang ', 'Huo ',
+'Mo ', 'Xi ', 'Duo ', 'Ku ', 'Yan ', 'Chan ', 'Ying ', 'Rang ', 'Dian ', 'La ', 'Ta ', 'Xiao ', 'Jiao ', 'Chuo ', 'Huan ', 'Huo ',
+'Zhuan ', 'Nie ', 'Xiao ', 'Ca ', 'Li ', 'Chan ', 'Chai ', 'Li ', 'Yi ', 'Luo ', 'Nang ', 'Zan ', 'Su ', 'Xi ', 'So ', 'Jian ',
+'Za ', 'Zhu ', 'Lan ', 'Nie ', 'Nang ', qq{[?] }, qq{[?] }, 'Wei ', 'Hui ', 'Yin ', 'Qiu ', 'Si ', 'Nin ', 'Jian ', 'Hui ', 'Xin ',
+'Yin ', 'Nan ', 'Tuan ', 'Tuan ', 'Dun ', 'Kang ', 'Yuan ', 'Jiong ', 'Pian ', 'Yun ', 'Cong ', 'Hu ', 'Hui ', 'Yuan ', 'You ', 'Guo ',
+'Kun ', 'Cong ', 'Wei ', 'Tu ', 'Wei ', 'Lun ', 'Guo ', 'Qun ', 'Ri ', 'Ling ', 'Gu ', 'Guo ', 'Tai ', 'Guo ', 'Tu ', 'You ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x57.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x57.pm
new file mode 100644
index 0000000..b76621a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x57.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x57] = [
+'Guo ', 'Yin ', 'Hun ', 'Pu ', 'Yu ', 'Han ', 'Yuan ', 'Lun ', 'Quan ', 'Yu ', 'Qing ', 'Guo ', 'Chuan ', 'Wei ', 'Yuan ', 'Quan ',
+'Ku ', 'Fu ', 'Yuan ', 'Yuan ', 'E ', 'Tu ', 'Tu ', 'Tu ', 'Tuan ', 'Lue ', 'Hui ', 'Yi ', 'Yuan ', 'Luan ', 'Luan ', 'Tu ',
+'Ya ', 'Tu ', 'Ting ', 'Sheng ', 'Pu ', 'Lu ', 'Iri ', 'Ya ', 'Zai ', 'Wei ', 'Ge ', 'Yu ', 'Wu ', 'Gui ', 'Pi ', 'Yi ',
+'Di ', 'Qian ', 'Qian ', 'Zhen ', 'Zhuo ', 'Dang ', 'Qia ', 'Akutsu ', 'Yama ', 'Kuang ', 'Chang ', 'Qi ', 'Nie ', 'Mo ', 'Ji ', 'Jia ',
+'Zhi ', 'Zhi ', 'Ban ', 'Xun ', 'Tou ', 'Qin ', 'Fen ', 'Jun ', 'Keng ', 'Tun ', 'Fang ', 'Fen ', 'Ben ', 'Tan ', 'Kan ', 'Pi ',
+'Zuo ', 'Keng ', 'Bi ', 'Xing ', 'Di ', 'Jing ', 'Ji ', 'Kuai ', 'Di ', 'Jing ', 'Jian ', 'Tan ', 'Li ', 'Ba ', 'Wu ', 'Fen ',
+'Zhui ', 'Po ', 'Pan ', 'Tang ', 'Kun ', 'Qu ', 'Tan ', 'Zhi ', 'Tuo ', 'Gan ', 'Ping ', 'Dian ', 'Gua ', 'Ni ', 'Tai ', 'Pi ',
+'Jiong ', 'Yang ', 'Fo ', 'Ao ', 'Liu ', 'Qiu ', 'Mu ', 'Ke ', 'Gou ', 'Xue ', 'Ba ', 'Chi ', 'Che ', 'Ling ', 'Zhu ', 'Fu ',
+'Hu ', 'Zhi ', 'Chui ', 'La ', 'Long ', 'Long ', 'Lu ', 'Ao ', 'Tay ', 'Pao ', qq{[?] }, 'Xing ', 'Dong ', 'Ji ', 'Ke ', 'Lu ',
+'Ci ', 'Chi ', 'Lei ', 'Gai ', 'Yin ', 'Hou ', 'Dui ', 'Zhao ', 'Fu ', 'Guang ', 'Yao ', 'Duo ', 'Duo ', 'Gui ', 'Cha ', 'Yang ',
+'Yin ', 'Fa ', 'Gou ', 'Yuan ', 'Die ', 'Xie ', 'Ken ', 'Jiong ', 'Shou ', 'E ', 'Ha ', 'Dian ', 'Hong ', 'Wu ', 'Kua ', qq{[?] },
+'Tao ', 'Dang ', 'Kai ', 'Gake ', 'Nao ', 'An ', 'Xing ', 'Xian ', 'Huan ', 'Bang ', 'Pei ', 'Ba ', 'Yi ', 'Yin ', 'Han ', 'Xu ',
+'Chui ', 'Cen ', 'Geng ', 'Ai ', 'Peng ', 'Fang ', 'Que ', 'Yong ', 'Xun ', 'Jia ', 'Di ', 'Mai ', 'Lang ', 'Xuan ', 'Cheng ', 'Yan ',
+'Jin ', 'Zhe ', 'Lei ', 'Lie ', 'Bu ', 'Cheng ', 'Gomi ', 'Bu ', 'Shi ', 'Xun ', 'Guo ', 'Jiong ', 'Ye ', 'Nian ', 'Di ', 'Yu ',
+'Bu ', 'Ya ', 'Juan ', 'Sui ', 'Pi ', 'Cheng ', 'Wan ', 'Ju ', 'Lun ', 'Zheng ', 'Kong ', 'Chong ', 'Dong ', 'Dai ', 'Tan ', 'An ',
+'Cai ', 'Shu ', 'Beng ', 'Kan ', 'Zhi ', 'Duo ', 'Yi ', 'Zhi ', 'Yi ', 'Pei ', 'Ji ', 'Zhun ', 'Qi ', 'Sao ', 'Ju ', 'Ni ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x58.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x58.pm
new file mode 100644
index 0000000..70f397f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x58.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:30 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x58] = [
+'Ku ', 'Ke ', 'Tang ', 'Kun ', 'Ni ', 'Jian ', 'Dui ', 'Jin ', 'Gang ', 'Yu ', 'E ', 'Peng ', 'Gu ', 'Tu ', 'Leng ', qq{[?] },
+'Ya ', 'Qian ', qq{[?] }, 'An ', qq{[?] }, 'Duo ', 'Nao ', 'Tu ', 'Cheng ', 'Yin ', 'Hun ', 'Bi ', 'Lian ', 'Guo ', 'Die ', 'Zhuan ',
+'Hou ', 'Bao ', 'Bao ', 'Yu ', 'Di ', 'Mao ', 'Jie ', 'Ruan ', 'E ', 'Geng ', 'Kan ', 'Zong ', 'Yu ', 'Huang ', 'E ', 'Yao ',
+'Yan ', 'Bao ', 'Ji ', 'Mei ', 'Chang ', 'Du ', 'Tuo ', 'Yin ', 'Feng ', 'Zhong ', 'Jie ', 'Zhen ', 'Feng ', 'Gang ', 'Chuan ', 'Jian ',
+'Pyeng ', 'Toride ', 'Xiang ', 'Huang ', 'Leng ', 'Duan ', qq{[?] }, 'Xuan ', 'Ji ', 'Ji ', 'Kuai ', 'Ying ', 'Ta ', 'Cheng ', 'Yong ', 'Kai ',
+'Su ', 'Su ', 'Shi ', 'Mi ', 'Ta ', 'Weng ', 'Cheng ', 'Tu ', 'Tang ', 'Que ', 'Zhong ', 'Li ', 'Peng ', 'Bang ', 'Sai ', 'Zang ',
+'Dui ', 'Tian ', 'Wu ', 'Cheng ', 'Xun ', 'Ge ', 'Zhen ', 'Ai ', 'Gong ', 'Yan ', 'Kan ', 'Tian ', 'Yuan ', 'Wen ', 'Xie ', 'Liu ',
+'Ama ', 'Lang ', 'Chang ', 'Peng ', 'Beng ', 'Chen ', 'Cu ', 'Lu ', 'Ou ', 'Qian ', 'Mei ', 'Mo ', 'Zhuan ', 'Shuang ', 'Shu ', 'Lou ',
+'Chi ', 'Man ', 'Biao ', 'Jing ', 'Qi ', 'Shu ', 'Di ', 'Zhang ', 'Kan ', 'Yong ', 'Dian ', 'Chen ', 'Zhi ', 'Xi ', 'Guo ', 'Qiang ',
+'Jin ', 'Di ', 'Shang ', 'Mu ', 'Cui ', 'Yan ', 'Ta ', 'Zeng ', 'Qi ', 'Qiang ', 'Liang ', qq{[?] }, 'Zhui ', 'Qiao ', 'Zeng ', 'Xu ',
+'Shan ', 'Shan ', 'Ba ', 'Pu ', 'Kuai ', 'Dong ', 'Fan ', 'Que ', 'Mo ', 'Dun ', 'Dun ', 'Dun ', 'Di ', 'Sheng ', 'Duo ', 'Duo ',
+'Tan ', 'Deng ', 'Wu ', 'Fen ', 'Huang ', 'Tan ', 'Da ', 'Ye ', 'Sho ', 'Mama ', 'Yu ', 'Qiang ', 'Ji ', 'Qiao ', 'Ken ', 'Yi ',
+'Pi ', 'Bi ', 'Dian ', 'Jiang ', 'Ye ', 'Yong ', 'Bo ', 'Tan ', 'Lan ', 'Ju ', 'Huai ', 'Dang ', 'Rang ', 'Qian ', 'Xun ', 'Lan ',
+'Xi ', 'He ', 'Ai ', 'Ya ', 'Dao ', 'Hao ', 'Ruan ', 'Mama ', 'Lei ', 'Kuang ', 'Lu ', 'Yan ', 'Tan ', 'Wei ', 'Huai ', 'Long ',
+'Long ', 'Rui ', 'Li ', 'Lin ', 'Rang ', 'Ten ', 'Xun ', 'Yan ', 'Lei ', 'Ba ', qq{[?] }, 'Shi ', 'Ren ', qq{[?] }, 'Zhuang ', 'Zhuang ',
+'Sheng ', 'Yi ', 'Mai ', 'Ke ', 'Zhu ', 'Zhuang ', 'Hu ', 'Hu ', 'Kun ', 'Yi ', 'Hu ', 'Xu ', 'Kun ', 'Shou ', 'Mang ', 'Zun ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x59.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x59.pm
new file mode 100644
index 0000000..eeb2b9c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x59.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x59] = [
+'Shou ', 'Yi ', 'Zhi ', 'Gu ', 'Chu ', 'Jiang ', 'Feng ', 'Bei ', 'Cay ', 'Bian ', 'Sui ', 'Qun ', 'Ling ', 'Fu ', 'Zuo ', 'Xia ',
+'Xiong ', qq{[?] }, 'Nao ', 'Xia ', 'Kui ', 'Xi ', 'Wai ', 'Yuan ', 'Mao ', 'Su ', 'Duo ', 'Duo ', 'Ye ', 'Qing ', 'Uys ', 'Gou ',
+'Gou ', 'Qi ', 'Meng ', 'Meng ', 'Yin ', 'Huo ', 'Chen ', 'Da ', 'Ze ', 'Tian ', 'Tai ', 'Fu ', 'Guai ', 'Yao ', 'Yang ', 'Hang ',
+'Gao ', 'Shi ', 'Ben ', 'Tai ', 'Tou ', 'Yan ', 'Bi ', 'Yi ', 'Kua ', 'Jia ', 'Duo ', 'Kwu ', 'Kuang ', 'Yun ', 'Jia ', 'Pa ',
+'En ', 'Lian ', 'Huan ', 'Di ', 'Yan ', 'Pao ', 'Quan ', 'Qi ', 'Nai ', 'Feng ', 'Xie ', 'Fen ', 'Dian ', qq{[?] }, 'Kui ', 'Zou ',
+'Huan ', 'Qi ', 'Kai ', 'Zha ', 'Ben ', 'Yi ', 'Jiang ', 'Tao ', 'Zang ', 'Ben ', 'Xi ', 'Xiang ', 'Fei ', 'Diao ', 'Xun ', 'Keng ',
+'Dian ', 'Ao ', 'She ', 'Weng ', 'Pan ', 'Ao ', 'Wu ', 'Ao ', 'Jiang ', 'Lian ', 'Duo ', 'Yun ', 'Jiang ', 'Shi ', 'Fen ', 'Huo ',
+'Bi ', 'Lian ', 'Duo ', 'Nu ', 'Nu ', 'Ding ', 'Nai ', 'Qian ', 'Jian ', 'Ta ', 'Jiu ', 'Nan ', 'Cha ', 'Hao ', 'Xian ', 'Fan ',
+'Ji ', 'Shuo ', 'Ru ', 'Fei ', 'Wang ', 'Hong ', 'Zhuang ', 'Fu ', 'Ma ', 'Dan ', 'Ren ', 'Fu ', 'Jing ', 'Yan ', 'Xie ', 'Wen ',
+'Zhong ', 'Pa ', 'Du ', 'Ji ', 'Keng ', 'Zhong ', 'Yao ', 'Jin ', 'Yun ', 'Miao ', 'Pei ', 'Shi ', 'Yue ', 'Zhuang ', 'Niu ', 'Yan ',
+'Na ', 'Xin ', 'Fen ', 'Bi ', 'Yu ', 'Tuo ', 'Feng ', 'Yuan ', 'Fang ', 'Wu ', 'Yu ', 'Gui ', 'Du ', 'Ba ', 'Ni ', 'Zhou ',
+'Zhuo ', 'Zhao ', 'Da ', 'Nai ', 'Yuan ', 'Tou ', 'Xuan ', 'Zhi ', 'E ', 'Mei ', 'Mo ', 'Qi ', 'Bi ', 'Shen ', 'Qie ', 'E ',
+'He ', 'Xu ', 'Fa ', 'Zheng ', 'Min ', 'Ban ', 'Mu ', 'Fu ', 'Ling ', 'Zi ', 'Zi ', 'Shi ', 'Ran ', 'Shan ', 'Yang ', 'Man ',
+'Jie ', 'Gu ', 'Si ', 'Xing ', 'Wei ', 'Zi ', 'Ju ', 'Shan ', 'Pin ', 'Ren ', 'Yao ', 'Tong ', 'Jiang ', 'Shu ', 'Ji ', 'Gai ',
+'Shang ', 'Kuo ', 'Juan ', 'Jiao ', 'Gou ', 'Mu ', 'Jian ', 'Jian ', 'Yi ', 'Nian ', 'Zhi ', 'Ji ', 'Ji ', 'Xian ', 'Heng ', 'Guang ',
+'Jun ', 'Kua ', 'Yan ', 'Ming ', 'Lie ', 'Pei ', 'Yan ', 'You ', 'Yan ', 'Cha ', 'Shen ', 'Yin ', 'Chi ', 'Gui ', 'Quan ', 'Zi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5a.pm
new file mode 100644
index 0000000..2868d75
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5a] = [
+'Song ', 'Wei ', 'Hong ', 'Wa ', 'Lou ', 'Ya ', 'Rao ', 'Jiao ', 'Luan ', 'Ping ', 'Xian ', 'Shao ', 'Li ', 'Cheng ', 'Xiao ', 'Mang ',
+'Fu ', 'Suo ', 'Wu ', 'Wei ', 'Ke ', 'Lai ', 'Chuo ', 'Ding ', 'Niang ', 'Xing ', 'Nan ', 'Yu ', 'Nuo ', 'Pei ', 'Nei ', 'Juan ',
+'Shen ', 'Zhi ', 'Han ', 'Di ', 'Zhuang ', 'E ', 'Pin ', 'Tui ', 'Han ', 'Mian ', 'Wu ', 'Yan ', 'Wu ', 'Xi ', 'Yan ', 'Yu ',
+'Si ', 'Yu ', 'Wa ', qq{[?] }, 'Xian ', 'Ju ', 'Qu ', 'Shui ', 'Qi ', 'Xian ', 'Zhui ', 'Dong ', 'Chang ', 'Lu ', 'Ai ', 'E ',
+'E ', 'Lou ', 'Mian ', 'Cong ', 'Pou ', 'Ju ', 'Po ', 'Cai ', 'Ding ', 'Wan ', 'Biao ', 'Xiao ', 'Shu ', 'Qi ', 'Hui ', 'Fu ',
+'E ', 'Wo ', 'Tan ', 'Fei ', 'Wei ', 'Jie ', 'Tian ', 'Ni ', 'Quan ', 'Jing ', 'Hun ', 'Jing ', 'Qian ', 'Dian ', 'Xing ', 'Hu ',
+'Wa ', 'Lai ', 'Bi ', 'Yin ', 'Chou ', 'Chuo ', 'Fu ', 'Jing ', 'Lun ', 'Yan ', 'Lan ', 'Kun ', 'Yin ', 'Ya ', 'Ju ', 'Li ',
+'Dian ', 'Xian ', 'Hwa ', 'Hua ', 'Ying ', 'Chan ', 'Shen ', 'Ting ', 'Dang ', 'Yao ', 'Wu ', 'Nan ', 'Ruo ', 'Jia ', 'Tou ', 'Xu ',
+'Yu ', 'Wei ', 'Ti ', 'Rou ', 'Mei ', 'Dan ', 'Ruan ', 'Qin ', 'Hui ', 'Wu ', 'Qian ', 'Chun ', 'Mao ', 'Fu ', 'Jie ', 'Duan ',
+'Xi ', 'Zhong ', 'Mei ', 'Huang ', 'Mian ', 'An ', 'Ying ', 'Xuan ', 'Jie ', 'Wei ', 'Mei ', 'Yuan ', 'Zhen ', 'Qiu ', 'Ti ', 'Xie ',
+'Tuo ', 'Lian ', 'Mao ', 'Ran ', 'Si ', 'Pian ', 'Wei ', 'Wa ', 'Jiu ', 'Hu ', 'Ao ', qq{[?] }, 'Bou ', 'Xu ', 'Tou ', 'Gui ',
+'Zou ', 'Yao ', 'Pi ', 'Xi ', 'Yuan ', 'Ying ', 'Rong ', 'Ru ', 'Chi ', 'Liu ', 'Mei ', 'Pan ', 'Ao ', 'Ma ', 'Gou ', 'Kui ',
+'Qin ', 'Jia ', 'Sao ', 'Zhen ', 'Yuan ', 'Cha ', 'Yong ', 'Ming ', 'Ying ', 'Ji ', 'Su ', 'Niao ', 'Xian ', 'Tao ', 'Pang ', 'Lang ',
+'Nao ', 'Bao ', 'Ai ', 'Pi ', 'Pin ', 'Yi ', 'Piao ', 'Yu ', 'Lei ', 'Xuan ', 'Man ', 'Yi ', 'Zhang ', 'Kang ', 'Yong ', 'Ni ',
+'Li ', 'Di ', 'Gui ', 'Yan ', 'Jin ', 'Zhuan ', 'Chang ', 'Ce ', 'Han ', 'Nen ', 'Lao ', 'Mo ', 'Zhe ', 'Hu ', 'Hu ', 'Ao ',
+'Nen ', 'Qiang ', 'Ma ', 'Pie ', 'Gu ', 'Wu ', 'Jiao ', 'Tuo ', 'Zhan ', 'Mao ', 'Xian ', 'Xian ', 'Mo ', 'Liao ', 'Lian ', 'Hua ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5b.pm
new file mode 100644
index 0000000..5837649
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5b] = [
+'Gui ', 'Deng ', 'Zhi ', 'Xu ', 'Yi ', 'Hua ', 'Xi ', 'Hui ', 'Rao ', 'Xi ', 'Yan ', 'Chan ', 'Jiao ', 'Mei ', 'Fan ', 'Fan ',
+'Xian ', 'Yi ', 'Wei ', 'Jiao ', 'Fu ', 'Shi ', 'Bi ', 'Shan ', 'Sui ', 'Qiang ', 'Lian ', 'Huan ', 'Xin ', 'Niao ', 'Dong ', 'Yi ',
+'Can ', 'Ai ', 'Niang ', 'Neng ', 'Ma ', 'Tiao ', 'Chou ', 'Jin ', 'Ci ', 'Yu ', 'Pin ', 'Yong ', 'Xu ', 'Nai ', 'Yan ', 'Tai ',
+'Ying ', 'Can ', 'Niao ', 'Wo ', 'Ying ', 'Mian ', 'Kaka ', 'Ma ', 'Shen ', 'Xing ', 'Ni ', 'Du ', 'Liu ', 'Yuan ', 'Lan ', 'Yan ',
+'Shuang ', 'Ling ', 'Jiao ', 'Niang ', 'Lan ', 'Xian ', 'Ying ', 'Shuang ', 'Shuai ', 'Quan ', 'Mi ', 'Li ', 'Luan ', 'Yan ', 'Zhu ', 'Lan ',
+'Zi ', 'Jie ', 'Jue ', 'Jue ', 'Kong ', 'Yun ', 'Zi ', 'Zi ', 'Cun ', 'Sun ', 'Fu ', 'Bei ', 'Zi ', 'Xiao ', 'Xin ', 'Meng ',
+'Si ', 'Tai ', 'Bao ', 'Ji ', 'Gu ', 'Nu ', 'Xue ', qq{[?] }, 'Zhuan ', 'Hai ', 'Luan ', 'Sun ', 'Huai ', 'Mie ', 'Cong ', 'Qian ',
+'Shu ', 'Chan ', 'Ya ', 'Zi ', 'Ni ', 'Fu ', 'Zi ', 'Li ', 'Xue ', 'Bo ', 'Ru ', 'Lai ', 'Nie ', 'Nie ', 'Ying ', 'Luan ',
+'Mian ', 'Zhu ', 'Rong ', 'Ta ', 'Gui ', 'Zhai ', 'Qiong ', 'Yu ', 'Shou ', 'An ', 'Tu ', 'Song ', 'Wan ', 'Rou ', 'Yao ', 'Hong ',
+'Yi ', 'Jing ', 'Zhun ', 'Mi ', 'Zhu ', 'Dang ', 'Hong ', 'Zong ', 'Guan ', 'Zhou ', 'Ding ', 'Wan ', 'Yi ', 'Bao ', 'Shi ', 'Shi ',
+'Chong ', 'Shen ', 'Ke ', 'Xuan ', 'Shi ', 'You ', 'Huan ', 'Yi ', 'Tiao ', 'Shi ', 'Xian ', 'Gong ', 'Cheng ', 'Qun ', 'Gong ', 'Xiao ',
+'Zai ', 'Zha ', 'Bao ', 'Hai ', 'Yan ', 'Xiao ', 'Jia ', 'Shen ', 'Chen ', 'Rong ', 'Huang ', 'Mi ', 'Kou ', 'Kuan ', 'Bin ', 'Su ',
+'Cai ', 'Zan ', 'Ji ', 'Yuan ', 'Ji ', 'Yin ', 'Mi ', 'Kou ', 'Qing ', 'Que ', 'Zhen ', 'Jian ', 'Fu ', 'Ning ', 'Bing ', 'Huan ',
+'Mei ', 'Qin ', 'Han ', 'Yu ', 'Shi ', 'Ning ', 'Qin ', 'Ning ', 'Zhi ', 'Yu ', 'Bao ', 'Kuan ', 'Ning ', 'Qin ', 'Mo ', 'Cha ',
+'Ju ', 'Gua ', 'Qin ', 'Hu ', 'Wu ', 'Liao ', 'Shi ', 'Zhu ', 'Zhai ', 'Shen ', 'Wei ', 'Xie ', 'Kuan ', 'Hui ', 'Liao ', 'Jun ',
+'Huan ', 'Yi ', 'Yi ', 'Bao ', 'Qin ', 'Chong ', 'Bao ', 'Feng ', 'Cun ', 'Dui ', 'Si ', 'Xun ', 'Dao ', 'Lu ', 'Dui ', 'Shou ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5c.pm
new file mode 100644
index 0000000..f2906f4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5c] = [
+'Po ', 'Feng ', 'Zhuan ', 'Fu ', 'She ', 'Ke ', 'Jiang ', 'Jiang ', 'Zhuan ', 'Wei ', 'Zun ', 'Xun ', 'Shu ', 'Dui ', 'Dao ', 'Xiao ',
+'Ji ', 'Shao ', 'Er ', 'Er ', 'Er ', 'Ga ', 'Jian ', 'Shu ', 'Chen ', 'Shang ', 'Shang ', 'Mo ', 'Ga ', 'Chang ', 'Liao ', 'Xian ',
+'Xian ', qq{[?] }, 'Wang ', 'Wang ', 'You ', 'Liao ', 'Liao ', 'Yao ', 'Mang ', 'Wang ', 'Wang ', 'Wang ', 'Ga ', 'Yao ', 'Duo ', 'Kui ',
+'Zhong ', 'Jiu ', 'Gan ', 'Gu ', 'Gan ', 'Tui ', 'Gan ', 'Gan ', 'Shi ', 'Yin ', 'Chi ', 'Kao ', 'Ni ', 'Jin ', 'Wei ', 'Niao ',
+'Ju ', 'Pi ', 'Ceng ', 'Xi ', 'Bi ', 'Ju ', 'Jie ', 'Tian ', 'Qu ', 'Ti ', 'Jie ', 'Wu ', 'Diao ', 'Shi ', 'Shi ', 'Ping ',
+'Ji ', 'Xie ', 'Chen ', 'Xi ', 'Ni ', 'Zhan ', 'Xi ', qq{[?] }, 'Man ', 'E ', 'Lou ', 'Ping ', 'Ti ', 'Fei ', 'Shu ', 'Xie ',
+'Tu ', 'Lu ', 'Lu ', 'Xi ', 'Ceng ', 'Lu ', 'Ju ', 'Xie ', 'Ju ', 'Jue ', 'Liao ', 'Jue ', 'Shu ', 'Xi ', 'Che ', 'Tun ',
+'Ni ', 'Shan ', qq{[?] }, 'Xian ', 'Li ', 'Xue ', 'Nata ', qq{[?] }, 'Long ', 'Yi ', 'Qi ', 'Ren ', 'Wu ', 'Han ', 'Shen ', 'Yu ',
+'Chu ', 'Sui ', 'Qi ', qq{[?] }, 'Yue ', 'Ban ', 'Yao ', 'Ang ', 'Ya ', 'Wu ', 'Jie ', 'E ', 'Ji ', 'Qian ', 'Fen ', 'Yuan ',
+'Qi ', 'Cen ', 'Qian ', 'Qi ', 'Cha ', 'Jie ', 'Qu ', 'Gang ', 'Xian ', 'Ao ', 'Lan ', 'Dao ', 'Ba ', 'Zuo ', 'Zuo ', 'Yang ',
+'Ju ', 'Gang ', 'Ke ', 'Gou ', 'Xue ', 'Bei ', 'Li ', 'Tiao ', 'Ju ', 'Yan ', 'Fu ', 'Xiu ', 'Jia ', 'Ling ', 'Tuo ', 'Pei ',
+'You ', 'Dai ', 'Kuang ', 'Yue ', 'Qu ', 'Hu ', 'Po ', 'Min ', 'An ', 'Tiao ', 'Ling ', 'Chi ', 'Yuri ', 'Dong ', 'Cem ', 'Kui ',
+'Xiu ', 'Mao ', 'Tong ', 'Xue ', 'Yi ', 'Kura ', 'He ', 'Ke ', 'Luo ', 'E ', 'Fu ', 'Xun ', 'Die ', 'Lu ', 'An ', 'Er ',
+'Gai ', 'Quan ', 'Tong ', 'Yi ', 'Mu ', 'Shi ', 'An ', 'Wei ', 'Hu ', 'Zhi ', 'Mi ', 'Li ', 'Ji ', 'Tong ', 'Wei ', 'You ',
+'Sang ', 'Xia ', 'Li ', 'Yao ', 'Jiao ', 'Zheng ', 'Luan ', 'Jiao ', 'E ', 'E ', 'Yu ', 'Ye ', 'Bu ', 'Qiao ', 'Qun ', 'Feng ',
+'Feng ', 'Nao ', 'Li ', 'You ', 'Xian ', 'Hong ', 'Dao ', 'Shen ', 'Cheng ', 'Tu ', 'Geng ', 'Jun ', 'Hao ', 'Xia ', 'Yin ', 'Yu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5d.pm
new file mode 100644
index 0000000..9494d00
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5d] = [
+'Lang ', 'Kan ', 'Lao ', 'Lai ', 'Xian ', 'Que ', 'Kong ', 'Chong ', 'Chong ', 'Ta ', 'Lin ', 'Hua ', 'Ju ', 'Lai ', 'Qi ', 'Min ',
+'Kun ', 'Kun ', 'Zu ', 'Gu ', 'Cui ', 'Ya ', 'Ya ', 'Gang ', 'Lun ', 'Lun ', 'Leng ', 'Jue ', 'Duo ', 'Zheng ', 'Guo ', 'Yin ',
+'Dong ', 'Han ', 'Zheng ', 'Wei ', 'Yao ', 'Pi ', 'Yan ', 'Song ', 'Jie ', 'Beng ', 'Zu ', 'Jue ', 'Dong ', 'Zhan ', 'Gu ', 'Yin ',
+qq{[?] }, 'Ze ', 'Huang ', 'Yu ', 'Wei ', 'Yang ', 'Feng ', 'Qiu ', 'Dun ', 'Ti ', 'Yi ', 'Zhi ', 'Shi ', 'Zai ', 'Yao ', 'E ',
+'Zhu ', 'Kan ', 'Lu ', 'Yan ', 'Mei ', 'Gan ', 'Ji ', 'Ji ', 'Huan ', 'Ting ', 'Sheng ', 'Mei ', 'Qian ', 'Wu ', 'Yu ', 'Zong ',
+'Lan ', 'Jue ', 'Yan ', 'Yan ', 'Wei ', 'Zong ', 'Cha ', 'Sui ', 'Rong ', 'Yamashina ', 'Qin ', 'Yu ', 'Kewashii ', 'Lou ', 'Tu ', 'Dui ',
+'Xi ', 'Weng ', 'Cang ', 'Dang ', 'Hong ', 'Jie ', 'Ai ', 'Liu ', 'Wu ', 'Song ', 'Qiao ', 'Zi ', 'Wei ', 'Beng ', 'Dian ', 'Cuo ',
+'Qian ', 'Yong ', 'Nie ', 'Cuo ', 'Ji ', qq{[?] }, 'Tao ', 'Song ', 'Zong ', 'Jiang ', 'Liao ', 'Kang ', 'Chan ', 'Die ', 'Cen ', 'Ding ',
+'Tu ', 'Lou ', 'Zhang ', 'Zhan ', 'Zhan ', 'Ao ', 'Cao ', 'Qu ', 'Qiang ', 'Zui ', 'Zui ', 'Dao ', 'Dao ', 'Xi ', 'Yu ', 'Bo ',
+'Long ', 'Xiang ', 'Ceng ', 'Bo ', 'Qin ', 'Jiao ', 'Yan ', 'Lao ', 'Zhan ', 'Lin ', 'Liao ', 'Liao ', 'Jin ', 'Deng ', 'Duo ', 'Zun ',
+'Jiao ', 'Gui ', 'Yao ', 'Qiao ', 'Yao ', 'Jue ', 'Zhan ', 'Yi ', 'Xue ', 'Nao ', 'Ye ', 'Ye ', 'Yi ', 'E ', 'Xian ', 'Ji ',
+'Xie ', 'Ke ', 'Xi ', 'Di ', 'Ao ', 'Zui ', qq{[?] }, 'Ni ', 'Rong ', 'Dao ', 'Ling ', 'Za ', 'Yu ', 'Yue ', 'Yin ', qq{[?] },
+'Jie ', 'Li ', 'Sui ', 'Long ', 'Long ', 'Dian ', 'Ying ', 'Xi ', 'Ju ', 'Chan ', 'Ying ', 'Kui ', 'Yan ', 'Wei ', 'Nao ', 'Quan ',
+'Chao ', 'Cuan ', 'Luan ', 'Dian ', 'Dian ', qq{[?] }, 'Yan ', 'Yan ', 'Yan ', 'Nao ', 'Yan ', 'Chuan ', 'Gui ', 'Chuan ', 'Zhou ', 'Huang ',
+'Jing ', 'Xun ', 'Chao ', 'Chao ', 'Lie ', 'Gong ', 'Zuo ', 'Qiao ', 'Ju ', 'Gong ', 'Kek ', 'Wu ', 'Pwu ', 'Pwu ', 'Chai ', 'Qiu ',
+'Qiu ', 'Ji ', 'Yi ', 'Si ', 'Ba ', 'Zhi ', 'Zhao ', 'Xiang ', 'Yi ', 'Jin ', 'Xun ', 'Juan ', 'Phas ', 'Xun ', 'Jin ', 'Fu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5e.pm
new file mode 100644
index 0000000..14812d1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5e] = [
+'Za ', 'Bi ', 'Shi ', 'Bu ', 'Ding ', 'Shuai ', 'Fan ', 'Nie ', 'Shi ', 'Fen ', 'Pa ', 'Zhi ', 'Xi ', 'Hu ', 'Dan ', 'Wei ',
+'Zhang ', 'Tang ', 'Dai ', 'Ma ', 'Pei ', 'Pa ', 'Tie ', 'Fu ', 'Lian ', 'Zhi ', 'Zhou ', 'Bo ', 'Zhi ', 'Di ', 'Mo ', 'Yi ',
+'Yi ', 'Ping ', 'Qia ', 'Juan ', 'Ru ', 'Shuai ', 'Dai ', 'Zheng ', 'Shui ', 'Qiao ', 'Zhen ', 'Shi ', 'Qun ', 'Xi ', 'Bang ', 'Dai ',
+'Gui ', 'Chou ', 'Ping ', 'Zhang ', 'Sha ', 'Wan ', 'Dai ', 'Wei ', 'Chang ', 'Sha ', 'Qi ', 'Ze ', 'Guo ', 'Mao ', 'Du ', 'Hou ',
+'Zheng ', 'Xu ', 'Mi ', 'Wei ', 'Wo ', 'Fu ', 'Yi ', 'Bang ', 'Ping ', 'Tazuna ', 'Gong ', 'Pan ', 'Huang ', 'Dao ', 'Mi ', 'Jia ',
+'Teng ', 'Hui ', 'Zhong ', 'Shan ', 'Man ', 'Mu ', 'Biao ', 'Guo ', 'Ze ', 'Mu ', 'Bang ', 'Zhang ', 'Jiong ', 'Chan ', 'Fu ', 'Zhi ',
+'Hu ', 'Fan ', 'Chuang ', 'Bi ', 'Hei ', qq{[?] }, 'Mi ', 'Qiao ', 'Chan ', 'Fen ', 'Meng ', 'Bang ', 'Chou ', 'Mie ', 'Chu ', 'Jie ',
+'Xian ', 'Lan ', 'Gan ', 'Ping ', 'Nian ', 'Qian ', 'Bing ', 'Bing ', 'Xing ', 'Gan ', 'Yao ', 'Huan ', 'You ', 'You ', 'Ji ', 'Yan ',
+'Pi ', 'Ting ', 'Ze ', 'Guang ', 'Zhuang ', 'Mo ', 'Qing ', 'Bi ', 'Qin ', 'Dun ', 'Chuang ', 'Gui ', 'Ya ', 'Bai ', 'Jie ', 'Xu ',
+'Lu ', 'Wu ', qq{[?] }, 'Ku ', 'Ying ', 'Di ', 'Pao ', 'Dian ', 'Ya ', 'Miao ', 'Geng ', 'Ci ', 'Fu ', 'Tong ', 'Pang ', 'Fei ',
+'Xiang ', 'Yi ', 'Zhi ', 'Tiao ', 'Zhi ', 'Xiu ', 'Du ', 'Zuo ', 'Xiao ', 'Tu ', 'Gui ', 'Ku ', 'Pang ', 'Ting ', 'You ', 'Bu ',
+'Ding ', 'Cheng ', 'Lai ', 'Bei ', 'Ji ', 'An ', 'Shu ', 'Kang ', 'Yong ', 'Tuo ', 'Song ', 'Shu ', 'Qing ', 'Yu ', 'Yu ', 'Miao ',
+'Sou ', 'Ce ', 'Xiang ', 'Fei ', 'Jiu ', 'He ', 'Hui ', 'Liu ', 'Sha ', 'Lian ', 'Lang ', 'Sou ', 'Jian ', 'Pou ', 'Qing ', 'Jiu ',
+'Jiu ', 'Qin ', 'Ao ', 'Kuo ', 'Lou ', 'Yin ', 'Liao ', 'Dai ', 'Lu ', 'Yi ', 'Chu ', 'Chan ', 'Tu ', 'Si ', 'Xin ', 'Miao ',
+'Chang ', 'Wu ', 'Fei ', 'Guang ', 'Koc ', 'Kuai ', 'Bi ', 'Qiang ', 'Xie ', 'Lin ', 'Lin ', 'Liao ', 'Lu ', qq{[?] }, 'Ying ', 'Xian ',
+'Ting ', 'Yong ', 'Li ', 'Ting ', 'Yin ', 'Xun ', 'Yan ', 'Ting ', 'Di ', 'Po ', 'Jian ', 'Hui ', 'Nai ', 'Hui ', 'Gong ', 'Nian ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5f.pm
new file mode 100644
index 0000000..52499b7
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x5f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x5f] = [
+'Kai ', 'Bian ', 'Yi ', 'Qi ', 'Nong ', 'Fen ', 'Ju ', 'Yan ', 'Yi ', 'Zang ', 'Bi ', 'Yi ', 'Yi ', 'Er ', 'San ', 'Shi ',
+'Er ', 'Shi ', 'Shi ', 'Gong ', 'Diao ', 'Yin ', 'Hu ', 'Fu ', 'Hong ', 'Wu ', 'Tui ', 'Chi ', 'Jiang ', 'Ba ', 'Shen ', 'Di ',
+'Zhang ', 'Jue ', 'Tao ', 'Fu ', 'Di ', 'Mi ', 'Xian ', 'Hu ', 'Chao ', 'Nu ', 'Jing ', 'Zhen ', 'Yi ', 'Mi ', 'Quan ', 'Wan ',
+'Shao ', 'Ruo ', 'Xuan ', 'Jing ', 'Dun ', 'Zhang ', 'Jiang ', 'Qiang ', 'Peng ', 'Dan ', 'Qiang ', 'Bi ', 'Bi ', 'She ', 'Dan ', 'Jian ',
+'Gou ', 'Sei ', 'Fa ', 'Bi ', 'Kou ', 'Nagi ', 'Bie ', 'Xiao ', 'Dan ', 'Kuo ', 'Qiang ', 'Hong ', 'Mi ', 'Kuo ', 'Wan ', 'Jue ',
+'Ji ', 'Ji ', 'Gui ', 'Dang ', 'Lu ', 'Lu ', 'Tuan ', 'Hui ', 'Zhi ', 'Hui ', 'Hui ', 'Yi ', 'Yi ', 'Yi ', 'Yi ', 'Huo ',
+'Huo ', 'Shan ', 'Xing ', 'Wen ', 'Tong ', 'Yan ', 'Yan ', 'Yu ', 'Chi ', 'Cai ', 'Biao ', 'Diao ', 'Bin ', 'Peng ', 'Yong ', 'Piao ',
+'Zhang ', 'Ying ', 'Chi ', 'Chi ', 'Zhuo ', 'Tuo ', 'Ji ', 'Pang ', 'Zhong ', 'Yi ', 'Wang ', 'Che ', 'Bi ', 'Chi ', 'Ling ', 'Fu ',
+'Wang ', 'Zheng ', 'Cu ', 'Wang ', 'Jing ', 'Dai ', 'Xi ', 'Xun ', 'Hen ', 'Yang ', 'Huai ', 'Lu ', 'Hou ', 'Wa ', 'Cheng ', 'Zhi ',
+'Xu ', 'Jing ', 'Tu ', 'Cong ', qq{[?] }, 'Lai ', 'Cong ', 'De ', 'Pai ', 'Xi ', qq{[?] }, 'Qi ', 'Chang ', 'Zhi ', 'Cong ', 'Zhou ',
+'Lai ', 'Yu ', 'Xie ', 'Jie ', 'Jian ', 'Chi ', 'Jia ', 'Bian ', 'Huang ', 'Fu ', 'Xun ', 'Wei ', 'Pang ', 'Yao ', 'Wei ', 'Xi ',
+'Zheng ', 'Piao ', 'Chi ', 'De ', 'Zheng ', 'Zheng ', 'Bie ', 'De ', 'Chong ', 'Che ', 'Jiao ', 'Wei ', 'Jiao ', 'Hui ', 'Mei ', 'Long ',
+'Xiang ', 'Bao ', 'Qu ', 'Xin ', 'Shu ', 'Bi ', 'Yi ', 'Le ', 'Ren ', 'Dao ', 'Ding ', 'Gai ', 'Ji ', 'Ren ', 'Ren ', 'Chan ',
+'Tan ', 'Te ', 'Te ', 'Gan ', 'Qi ', 'Shi ', 'Cun ', 'Zhi ', 'Wang ', 'Mang ', 'Xi ', 'Fan ', 'Ying ', 'Tian ', 'Min ', 'Min ',
+'Zhong ', 'Chong ', 'Wu ', 'Ji ', 'Wu ', 'Xi ', 'Ye ', 'You ', 'Wan ', 'Cong ', 'Zhong ', 'Kuai ', 'Yu ', 'Bian ', 'Zhi ', 'Qi ',
+'Cui ', 'Chen ', 'Tai ', 'Tun ', 'Qian ', 'Nian ', 'Hun ', 'Xiong ', 'Niu ', 'Wang ', 'Xian ', 'Xin ', 'Kang ', 'Hu ', 'Kai ', 'Fen ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x60.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x60.pm
new file mode 100644
index 0000000..0fc38e4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x60.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x60] = [
+'Huai ', 'Tai ', 'Song ', 'Wu ', 'Ou ', 'Chang ', 'Chuang ', 'Ju ', 'Yi ', 'Bao ', 'Chao ', 'Min ', 'Pei ', 'Zuo ', 'Zen ', 'Yang ',
+'Kou ', 'Ban ', 'Nu ', 'Nao ', 'Zheng ', 'Pa ', 'Bu ', 'Tie ', 'Gu ', 'Hu ', 'Ju ', 'Da ', 'Lian ', 'Si ', 'Chou ', 'Di ',
+'Dai ', 'Yi ', 'Tu ', 'You ', 'Fu ', 'Ji ', 'Peng ', 'Xing ', 'Yuan ', 'Ni ', 'Guai ', 'Fu ', 'Xi ', 'Bi ', 'You ', 'Qie ',
+'Xuan ', 'Cong ', 'Bing ', 'Huang ', 'Xu ', 'Chu ', 'Pi ', 'Xi ', 'Xi ', 'Tan ', 'Koraeru ', 'Zong ', 'Dui ', qq{[?] }, 'Ki ', 'Yi ',
+'Chi ', 'Ren ', 'Xun ', 'Shi ', 'Xi ', 'Lao ', 'Heng ', 'Kuang ', 'Mu ', 'Zhi ', 'Xie ', 'Lian ', 'Tiao ', 'Huang ', 'Die ', 'Hao ',
+'Kong ', 'Gui ', 'Heng ', 'Xi ', 'Xiao ', 'Shu ', 'S ', 'Kua ', 'Qiu ', 'Yang ', 'Hui ', 'Hui ', 'Chi ', 'Jia ', 'Yi ', 'Xiong ',
+'Guai ', 'Lin ', 'Hui ', 'Zi ', 'Xu ', 'Chi ', 'Xiang ', 'Nu ', 'Hen ', 'En ', 'Ke ', 'Tong ', 'Tian ', 'Gong ', 'Quan ', 'Xi ',
+'Qia ', 'Yue ', 'Peng ', 'Ken ', 'De ', 'Hui ', 'E ', 'Kyuu ', 'Tong ', 'Yan ', 'Kai ', 'Ce ', 'Nao ', 'Yun ', 'Mang ', 'Yong ',
+'Yong ', 'Yuan ', 'Pi ', 'Kun ', 'Qiao ', 'Yue ', 'Yu ', 'Yu ', 'Jie ', 'Xi ', 'Zhe ', 'Lin ', 'Ti ', 'Han ', 'Hao ', 'Qie ',
+'Ti ', 'Bu ', 'Yi ', 'Qian ', 'Hui ', 'Xi ', 'Bei ', 'Man ', 'Yi ', 'Heng ', 'Song ', 'Quan ', 'Cheng ', 'Hui ', 'Wu ', 'Wu ',
+'You ', 'Li ', 'Liang ', 'Huan ', 'Cong ', 'Yi ', 'Yue ', 'Li ', 'Nin ', 'Nao ', 'E ', 'Que ', 'Xuan ', 'Qian ', 'Wu ', 'Min ',
+'Cong ', 'Fei ', 'Bei ', 'Duo ', 'Cui ', 'Chang ', 'Men ', 'Li ', 'Ji ', 'Guan ', 'Guan ', 'Xing ', 'Dao ', 'Qi ', 'Kong ', 'Tian ',
+'Lun ', 'Xi ', 'Kan ', 'Kun ', 'Ni ', 'Qing ', 'Chou ', 'Dun ', 'Guo ', 'Chan ', 'Liang ', 'Wan ', 'Yuan ', 'Jin ', 'Ji ', 'Lin ',
+'Yu ', 'Huo ', 'He ', 'Quan ', 'Tan ', 'Ti ', 'Ti ', 'Nie ', 'Wang ', 'Chuo ', 'Bu ', 'Hun ', 'Xi ', 'Tang ', 'Xin ', 'Wei ',
+'Hui ', 'E ', 'Rui ', 'Zong ', 'Jian ', 'Yong ', 'Dian ', 'Ju ', 'Can ', 'Cheng ', 'De ', 'Bei ', 'Qie ', 'Can ', 'Dan ', 'Guan ',
+'Duo ', 'Nao ', 'Yun ', 'Xiang ', 'Zhui ', 'Die ', 'Huang ', 'Chun ', 'Qiong ', 'Re ', 'Xing ', 'Ce ', 'Bian ', 'Hun ', 'Zong ', 'Ti ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x61.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x61.pm
new file mode 100644
index 0000000..0e30412
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x61.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x61] = [
+'Qiao ', 'Chou ', 'Bei ', 'Xuan ', 'Wei ', 'Ge ', 'Qian ', 'Wei ', 'Yu ', 'Yu ', 'Bi ', 'Xuan ', 'Huan ', 'Min ', 'Bi ', 'Yi ',
+'Mian ', 'Yong ', 'Kai ', 'Dang ', 'Yin ', 'E ', 'Chen ', 'Mou ', 'Ke ', 'Ke ', 'Yu ', 'Ai ', 'Qie ', 'Yan ', 'Nuo ', 'Gan ',
+'Yun ', 'Zong ', 'Sai ', 'Leng ', 'Fen ', qq{[?] }, 'Kui ', 'Kui ', 'Que ', 'Gong ', 'Yun ', 'Su ', 'Su ', 'Qi ', 'Yao ', 'Song ',
+'Huang ', 'Ji ', 'Gu ', 'Ju ', 'Chuang ', 'Ni ', 'Xie ', 'Kai ', 'Zheng ', 'Yong ', 'Cao ', 'Sun ', 'Shen ', 'Bo ', 'Kai ', 'Yuan ',
+'Xie ', 'Hun ', 'Yong ', 'Yang ', 'Li ', 'Sao ', 'Tao ', 'Yin ', 'Ci ', 'Xu ', 'Qian ', 'Tai ', 'Huang ', 'Yun ', 'Shen ', 'Ming ',
+qq{[?] }, 'She ', 'Cong ', 'Piao ', 'Mo ', 'Mu ', 'Guo ', 'Chi ', 'Can ', 'Can ', 'Can ', 'Cui ', 'Min ', 'Te ', 'Zhang ', 'Tong ',
+'Ao ', 'Shuang ', 'Man ', 'Guan ', 'Que ', 'Zao ', 'Jiu ', 'Hui ', 'Kai ', 'Lian ', 'Ou ', 'Song ', 'Jin ', 'Yin ', 'Lu ', 'Shang ',
+'Wei ', 'Tuan ', 'Man ', 'Qian ', 'She ', 'Yong ', 'Qing ', 'Kang ', 'Di ', 'Zhi ', 'Lou ', 'Juan ', 'Qi ', 'Qi ', 'Yu ', 'Ping ',
+'Liao ', 'Cong ', 'You ', 'Chong ', 'Zhi ', 'Tong ', 'Cheng ', 'Qi ', 'Qu ', 'Peng ', 'Bei ', 'Bie ', 'Chun ', 'Jiao ', 'Zeng ', 'Chi ',
+'Lian ', 'Ping ', 'Kui ', 'Hui ', 'Qiao ', 'Cheng ', 'Yin ', 'Yin ', 'Xi ', 'Xi ', 'Dan ', 'Tan ', 'Duo ', 'Dui ', 'Dui ', 'Su ',
+'Jue ', 'Ce ', 'Xiao ', 'Fan ', 'Fen ', 'Lao ', 'Lao ', 'Chong ', 'Han ', 'Qi ', 'Xian ', 'Min ', 'Jing ', 'Liao ', 'Wu ', 'Can ',
+'Jue ', 'Cu ', 'Xian ', 'Tan ', 'Sheng ', 'Pi ', 'Yi ', 'Chu ', 'Xian ', 'Nao ', 'Dan ', 'Tan ', 'Jing ', 'Song ', 'Han ', 'Jiao ',
+'Wai ', 'Huan ', 'Dong ', 'Qin ', 'Qin ', 'Qu ', 'Cao ', 'Ken ', 'Xie ', 'Ying ', 'Ao ', 'Mao ', 'Yi ', 'Lin ', 'Se ', 'Jun ',
+'Huai ', 'Men ', 'Lan ', 'Ai ', 'Lin ', 'Yan ', 'Gua ', 'Xia ', 'Chi ', 'Yu ', 'Yin ', 'Dai ', 'Meng ', 'Ai ', 'Meng ', 'Dui ',
+'Qi ', 'Mo ', 'Lan ', 'Men ', 'Chou ', 'Zhi ', 'Nuo ', 'Nuo ', 'Yan ', 'Yang ', 'Bo ', 'Zhi ', 'Kuang ', 'Kuang ', 'You ', 'Fu ',
+'Liu ', 'Mie ', 'Cheng ', qq{[?] }, 'Chan ', 'Meng ', 'Lan ', 'Huai ', 'Xuan ', 'Rang ', 'Chan ', 'Ji ', 'Ju ', 'Huan ', 'She ', 'Yi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x62.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x62.pm
new file mode 100644
index 0000000..91066c9
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x62.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x62] = [
+'Lian ', 'Nan ', 'Mi ', 'Tang ', 'Jue ', 'Gang ', 'Gang ', 'Gang ', 'Ge ', 'Yue ', 'Wu ', 'Jian ', 'Xu ', 'Shu ', 'Rong ', 'Xi ',
+'Cheng ', 'Wo ', 'Jie ', 'Ge ', 'Jian ', 'Qiang ', 'Huo ', 'Qiang ', 'Zhan ', 'Dong ', 'Qi ', 'Jia ', 'Die ', 'Zei ', 'Jia ', 'Ji ',
+'Shi ', 'Kan ', 'Ji ', 'Kui ', 'Gai ', 'Deng ', 'Zhan ', 'Chuang ', 'Ge ', 'Jian ', 'Jie ', 'Yu ', 'Jian ', 'Yan ', 'Lu ', 'Xi ',
+'Zhan ', 'Xi ', 'Xi ', 'Chuo ', 'Dai ', 'Qu ', 'Hu ', 'Hu ', 'Hu ', 'E ', 'Shi ', 'Li ', 'Mao ', 'Hu ', 'Li ', 'Fang ',
+'Suo ', 'Bian ', 'Dian ', 'Jiong ', 'Shang ', 'Yi ', 'Yi ', 'Shan ', 'Hu ', 'Fei ', 'Yan ', 'Shou ', 'T ', 'Cai ', 'Zha ', 'Qiu ',
+'Le ', 'Bu ', 'Ba ', 'Da ', 'Reng ', 'Fu ', 'Hameru ', 'Zai ', 'Tuo ', 'Zhang ', 'Diao ', 'Kang ', 'Yu ', 'Ku ', 'Han ', 'Shen ',
+'Cha ', 'Yi ', 'Gu ', 'Kou ', 'Wu ', 'Tuo ', 'Qian ', 'Zhi ', 'Ren ', 'Kuo ', 'Men ', 'Sao ', 'Yang ', 'Niu ', 'Ban ', 'Che ',
+'Rao ', 'Xi ', 'Qian ', 'Ban ', 'Jia ', 'Yu ', 'Fu ', 'Ao ', 'Xi ', 'Pi ', 'Zhi ', 'Zi ', 'E ', 'Dun ', 'Zhao ', 'Cheng ',
+'Ji ', 'Yan ', 'Kuang ', 'Bian ', 'Chao ', 'Ju ', 'Wen ', 'Hu ', 'Yue ', 'Jue ', 'Ba ', 'Qin ', 'Zhen ', 'Zheng ', 'Yun ', 'Wan ',
+'Nu ', 'Yi ', 'Shu ', 'Zhua ', 'Pou ', 'Tou ', 'Dou ', 'Kang ', 'Zhe ', 'Pou ', 'Fu ', 'Pao ', 'Ba ', 'Ao ', 'Ze ', 'Tuan ',
+'Kou ', 'Lun ', 'Qiang ', qq{[?] }, 'Hu ', 'Bao ', 'Bing ', 'Zhi ', 'Peng ', 'Tan ', 'Pu ', 'Pi ', 'Tai ', 'Yao ', 'Zhen ', 'Zha ',
+'Yang ', 'Bao ', 'He ', 'Ni ', 'Yi ', 'Di ', 'Chi ', 'Pi ', 'Za ', 'Mo ', 'Mo ', 'Shen ', 'Ya ', 'Chou ', 'Qu ', 'Min ',
+'Chu ', 'Jia ', 'Fu ', 'Zhan ', 'Zhu ', 'Dan ', 'Chai ', 'Mu ', 'Nian ', 'La ', 'Fu ', 'Pao ', 'Ban ', 'Pai ', 'Ling ', 'Na ',
+'Guai ', 'Qian ', 'Ju ', 'Tuo ', 'Ba ', 'Tuo ', 'Tuo ', 'Ao ', 'Ju ', 'Zhuo ', 'Pan ', 'Zhao ', 'Bai ', 'Bai ', 'Di ', 'Ni ',
+'Ju ', 'Kuo ', 'Long ', 'Jian ', qq{[?] }, 'Yong ', 'Lan ', 'Ning ', 'Bo ', 'Ze ', 'Qian ', 'Hen ', 'Gua ', 'Shi ', 'Jie ', 'Zheng ',
+'Nin ', 'Gong ', 'Gong ', 'Quan ', 'Shuan ', 'Cun ', 'Zan ', 'Kao ', 'Chi ', 'Xie ', 'Ce ', 'Hui ', 'Pin ', 'Zhuai ', 'Shi ', 'Na ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x63.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x63.pm
new file mode 100644
index 0000000..8cc64b3
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x63.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x63] = [
+'Bo ', 'Chi ', 'Gua ', 'Zhi ', 'Kuo ', 'Duo ', 'Duo ', 'Zhi ', 'Qie ', 'An ', 'Nong ', 'Zhen ', 'Ge ', 'Jiao ', 'Ku ', 'Dong ',
+'Ru ', 'Tiao ', 'Lie ', 'Zha ', 'Lu ', 'Die ', 'Wa ', 'Jue ', 'Mushiru ', 'Ju ', 'Zhi ', 'Luan ', 'Ya ', 'Zhua ', 'Ta ', 'Xie ',
+'Nao ', 'Dang ', 'Jiao ', 'Zheng ', 'Ji ', 'Hui ', 'Xun ', 'Ku ', 'Ai ', 'Tuo ', 'Nuo ', 'Cuo ', 'Bo ', 'Geng ', 'Ti ', 'Zhen ',
+'Cheng ', 'Suo ', 'Suo ', 'Keng ', 'Mei ', 'Long ', 'Ju ', 'Peng ', 'Jian ', 'Yi ', 'Ting ', 'Shan ', 'Nuo ', 'Wan ', 'Xie ', 'Cha ',
+'Feng ', 'Jiao ', 'Wu ', 'Jun ', 'Jiu ', 'Tong ', 'Kun ', 'Huo ', 'Tu ', 'Zhuo ', 'Pou ', 'Le ', 'Ba ', 'Han ', 'Shao ', 'Nie ',
+'Juan ', 'Ze ', 'Song ', 'Ye ', 'Jue ', 'Bu ', 'Huan ', 'Bu ', 'Zun ', 'Yi ', 'Zhai ', 'Lu ', 'Sou ', 'Tuo ', 'Lao ', 'Sun ',
+'Bang ', 'Jian ', 'Huan ', 'Dao ', qq{[?] }, 'Wan ', 'Qin ', 'Peng ', 'She ', 'Lie ', 'Min ', 'Men ', 'Fu ', 'Bai ', 'Ju ', 'Dao ',
+'Wo ', 'Ai ', 'Juan ', 'Yue ', 'Zong ', 'Chen ', 'Chui ', 'Jie ', 'Tu ', 'Ben ', 'Na ', 'Nian ', 'Nuo ', 'Zu ', 'Wo ', 'Xi ',
+'Xian ', 'Cheng ', 'Dian ', 'Sao ', 'Lun ', 'Qing ', 'Gang ', 'Duo ', 'Shou ', 'Diao ', 'Pou ', 'Di ', 'Zhang ', 'Gun ', 'Ji ', 'Tao ',
+'Qia ', 'Qi ', 'Pai ', 'Shu ', 'Qian ', 'Ling ', 'Yi ', 'Ya ', 'Jue ', 'Zheng ', 'Liang ', 'Gua ', 'Yi ', 'Huo ', 'Shan ', 'Zheng ',
+'Lue ', 'Cai ', 'Tan ', 'Che ', 'Bing ', 'Jie ', 'Ti ', 'Kong ', 'Tui ', 'Yan ', 'Cuo ', 'Zou ', 'Ju ', 'Tian ', 'Qian ', 'Ken ',
+'Bai ', 'Shou ', 'Jie ', 'Lu ', 'Guo ', 'Haba ', qq{[?] }, 'Zhi ', 'Dan ', 'Mang ', 'Xian ', 'Sao ', 'Guan ', 'Peng ', 'Yuan ', 'Nuo ',
+'Jian ', 'Zhen ', 'Jiu ', 'Jian ', 'Yu ', 'Yan ', 'Kui ', 'Nan ', 'Hong ', 'Rou ', 'Pi ', 'Wei ', 'Sai ', 'Zou ', 'Xuan ', 'Miao ',
+'Ti ', 'Nie ', 'Cha ', 'Shi ', 'Zong ', 'Zhen ', 'Yi ', 'Shun ', 'Heng ', 'Bian ', 'Yang ', 'Huan ', 'Yan ', 'Zuan ', 'An ', 'Xu ',
+'Ya ', 'Wo ', 'Ke ', 'Chuai ', 'Ji ', 'Ti ', 'La ', 'La ', 'Cheng ', 'Kai ', 'Jiu ', 'Jiu ', 'Tu ', 'Jie ', 'Hui ', 'Geng ',
+'Chong ', 'Shuo ', 'She ', 'Xie ', 'Yuan ', 'Qian ', 'Ye ', 'Cha ', 'Zha ', 'Bei ', 'Yao ', qq{[?] }, qq{[?] }, 'Lan ', 'Wen ', 'Qin ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x64.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x64.pm
new file mode 100644
index 0000000..27b011c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x64.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x64] = [
+'Chan ', 'Ge ', 'Lou ', 'Zong ', 'Geng ', 'Jiao ', 'Gou ', 'Qin ', 'Yong ', 'Que ', 'Chou ', 'Chi ', 'Zhan ', 'Sun ', 'Sun ', 'Bo ',
+'Chu ', 'Rong ', 'Beng ', 'Cuo ', 'Sao ', 'Ke ', 'Yao ', 'Dao ', 'Zhi ', 'Nu ', 'Xie ', 'Jian ', 'Sou ', 'Qiu ', 'Gao ', 'Xian ',
+'Shuo ', 'Sang ', 'Jin ', 'Mie ', 'E ', 'Chui ', 'Nuo ', 'Shan ', 'Ta ', 'Jie ', 'Tang ', 'Pan ', 'Ban ', 'Da ', 'Li ', 'Tao ',
+'Hu ', 'Zhi ', 'Wa ', 'Xia ', 'Qian ', 'Wen ', 'Qiang ', 'Tian ', 'Zhen ', 'E ', 'Xi ', 'Nuo ', 'Quan ', 'Cha ', 'Zha ', 'Ge ',
+'Wu ', 'En ', 'She ', 'Kang ', 'She ', 'Shu ', 'Bai ', 'Yao ', 'Bin ', 'Sou ', 'Tan ', 'Sa ', 'Chan ', 'Suo ', 'Liao ', 'Chong ',
+'Chuang ', 'Guo ', 'Bing ', 'Feng ', 'Shuai ', 'Di ', 'Qi ', 'Sou ', 'Zhai ', 'Lian ', 'Tang ', 'Chi ', 'Guan ', 'Lu ', 'Luo ', 'Lou ',
+'Zong ', 'Gai ', 'Hu ', 'Zha ', 'Chuang ', 'Tang ', 'Hua ', 'Cui ', 'Nai ', 'Mo ', 'Jiang ', 'Gui ', 'Ying ', 'Zhi ', 'Ao ', 'Zhi ',
+'Nie ', 'Man ', 'Shan ', 'Kou ', 'Shu ', 'Suo ', 'Tuan ', 'Jiao ', 'Mo ', 'Mo ', 'Zhe ', 'Xian ', 'Keng ', 'Piao ', 'Jiang ', 'Yin ',
+'Gou ', 'Qian ', 'Lue ', 'Ji ', 'Ying ', 'Jue ', 'Pie ', 'Pie ', 'Lao ', 'Dun ', 'Xian ', 'Ruan ', 'Kui ', 'Zan ', 'Yi ', 'Xun ',
+'Cheng ', 'Cheng ', 'Sa ', 'Nao ', 'Heng ', 'Si ', 'Qian ', 'Huang ', 'Da ', 'Zun ', 'Nian ', 'Lin ', 'Zheng ', 'Hui ', 'Zhuang ', 'Jiao ',
+'Ji ', 'Cao ', 'Dan ', 'Dan ', 'Che ', 'Bo ', 'Che ', 'Jue ', 'Xiao ', 'Liao ', 'Ben ', 'Fu ', 'Qiao ', 'Bo ', 'Cuo ', 'Zhuo ',
+'Zhuan ', 'Tuo ', 'Pu ', 'Qin ', 'Dun ', 'Nian ', qq{[?] }, 'Xie ', 'Lu ', 'Jiao ', 'Cuan ', 'Ta ', 'Han ', 'Qiao ', 'Zhua ', 'Jian ',
+'Gan ', 'Yong ', 'Lei ', 'Kuo ', 'Lu ', 'Shan ', 'Zhuo ', 'Ze ', 'Pu ', 'Chuo ', 'Ji ', 'Dang ', 'Suo ', 'Cao ', 'Qing ', 'Jing ',
+'Huan ', 'Jie ', 'Qin ', 'Kuai ', 'Dan ', 'Xi ', 'Ge ', 'Pi ', 'Bo ', 'Ao ', 'Ju ', 'Ye ', qq{[?] }, 'Mang ', 'Sou ', 'Mi ',
+'Ji ', 'Tai ', 'Zhuo ', 'Dao ', 'Xing ', 'Lan ', 'Ca ', 'Ju ', 'Ye ', 'Ru ', 'Ye ', 'Ye ', 'Ni ', 'Hu ', 'Ji ', 'Bin ',
+'Ning ', 'Ge ', 'Zhi ', 'Jie ', 'Kuo ', 'Mo ', 'Jian ', 'Xie ', 'Lie ', 'Tan ', 'Bai ', 'Sou ', 'Lu ', 'Lue ', 'Rao ', 'Zhi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x65.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x65.pm
new file mode 100644
index 0000000..c59e243
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x65.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x65] = [
+'Pan ', 'Yang ', 'Lei ', 'Sa ', 'Shu ', 'Zan ', 'Nian ', 'Xian ', 'Jun ', 'Huo ', 'Li ', 'La ', 'Han ', 'Ying ', 'Lu ', 'Long ',
+'Qian ', 'Qian ', 'Zan ', 'Qian ', 'Lan ', 'San ', 'Ying ', 'Mei ', 'Rang ', 'Chan ', qq{[?] }, 'Cuan ', 'Xi ', 'She ', 'Luo ', 'Jun ',
+'Mi ', 'Li ', 'Zan ', 'Luan ', 'Tan ', 'Zuan ', 'Li ', 'Dian ', 'Wa ', 'Dang ', 'Jiao ', 'Jue ', 'Lan ', 'Li ', 'Nang ', 'Zhi ',
+'Gui ', 'Gui ', 'Qi ', 'Xin ', 'Pu ', 'Sui ', 'Shou ', 'Kao ', 'You ', 'Gai ', 'Yi ', 'Gong ', 'Gan ', 'Ban ', 'Fang ', 'Zheng ',
+'Bo ', 'Dian ', 'Kou ', 'Min ', 'Wu ', 'Gu ', 'He ', 'Ce ', 'Xiao ', 'Mi ', 'Chu ', 'Ge ', 'Di ', 'Xu ', 'Jiao ', 'Min ',
+'Chen ', 'Jiu ', 'Zhen ', 'Duo ', 'Yu ', 'Chi ', 'Ao ', 'Bai ', 'Xu ', 'Jiao ', 'Duo ', 'Lian ', 'Nie ', 'Bi ', 'Chang ', 'Dian ',
+'Duo ', 'Yi ', 'Gan ', 'San ', 'Ke ', 'Yan ', 'Dun ', 'Qi ', 'Dou ', 'Xiao ', 'Duo ', 'Jiao ', 'Jing ', 'Yang ', 'Xia ', 'Min ',
+'Shu ', 'Ai ', 'Qiao ', 'Ai ', 'Zheng ', 'Di ', 'Zhen ', 'Fu ', 'Shu ', 'Liao ', 'Qu ', 'Xiong ', 'Xi ', 'Jiao ', 'Sen ', 'Jiao ',
+'Zhuo ', 'Yi ', 'Lian ', 'Bi ', 'Li ', 'Xiao ', 'Xiao ', 'Wen ', 'Xue ', 'Qi ', 'Qi ', 'Zhai ', 'Bin ', 'Jue ', 'Zhai ', qq{[?] },
+'Fei ', 'Ban ', 'Ban ', 'Lan ', 'Yu ', 'Lan ', 'Wei ', 'Dou ', 'Sheng ', 'Liao ', 'Jia ', 'Hu ', 'Xie ', 'Jia ', 'Yu ', 'Zhen ',
+'Jiao ', 'Wo ', 'Tou ', 'Chu ', 'Jin ', 'Chi ', 'Yin ', 'Fu ', 'Qiang ', 'Zhan ', 'Qu ', 'Zhuo ', 'Zhan ', 'Duan ', 'Zhuo ', 'Si ',
+'Xin ', 'Zhuo ', 'Zhuo ', 'Qin ', 'Lin ', 'Zhuo ', 'Chu ', 'Duan ', 'Zhu ', 'Fang ', 'Xie ', 'Hang ', 'Yu ', 'Shi ', 'Pei ', 'You ',
+'Mye ', 'Pang ', 'Qi ', 'Zhan ', 'Mao ', 'Lu ', 'Pei ', 'Pi ', 'Liu ', 'Fu ', 'Fang ', 'Xuan ', 'Jing ', 'Jing ', 'Ni ', 'Zu ',
+'Zhao ', 'Yi ', 'Liu ', 'Shao ', 'Jian ', 'Es ', 'Yi ', 'Qi ', 'Zhi ', 'Fan ', 'Piao ', 'Fan ', 'Zhan ', 'Guai ', 'Sui ', 'Yu ',
+'Wu ', 'Ji ', 'Ji ', 'Ji ', 'Huo ', 'Ri ', 'Dan ', 'Jiu ', 'Zhi ', 'Zao ', 'Xie ', 'Tiao ', 'Xun ', 'Xu ', 'Xu ', 'Xu ',
+'Gan ', 'Han ', 'Tai ', 'Di ', 'Xu ', 'Chan ', 'Shi ', 'Kuang ', 'Yang ', 'Shi ', 'Wang ', 'Min ', 'Min ', 'Tun ', 'Chun ', 'Wu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x66.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x66.pm
new file mode 100644
index 0000000..a62fd89
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x66.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x66] = [
+'Yun ', 'Bei ', 'Ang ', 'Ze ', 'Ban ', 'Jie ', 'Kun ', 'Sheng ', 'Hu ', 'Fang ', 'Hao ', 'Gui ', 'Chang ', 'Xuan ', 'Ming ', 'Hun ',
+'Fen ', 'Qin ', 'Hu ', 'Yi ', 'Xi ', 'Xin ', 'Yan ', 'Ze ', 'Fang ', 'Tan ', 'Shen ', 'Ju ', 'Yang ', 'Zan ', 'Bing ', 'Xing ',
+'Ying ', 'Xuan ', 'Pei ', 'Zhen ', 'Ling ', 'Chun ', 'Hao ', 'Mei ', 'Zuo ', 'Mo ', 'Bian ', 'Xu ', 'Hun ', 'Zhao ', 'Zong ', 'Shi ',
+'Shi ', 'Yu ', 'Fei ', 'Die ', 'Mao ', 'Ni ', 'Chang ', 'Wen ', 'Dong ', 'Ai ', 'Bing ', 'Ang ', 'Zhou ', 'Long ', 'Xian ', 'Kuang ',
+'Tiao ', 'Chao ', 'Shi ', 'Huang ', 'Huang ', 'Xuan ', 'Kui ', 'Xu ', 'Jiao ', 'Jin ', 'Zhi ', 'Jin ', 'Shang ', 'Tong ', 'Hong ', 'Yan ',
+'Gai ', 'Xiang ', 'Shai ', 'Xiao ', 'Ye ', 'Yun ', 'Hui ', 'Han ', 'Han ', 'Jun ', 'Wan ', 'Xian ', 'Kun ', 'Zhou ', 'Xi ', 'Cheng ',
+'Sheng ', 'Bu ', 'Zhe ', 'Zhe ', 'Wu ', 'Han ', 'Hui ', 'Hao ', 'Chen ', 'Wan ', 'Tian ', 'Zhuo ', 'Zui ', 'Zhou ', 'Pu ', 'Jing ',
+'Xi ', 'Shan ', 'Yi ', 'Xi ', 'Qing ', 'Qi ', 'Jing ', 'Gui ', 'Zhen ', 'Yi ', 'Zhi ', 'An ', 'Wan ', 'Lin ', 'Liang ', 'Chang ',
+'Wang ', 'Xiao ', 'Zan ', 'Hi ', 'Xuan ', 'Xuan ', 'Yi ', 'Xia ', 'Yun ', 'Hui ', 'Fu ', 'Min ', 'Kui ', 'He ', 'Ying ', 'Du ',
+'Wei ', 'Shu ', 'Qing ', 'Mao ', 'Nan ', 'Jian ', 'Nuan ', 'An ', 'Yang ', 'Chun ', 'Yao ', 'Suo ', 'Jin ', 'Ming ', 'Jiao ', 'Kai ',
+'Gao ', 'Weng ', 'Chang ', 'Qi ', 'Hao ', 'Yan ', 'Li ', 'Ai ', 'Ji ', 'Gui ', 'Men ', 'Zan ', 'Xie ', 'Hao ', 'Mu ', 'Mo ',
+'Cong ', 'Ni ', 'Zhang ', 'Hui ', 'Bao ', 'Han ', 'Xuan ', 'Chuan ', 'Liao ', 'Xian ', 'Dan ', 'Jing ', 'Pie ', 'Lin ', 'Tun ', 'Xi ',
+'Yi ', 'Ji ', 'Huang ', 'Tai ', 'Ye ', 'Ye ', 'Li ', 'Tan ', 'Tong ', 'Xiao ', 'Fei ', 'Qin ', 'Zhao ', 'Hao ', 'Yi ', 'Xiang ',
+'Xing ', 'Sen ', 'Jiao ', 'Bao ', 'Jing ', 'Yian ', 'Ai ', 'Ye ', 'Ru ', 'Shu ', 'Meng ', 'Xun ', 'Yao ', 'Pu ', 'Li ', 'Chen ',
+'Kuang ', 'Die ', qq{[?] }, 'Yan ', 'Huo ', 'Lu ', 'Xi ', 'Rong ', 'Long ', 'Nang ', 'Luo ', 'Luan ', 'Shai ', 'Tang ', 'Yan ', 'Chu ',
+'Yue ', 'Yue ', 'Qu ', 'Yi ', 'Geng ', 'Ye ', 'Hu ', 'He ', 'Shu ', 'Cao ', 'Cao ', 'Noboru ', 'Man ', 'Ceng ', 'Ceng ', 'Ti ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x67.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x67.pm
new file mode 100644
index 0000000..a15d8f1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x67.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x67] = [
+'Zui ', 'Can ', 'Xu ', 'Hui ', 'Yin ', 'Qie ', 'Fen ', 'Pi ', 'Yue ', 'You ', 'Ruan ', 'Peng ', 'Ban ', 'Fu ', 'Ling ', 'Fei ',
+'Qu ', qq{[?] }, 'Nu ', 'Tiao ', 'Shuo ', 'Zhen ', 'Lang ', 'Lang ', 'Juan ', 'Ming ', 'Huang ', 'Wang ', 'Tun ', 'Zhao ', 'Ji ', 'Qi ',
+'Ying ', 'Zong ', 'Wang ', 'Tong ', 'Lang ', qq{[?] }, 'Meng ', 'Long ', 'Mu ', 'Deng ', 'Wei ', 'Mo ', 'Ben ', 'Zha ', 'Zhu ', 'Zhu ',
+qq{[?] }, 'Zhu ', 'Ren ', 'Ba ', 'Po ', 'Duo ', 'Duo ', 'Dao ', 'Li ', 'Qiu ', 'Ji ', 'Jiu ', 'Bi ', 'Xiu ', 'Ting ', 'Ci ',
+'Sha ', 'Eburi ', 'Za ', 'Quan ', 'Qian ', 'Yu ', 'Gan ', 'Wu ', 'Cha ', 'Shan ', 'Xun ', 'Fan ', 'Wu ', 'Zi ', 'Li ', 'Xing ',
+'Cai ', 'Cun ', 'Ren ', 'Shao ', 'Tuo ', 'Di ', 'Zhang ', 'Mang ', 'Chi ', 'Yi ', 'Gu ', 'Gong ', 'Du ', 'Yi ', 'Qi ', 'Shu ',
+'Gang ', 'Tiao ', 'Moku ', 'Soma ', 'Tochi ', 'Lai ', 'Sugi ', 'Mang ', 'Yang ', 'Ma ', 'Miao ', 'Si ', 'Yuan ', 'Hang ', 'Fei ', 'Bei ',
+'Jie ', 'Dong ', 'Gao ', 'Yao ', 'Xian ', 'Chu ', 'Qun ', 'Pa ', 'Shu ', 'Hua ', 'Xin ', 'Chou ', 'Zhu ', 'Chou ', 'Song ', 'Ban ',
+'Song ', 'Ji ', 'Yue ', 'Jin ', 'Gou ', 'Ji ', 'Mao ', 'Pi ', 'Bi ', 'Wang ', 'Ang ', 'Fang ', 'Fen ', 'Yi ', 'Fu ', 'Nan ',
+'Xi ', 'Hu ', 'Ya ', 'Dou ', 'Xun ', 'Zhen ', 'Yao ', 'Lin ', 'Rui ', 'E ', 'Mei ', 'Zhao ', 'Guo ', 'Zhi ', 'Cong ', 'Yun ',
+'Waku ', 'Dou ', 'Shu ', 'Zao ', qq{[?] }, 'Li ', 'Haze ', 'Jian ', 'Cheng ', 'Matsu ', 'Qiang ', 'Feng ', 'Nan ', 'Xiao ', 'Xian ', 'Ku ',
+'Ping ', 'Yi ', 'Xi ', 'Zhi ', 'Guai ', 'Xiao ', 'Jia ', 'Jia ', 'Gou ', 'Fu ', 'Mo ', 'Yi ', 'Ye ', 'Ye ', 'Shi ', 'Nie ',
+'Bi ', 'Duo ', 'Yi ', 'Ling ', 'Bing ', 'Ni ', 'La ', 'He ', 'Pan ', 'Fan ', 'Zhong ', 'Dai ', 'Ci ', 'Yang ', 'Fu ', 'Bo ',
+'Mou ', 'Gan ', 'Qi ', 'Ran ', 'Rou ', 'Mao ', 'Zhao ', 'Song ', 'Zhe ', 'Xia ', 'You ', 'Shen ', 'Ju ', 'Tuo ', 'Zuo ', 'Nan ',
+'Ning ', 'Yong ', 'Di ', 'Zhi ', 'Zha ', 'Cha ', 'Dan ', 'Gu ', 'Pu ', 'Jiu ', 'Ao ', 'Fu ', 'Jian ', 'Bo ', 'Duo ', 'Ke ',
+'Nai ', 'Zhu ', 'Bi ', 'Liu ', 'Chai ', 'Zha ', 'Si ', 'Zhu ', 'Pei ', 'Shi ', 'Guai ', 'Cha ', 'Yao ', 'Jue ', 'Jiu ', 'Shi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x68.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x68.pm
new file mode 100644
index 0000000..f90c292
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x68.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:31 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x68] = [
+'Zhi ', 'Liu ', 'Mei ', 'Hoy ', 'Rong ', 'Zha ', qq{[?] }, 'Biao ', 'Zhan ', 'Jie ', 'Long ', 'Dong ', 'Lu ', 'Sayng ', 'Li ', 'Lan ',
+'Yong ', 'Shu ', 'Xun ', 'Shuan ', 'Qi ', 'Zhen ', 'Qi ', 'Li ', 'Yi ', 'Xiang ', 'Zhen ', 'Li ', 'Su ', 'Gua ', 'Kan ', 'Bing ',
+'Ren ', 'Xiao ', 'Bo ', 'Ren ', 'Bing ', 'Zi ', 'Chou ', 'Yi ', 'Jie ', 'Xu ', 'Zhu ', 'Jian ', 'Zui ', 'Er ', 'Er ', 'You ',
+'Fa ', 'Gong ', 'Kao ', 'Lao ', 'Zhan ', 'Li ', 'Yin ', 'Yang ', 'He ', 'Gen ', 'Zhi ', 'Chi ', 'Ge ', 'Zai ', 'Luan ', 'Fu ',
+'Jie ', 'Hang ', 'Gui ', 'Tao ', 'Guang ', 'Wei ', 'Kuang ', 'Ru ', 'An ', 'An ', 'Juan ', 'Yi ', 'Zhuo ', 'Ku ', 'Zhi ', 'Qiong ',
+'Tong ', 'Sang ', 'Sang ', 'Huan ', 'Jie ', 'Jiu ', 'Xue ', 'Duo ', 'Zhui ', 'Yu ', 'Zan ', 'Kasei ', 'Ying ', 'Masu ', qq{[?] }, 'Zhan ',
+'Ya ', 'Nao ', 'Zhen ', 'Dang ', 'Qi ', 'Qiao ', 'Hua ', 'Kuai ', 'Jiang ', 'Zhuang ', 'Xun ', 'Suo ', 'Sha ', 'Zhen ', 'Bei ', 'Ting ',
+'Gua ', 'Jing ', 'Bo ', 'Ben ', 'Fu ', 'Rui ', 'Tong ', 'Jue ', 'Xi ', 'Lang ', 'Liu ', 'Feng ', 'Qi ', 'Wen ', 'Jun ', 'Gan ',
+'Cu ', 'Liang ', 'Qiu ', 'Ting ', 'You ', 'Mei ', 'Bang ', 'Long ', 'Peng ', 'Zhuang ', 'Di ', 'Xuan ', 'Tu ', 'Zao ', 'Ao ', 'Gu ',
+'Bi ', 'Di ', 'Han ', 'Zi ', 'Zhi ', 'Ren ', 'Bei ', 'Geng ', 'Jian ', 'Huan ', 'Wan ', 'Nuo ', 'Jia ', 'Tiao ', 'Ji ', 'Xiao ',
+'Lu ', 'Huan ', 'Shao ', 'Cen ', 'Fen ', 'Song ', 'Meng ', 'Wu ', 'Li ', 'Li ', 'Dou ', 'Cen ', 'Ying ', 'Suo ', 'Ju ', 'Ti ',
+'Jie ', 'Kun ', 'Zhuo ', 'Shu ', 'Chan ', 'Fan ', 'Wei ', 'Jing ', 'Li ', 'Bing ', 'Fumoto ', 'Shikimi ', 'Tao ', 'Zhi ', 'Lai ', 'Lian ',
+'Jian ', 'Zhuo ', 'Ling ', 'Li ', 'Qi ', 'Bing ', 'Zhun ', 'Cong ', 'Qian ', 'Mian ', 'Qi ', 'Qi ', 'Cai ', 'Gun ', 'Chan ', 'Te ',
+'Fei ', 'Pai ', 'Bang ', 'Pou ', 'Hun ', 'Zong ', 'Cheng ', 'Zao ', 'Ji ', 'Li ', 'Peng ', 'Yu ', 'Yu ', 'Gu ', 'Hun ', 'Dong ',
+'Tang ', 'Gang ', 'Wang ', 'Di ', 'Xi ', 'Fan ', 'Cheng ', 'Zhan ', 'Qi ', 'Yuan ', 'Yan ', 'Yu ', 'Quan ', 'Yi ', 'Sen ', 'Ren ',
+'Chui ', 'Leng ', 'Qi ', 'Zhuo ', 'Fu ', 'Ke ', 'Lai ', 'Zou ', 'Zou ', 'Zhuo ', 'Guan ', 'Fen ', 'Fen ', 'Chen ', 'Qiong ', 'Nie ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x69.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x69.pm
new file mode 100644
index 0000000..a747ceb
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x69.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x69] = [
+'Wan ', 'Guo ', 'Lu ', 'Hao ', 'Jie ', 'Yi ', 'Chou ', 'Ju ', 'Ju ', 'Cheng ', 'Zuo ', 'Liang ', 'Qiang ', 'Zhi ', 'Zhui ', 'Ya ',
+'Ju ', 'Bei ', 'Jiao ', 'Zhuo ', 'Zi ', 'Bin ', 'Peng ', 'Ding ', 'Chu ', 'Chang ', 'Kunugi ', 'Momiji ', 'Jian ', 'Gui ', 'Xi ', 'Du ',
+'Qian ', 'Kunugi ', 'Soko ', 'Shide ', 'Luo ', 'Zhi ', 'Ken ', 'Myeng ', 'Tafu ', qq{[?] }, 'Peng ', 'Zhan ', qq{[?] }, 'Tuo ', 'Sen ', 'Duo ',
+'Ye ', 'Fou ', 'Wei ', 'Wei ', 'Duan ', 'Jia ', 'Zong ', 'Jian ', 'Yi ', 'Shen ', 'Xi ', 'Yan ', 'Yan ', 'Chuan ', 'Zhan ', 'Chun ',
+'Yu ', 'He ', 'Zha ', 'Wo ', 'Pian ', 'Bi ', 'Yao ', 'Huo ', 'Xu ', 'Ruo ', 'Yang ', 'La ', 'Yan ', 'Ben ', 'Hun ', 'Kui ',
+'Jie ', 'Kui ', 'Si ', 'Feng ', 'Xie ', 'Tuo ', 'Zhi ', 'Jian ', 'Mu ', 'Mao ', 'Chu ', 'Hu ', 'Hu ', 'Lian ', 'Leng ', 'Ting ',
+'Nan ', 'Yu ', 'You ', 'Mei ', 'Song ', 'Xuan ', 'Xuan ', 'Ying ', 'Zhen ', 'Pian ', 'Ye ', 'Ji ', 'Jie ', 'Ye ', 'Chu ', 'Shun ',
+'Yu ', 'Cou ', 'Wei ', 'Mei ', 'Di ', 'Ji ', 'Jie ', 'Kai ', 'Qiu ', 'Ying ', 'Rou ', 'Heng ', 'Lou ', 'Le ', 'Hazou ', 'Katsura ',
+'Pin ', 'Muro ', 'Gai ', 'Tan ', 'Lan ', 'Yun ', 'Yu ', 'Chen ', 'Lu ', 'Ju ', 'Sakaki ', qq{[?] }, 'Pi ', 'Xie ', 'Jia ', 'Yi ',
+'Zhan ', 'Fu ', 'Nai ', 'Mi ', 'Lang ', 'Rong ', 'Gu ', 'Jian ', 'Ju ', 'Ta ', 'Yao ', 'Zhen ', 'Bang ', 'Sha ', 'Yuan ', 'Zi ',
+'Ming ', 'Su ', 'Jia ', 'Yao ', 'Jie ', 'Huang ', 'Gan ', 'Fei ', 'Zha ', 'Qian ', 'Ma ', 'Sun ', 'Yuan ', 'Xie ', 'Rong ', 'Shi ',
+'Zhi ', 'Cui ', 'Yun ', 'Ting ', 'Liu ', 'Rong ', 'Tang ', 'Que ', 'Zhai ', 'Si ', 'Sheng ', 'Ta ', 'Ke ', 'Xi ', 'Gu ', 'Qi ',
+'Kao ', 'Gao ', 'Sun ', 'Pan ', 'Tao ', 'Ge ', 'Xun ', 'Dian ', 'Nou ', 'Ji ', 'Shuo ', 'Gou ', 'Chui ', 'Qiang ', 'Cha ', 'Qian ',
+'Huai ', 'Mei ', 'Xu ', 'Gang ', 'Gao ', 'Zhuo ', 'Tuo ', 'Hashi ', 'Yang ', 'Dian ', 'Jia ', 'Jian ', 'Zui ', 'Kashi ', 'Ori ', 'Bin ',
+'Zhu ', qq{[?] }, 'Xi ', 'Qi ', 'Lian ', 'Hui ', 'Yong ', 'Qian ', 'Guo ', 'Gai ', 'Gai ', 'Tuan ', 'Hua ', 'Cu ', 'Sen ', 'Cui ',
+'Beng ', 'You ', 'Hu ', 'Jiang ', 'Hu ', 'Huan ', 'Kui ', 'Yi ', 'Nie ', 'Gao ', 'Kang ', 'Gui ', 'Gui ', 'Cao ', 'Man ', 'Jin ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6a.pm
new file mode 100644
index 0000000..7e0f4f7
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6a] = [
+'Di ', 'Zhuang ', 'Le ', 'Lang ', 'Chen ', 'Cong ', 'Li ', 'Xiu ', 'Qing ', 'Shuang ', 'Fan ', 'Tong ', 'Guan ', 'Ji ', 'Suo ', 'Lei ',
+'Lu ', 'Liang ', 'Mi ', 'Lou ', 'Chao ', 'Su ', 'Ke ', 'Shu ', 'Tang ', 'Biao ', 'Lu ', 'Jiu ', 'Shu ', 'Zha ', 'Shu ', 'Zhang ',
+'Men ', 'Mo ', 'Niao ', 'Yang ', 'Tiao ', 'Peng ', 'Zhu ', 'Sha ', 'Xi ', 'Quan ', 'Heng ', 'Jian ', 'Cong ', qq{[?] }, 'Hokuso ', 'Qiang ',
+'Tara ', 'Ying ', 'Er ', 'Xin ', 'Zhi ', 'Qiao ', 'Zui ', 'Cong ', 'Pu ', 'Shu ', 'Hua ', 'Kui ', 'Zhen ', 'Zun ', 'Yue ', 'Zhan ',
+'Xi ', 'Xun ', 'Dian ', 'Fa ', 'Gan ', 'Mo ', 'Wu ', 'Qiao ', 'Nao ', 'Lin ', 'Liu ', 'Qiao ', 'Xian ', 'Run ', 'Fan ', 'Zhan ',
+'Tuo ', 'Lao ', 'Yun ', 'Shun ', 'Tui ', 'Cheng ', 'Tang ', 'Meng ', 'Ju ', 'Cheng ', 'Su ', 'Jue ', 'Jue ', 'Tan ', 'Hui ', 'Ji ',
+'Nuo ', 'Xiang ', 'Tuo ', 'Ning ', 'Rui ', 'Zhu ', 'Chuang ', 'Zeng ', 'Fen ', 'Qiong ', 'Ran ', 'Heng ', 'Cen ', 'Gu ', 'Liu ', 'Lao ',
+'Gao ', 'Chu ', 'Zusa ', 'Nude ', 'Ca ', 'San ', 'Ji ', 'Dou ', 'Shou ', 'Lu ', qq{[?] }, qq{[?] }, 'Yuan ', 'Ta ', 'Shu ', 'Jiang ',
+'Tan ', 'Lin ', 'Nong ', 'Yin ', 'Xi ', 'Sui ', 'Shan ', 'Zui ', 'Xuan ', 'Cheng ', 'Gan ', 'Ju ', 'Zui ', 'Yi ', 'Qin ', 'Pu ',
+'Yan ', 'Lei ', 'Feng ', 'Hui ', 'Dang ', 'Ji ', 'Sui ', 'Bo ', 'Bi ', 'Ding ', 'Chu ', 'Zhua ', 'Kuai ', 'Ji ', 'Jie ', 'Jia ',
+'Qing ', 'Zhe ', 'Jian ', 'Qiang ', 'Dao ', 'Yi ', 'Biao ', 'Song ', 'She ', 'Lin ', 'Kunugi ', 'Cha ', 'Meng ', 'Yin ', 'Tao ', 'Tai ',
+'Mian ', 'Qi ', 'Toan ', 'Bin ', 'Huo ', 'Ji ', 'Qian ', 'Mi ', 'Ning ', 'Yi ', 'Gao ', 'Jian ', 'Yin ', 'Er ', 'Qing ', 'Yan ',
+'Qi ', 'Mi ', 'Zhao ', 'Gui ', 'Chun ', 'Ji ', 'Kui ', 'Po ', 'Deng ', 'Chu ', qq{[?] }, 'Mian ', 'You ', 'Zhi ', 'Guang ', 'Qian ',
+'Lei ', 'Lei ', 'Sa ', 'Lu ', 'Li ', 'Cuan ', 'Lu ', 'Mie ', 'Hui ', 'Ou ', 'Lu ', 'Jie ', 'Gao ', 'Du ', 'Yuan ', 'Li ',
+'Fei ', 'Zhuo ', 'Sou ', 'Lian ', 'Tamo ', 'Chu ', qq{[?] }, 'Zhu ', 'Lu ', 'Yan ', 'Li ', 'Zhu ', 'Chen ', 'Jie ', 'E ', 'Su ',
+'Huai ', 'Nie ', 'Yu ', 'Long ', 'Lai ', qq{[?] }, 'Xian ', 'Kwi ', 'Ju ', 'Xiao ', 'Ling ', 'Ying ', 'Jian ', 'Yin ', 'You ', 'Ying ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6b.pm
new file mode 100644
index 0000000..ccbd2b4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6b] = [
+'Xiang ', 'Nong ', 'Bo ', 'Chan ', 'Lan ', 'Ju ', 'Shuang ', 'She ', 'Wei ', 'Cong ', 'Quan ', 'Qu ', 'Cang ', qq{[?] }, 'Yu ', 'Luo ',
+'Li ', 'Zan ', 'Luan ', 'Dang ', 'Jue ', 'Em ', 'Lan ', 'Lan ', 'Zhu ', 'Lei ', 'Li ', 'Ba ', 'Nang ', 'Yu ', 'Ling ', 'Tsuki ',
+'Qian ', 'Ci ', 'Huan ', 'Xin ', 'Yu ', 'Yu ', 'Qian ', 'Ou ', 'Xu ', 'Chao ', 'Chu ', 'Chi ', 'Kai ', 'Yi ', 'Jue ', 'Xi ',
+'Xu ', 'Xia ', 'Yu ', 'Kuai ', 'Lang ', 'Kuan ', 'Shuo ', 'Xi ', 'Ai ', 'Yi ', 'Qi ', 'Hu ', 'Chi ', 'Qin ', 'Kuan ', 'Kan ',
+'Kuan ', 'Kan ', 'Chuan ', 'Sha ', 'Gua ', 'Yin ', 'Xin ', 'Xie ', 'Yu ', 'Qian ', 'Xiao ', 'Yi ', 'Ge ', 'Wu ', 'Tan ', 'Jin ',
+'Ou ', 'Hu ', 'Ti ', 'Huan ', 'Xu ', 'Pen ', 'Xi ', 'Xiao ', 'Xu ', 'Xi ', 'Sen ', 'Lian ', 'Chu ', 'Yi ', 'Kan ', 'Yu ',
+'Chuo ', 'Huan ', 'Zhi ', 'Zheng ', 'Ci ', 'Bu ', 'Wu ', 'Qi ', 'Bu ', 'Bu ', 'Wai ', 'Ju ', 'Qian ', 'Chi ', 'Se ', 'Chi ',
+'Se ', 'Zhong ', 'Sui ', 'Sui ', 'Li ', 'Cuo ', 'Yu ', 'Li ', 'Gui ', 'Dai ', 'Dai ', 'Si ', 'Jian ', 'Zhe ', 'Mo ', 'Mo ',
+'Yao ', 'Mo ', 'Cu ', 'Yang ', 'Tian ', 'Sheng ', 'Dai ', 'Shang ', 'Xu ', 'Xun ', 'Shu ', 'Can ', 'Jue ', 'Piao ', 'Qia ', 'Qiu ',
+'Su ', 'Qing ', 'Yun ', 'Lian ', 'Yi ', 'Fou ', 'Zhi ', 'Ye ', 'Can ', 'Hun ', 'Dan ', 'Ji ', 'Ye ', 'Zhen ', 'Yun ', 'Wen ',
+'Chou ', 'Bin ', 'Ti ', 'Jin ', 'Shang ', 'Yin ', 'Diao ', 'Cu ', 'Hui ', 'Cuan ', 'Yi ', 'Dan ', 'Du ', 'Jiang ', 'Lian ', 'Bin ',
+'Du ', 'Tsukusu ', 'Jian ', 'Shu ', 'Ou ', 'Duan ', 'Zhu ', 'Yin ', 'Qing ', 'Yi ', 'Sha ', 'Que ', 'Ke ', 'Yao ', 'Jun ', 'Dian ',
+'Hui ', 'Hui ', 'Gu ', 'Que ', 'Ji ', 'Yi ', 'Ou ', 'Hui ', 'Duan ', 'Yi ', 'Xiao ', 'Wu ', 'Guan ', 'Mu ', 'Mei ', 'Mei ',
+'Ai ', 'Zuo ', 'Du ', 'Yu ', 'Bi ', 'Bi ', 'Bi ', 'Pi ', 'Pi ', 'Bi ', 'Chan ', 'Mao ', qq{[?] }, qq{[?] }, 'Pu ', 'Mushiru ',
+'Jia ', 'Zhan ', 'Sai ', 'Mu ', 'Tuo ', 'Xun ', 'Er ', 'Rong ', 'Xian ', 'Ju ', 'Mu ', 'Hao ', 'Qiu ', 'Dou ', 'Mushiru ', 'Tan ',
+'Pei ', 'Ju ', 'Duo ', 'Cui ', 'Bi ', 'San ', qq{[?] }, 'Mao ', 'Sui ', 'Yu ', 'Yu ', 'Tuo ', 'He ', 'Jian ', 'Ta ', 'San ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6c.pm
new file mode 100644
index 0000000..3853675
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6c] = [
+'Lu ', 'Mu ', 'Li ', 'Tong ', 'Rong ', 'Chang ', 'Pu ', 'Luo ', 'Zhan ', 'Sao ', 'Zhan ', 'Meng ', 'Luo ', 'Qu ', 'Die ', 'Shi ',
+'Di ', 'Min ', 'Jue ', 'Mang ', 'Qi ', 'Pie ', 'Nai ', 'Qi ', 'Dao ', 'Xian ', 'Chuan ', 'Fen ', 'Ri ', 'Nei ', qq{[?] }, 'Fu ',
+'Shen ', 'Dong ', 'Qing ', 'Qi ', 'Yin ', 'Xi ', 'Hai ', 'Yang ', 'An ', 'Ya ', 'Ke ', 'Qing ', 'Ya ', 'Dong ', 'Dan ', 'Lu ',
+'Qing ', 'Yang ', 'Yun ', 'Yun ', 'Shui ', 'San ', 'Zheng ', 'Bing ', 'Yong ', 'Dang ', 'Shitamizu ', 'Le ', 'Ni ', 'Tun ', 'Fan ', 'Gui ',
+'Ting ', 'Zhi ', 'Qiu ', 'Bin ', 'Ze ', 'Mian ', 'Cuan ', 'Hui ', 'Diao ', 'Yi ', 'Cha ', 'Zhuo ', 'Chuan ', 'Wan ', 'Fan ', 'Dai ',
+'Xi ', 'Tuo ', 'Mang ', 'Qiu ', 'Qi ', 'Shan ', 'Pai ', 'Han ', 'Qian ', 'Wu ', 'Wu ', 'Xun ', 'Si ', 'Ru ', 'Gong ', 'Jiang ',
+'Chi ', 'Wu ', 'Tsuchi ', qq{[?] }, 'Tang ', 'Zhi ', 'Chi ', 'Qian ', 'Mi ', 'Yu ', 'Wang ', 'Qing ', 'Jing ', 'Rui ', 'Jun ', 'Hong ',
+'Tai ', 'Quan ', 'Ji ', 'Bian ', 'Bian ', 'Gan ', 'Wen ', 'Zhong ', 'Fang ', 'Xiong ', 'Jue ', 'Hang ', 'Niou ', 'Qi ', 'Fen ', 'Xu ',
+'Xu ', 'Qin ', 'Yi ', 'Wo ', 'Yun ', 'Yuan ', 'Hang ', 'Yan ', 'Chen ', 'Chen ', 'Dan ', 'You ', 'Dun ', 'Hu ', 'Huo ', 'Qie ',
+'Mu ', 'Rou ', 'Mei ', 'Ta ', 'Mian ', 'Wu ', 'Chong ', 'Tian ', 'Bi ', 'Sha ', 'Zhi ', 'Pei ', 'Pan ', 'Zhui ', 'Za ', 'Gou ',
+'Liu ', 'Mei ', 'Ze ', 'Feng ', 'Ou ', 'Li ', 'Lun ', 'Cang ', 'Feng ', 'Wei ', 'Hu ', 'Mo ', 'Mei ', 'Shu ', 'Ju ', 'Zan ',
+'Tuo ', 'Tuo ', 'Tuo ', 'He ', 'Li ', 'Mi ', 'Yi ', 'Fa ', 'Fei ', 'You ', 'Tian ', 'Zhi ', 'Zhao ', 'Gu ', 'Zhan ', 'Yan ',
+'Si ', 'Kuang ', 'Jiong ', 'Ju ', 'Xie ', 'Qiu ', 'Yi ', 'Jia ', 'Zhong ', 'Quan ', 'Bo ', 'Hui ', 'Mi ', 'Ben ', 'Zhuo ', 'Chu ',
+'Le ', 'You ', 'Gu ', 'Hong ', 'Gan ', 'Fa ', 'Mao ', 'Si ', 'Hu ', 'Ping ', 'Ci ', 'Fan ', 'Chi ', 'Su ', 'Ning ', 'Cheng ',
+'Ling ', 'Pao ', 'Bo ', 'Qi ', 'Si ', 'Ni ', 'Ju ', 'Yue ', 'Zhu ', 'Sheng ', 'Lei ', 'Xuan ', 'Xue ', 'Fu ', 'Pan ', 'Min ',
+'Tai ', 'Yang ', 'Ji ', 'Yong ', 'Guan ', 'Beng ', 'Xue ', 'Long ', 'Lu ', qq{[?] }, 'Bo ', 'Xie ', 'Po ', 'Ze ', 'Jing ', 'Yin ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6d.pm
new file mode 100644
index 0000000..46731b8
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6d] = [
+'Zhou ', 'Ji ', 'Yi ', 'Hui ', 'Hui ', 'Zui ', 'Cheng ', 'Yin ', 'Wei ', 'Hou ', 'Jian ', 'Yang ', 'Lie ', 'Si ', 'Ji ', 'Er ',
+'Xing ', 'Fu ', 'Sa ', 'Suo ', 'Zhi ', 'Yin ', 'Wu ', 'Xi ', 'Kao ', 'Zhu ', 'Jiang ', 'Luo ', qq{[?] }, 'An ', 'Dong ', 'Yi ',
+'Mou ', 'Lei ', 'Yi ', 'Mi ', 'Quan ', 'Jin ', 'Mo ', 'Wei ', 'Xiao ', 'Xie ', 'Hong ', 'Xu ', 'Shuo ', 'Kuang ', 'Tao ', 'Qie ',
+'Ju ', 'Er ', 'Zhou ', 'Ru ', 'Ping ', 'Xun ', 'Xiong ', 'Zhi ', 'Guang ', 'Huan ', 'Ming ', 'Huo ', 'Wa ', 'Qia ', 'Pai ', 'Wu ',
+'Qu ', 'Liu ', 'Yi ', 'Jia ', 'Jing ', 'Qian ', 'Jiang ', 'Jiao ', 'Cheng ', 'Shi ', 'Zhuo ', 'Ce ', 'Pal ', 'Kuai ', 'Ji ', 'Liu ',
+'Chan ', 'Hun ', 'Hu ', 'Nong ', 'Xun ', 'Jin ', 'Lie ', 'Qiu ', 'Wei ', 'Zhe ', 'Jun ', 'Han ', 'Bang ', 'Mang ', 'Zhuo ', 'You ',
+'Xi ', 'Bo ', 'Dou ', 'Wan ', 'Hong ', 'Yi ', 'Pu ', 'Ying ', 'Lan ', 'Hao ', 'Lang ', 'Han ', 'Li ', 'Geng ', 'Fu ', 'Wu ',
+'Lian ', 'Chun ', 'Feng ', 'Yi ', 'Yu ', 'Tong ', 'Lao ', 'Hai ', 'Jin ', 'Jia ', 'Chong ', 'Weng ', 'Mei ', 'Sui ', 'Cheng ', 'Pei ',
+'Xian ', 'Shen ', 'Tu ', 'Kun ', 'Pin ', 'Nie ', 'Han ', 'Jing ', 'Xiao ', 'She ', 'Nian ', 'Tu ', 'Yong ', 'Xiao ', 'Xian ', 'Ting ',
+'E ', 'Su ', 'Tun ', 'Juan ', 'Cen ', 'Ti ', 'Li ', 'Shui ', 'Si ', 'Lei ', 'Shui ', 'Tao ', 'Du ', 'Lao ', 'Lai ', 'Lian ',
+'Wei ', 'Wo ', 'Yun ', 'Huan ', 'Di ', qq{[?] }, 'Run ', 'Jian ', 'Zhang ', 'Se ', 'Fu ', 'Guan ', 'Xing ', 'Shou ', 'Shuan ', 'Ya ',
+'Chuo ', 'Zhang ', 'Ye ', 'Kong ', 'Wo ', 'Han ', 'Tuo ', 'Dong ', 'He ', 'Wo ', 'Ju ', 'Gan ', 'Liang ', 'Hun ', 'Ta ', 'Zhuo ',
+'Dian ', 'Qie ', 'De ', 'Juan ', 'Zi ', 'Xi ', 'Yao ', 'Qi ', 'Gu ', 'Guo ', 'Han ', 'Lin ', 'Tang ', 'Zhou ', 'Peng ', 'Hao ',
+'Chang ', 'Shu ', 'Qi ', 'Fang ', 'Chi ', 'Lu ', 'Nao ', 'Ju ', 'Tao ', 'Cong ', 'Lei ', 'Zhi ', 'Peng ', 'Fei ', 'Song ', 'Tian ',
+'Pi ', 'Dan ', 'Yu ', 'Ni ', 'Yu ', 'Lu ', 'Gan ', 'Mi ', 'Jing ', 'Ling ', 'Lun ', 'Yin ', 'Cui ', 'Qu ', 'Huai ', 'Yu ',
+'Nian ', 'Shen ', 'Piao ', 'Chun ', 'Wa ', 'Yuan ', 'Lai ', 'Hun ', 'Qing ', 'Yan ', 'Qian ', 'Tian ', 'Miao ', 'Zhi ', 'Yin ', 'Mi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6e.pm
new file mode 100644
index 0000000..ef55cbc
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6e] = [
+'Ben ', 'Yuan ', 'Wen ', 'Re ', 'Fei ', 'Qing ', 'Yuan ', 'Ke ', 'Ji ', 'She ', 'Yuan ', 'Shibui ', 'Lu ', 'Zi ', 'Du ', qq{[?] },
+'Jian ', 'Min ', 'Pi ', 'Tani ', 'Yu ', 'Yuan ', 'Shen ', 'Shen ', 'Rou ', 'Huan ', 'Zhu ', 'Jian ', 'Nuan ', 'Yu ', 'Qiu ', 'Ting ',
+'Qu ', 'Du ', 'Feng ', 'Zha ', 'Bo ', 'Wo ', 'Wo ', 'Di ', 'Wei ', 'Wen ', 'Ru ', 'Xie ', 'Ce ', 'Wei ', 'Ge ', 'Gang ',
+'Yan ', 'Hong ', 'Xuan ', 'Mi ', 'Ke ', 'Mao ', 'Ying ', 'Yan ', 'You ', 'Hong ', 'Miao ', 'Xing ', 'Mei ', 'Zai ', 'Hun ', 'Nai ',
+'Kui ', 'Shi ', 'E ', 'Pai ', 'Mei ', 'Lian ', 'Qi ', 'Qi ', 'Mei ', 'Tian ', 'Cou ', 'Wei ', 'Can ', 'Tuan ', 'Mian ', 'Hui ',
+'Mo ', 'Xu ', 'Ji ', 'Pen ', 'Jian ', 'Jian ', 'Hu ', 'Feng ', 'Xiang ', 'Yi ', 'Yin ', 'Zhan ', 'Shi ', 'Jie ', 'Cheng ', 'Huang ',
+'Tan ', 'Yu ', 'Bi ', 'Min ', 'Shi ', 'Tu ', 'Sheng ', 'Yong ', 'Qu ', 'Zhong ', 'Suei ', 'Jiu ', 'Jiao ', 'Qiou ', 'Yin ', 'Tang ',
+'Long ', 'Huo ', 'Yuan ', 'Nan ', 'Ban ', 'You ', 'Quan ', 'Chui ', 'Liang ', 'Chan ', 'Yan ', 'Chun ', 'Nie ', 'Zi ', 'Wan ', 'Shi ',
+'Man ', 'Ying ', 'Ratsu ', 'Kui ', qq{[?] }, 'Jian ', 'Xu ', 'Lu ', 'Gui ', 'Gai ', qq{[?] }, qq{[?] }, 'Po ', 'Jin ', 'Gui ', 'Tang ',
+'Yuan ', 'Suo ', 'Yuan ', 'Lian ', 'Yao ', 'Meng ', 'Zhun ', 'Sheng ', 'Ke ', 'Tai ', 'Da ', 'Wa ', 'Liu ', 'Gou ', 'Sao ', 'Ming ',
+'Zha ', 'Shi ', 'Yi ', 'Lun ', 'Ma ', 'Pu ', 'Wei ', 'Li ', 'Cai ', 'Wu ', 'Xi ', 'Wen ', 'Qiang ', 'Ze ', 'Shi ', 'Su ',
+'Yi ', 'Zhen ', 'Sou ', 'Yun ', 'Xiu ', 'Yin ', 'Rong ', 'Hun ', 'Su ', 'Su ', 'Ni ', 'Ta ', 'Shi ', 'Ru ', 'Wei ', 'Pan ',
+'Chu ', 'Chu ', 'Pang ', 'Weng ', 'Cang ', 'Mie ', 'He ', 'Dian ', 'Hao ', 'Huang ', 'Xi ', 'Zi ', 'Di ', 'Zhi ', 'Ying ', 'Fu ',
+'Jie ', 'Hua ', 'Ge ', 'Zi ', 'Tao ', 'Teng ', 'Sui ', 'Bi ', 'Jiao ', 'Hui ', 'Gun ', 'Yin ', 'Gao ', 'Long ', 'Zhi ', 'Yan ',
+'She ', 'Man ', 'Ying ', 'Chun ', 'Lu ', 'Lan ', 'Luan ', qq{[?] }, 'Bin ', 'Tan ', 'Yu ', 'Sou ', 'Hu ', 'Bi ', 'Biao ', 'Zhi ',
+'Jiang ', 'Kou ', 'Shen ', 'Shang ', 'Di ', 'Mi ', 'Ao ', 'Lu ', 'Hu ', 'Hu ', 'You ', 'Chan ', 'Fan ', 'Yong ', 'Gun ', 'Man ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6f.pm
new file mode 100644
index 0000000..079efe4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x6f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x6f] = [
+'Qing ', 'Yu ', 'Piao ', 'Ji ', 'Ya ', 'Jiao ', 'Qi ', 'Xi ', 'Ji ', 'Lu ', 'Lu ', 'Long ', 'Jin ', 'Guo ', 'Cong ', 'Lou ',
+'Zhi ', 'Gai ', 'Qiang ', 'Li ', 'Yan ', 'Cao ', 'Jiao ', 'Cong ', 'Qun ', 'Tuan ', 'Ou ', 'Teng ', 'Ye ', 'Xi ', 'Mi ', 'Tang ',
+'Mo ', 'Shang ', 'Han ', 'Lian ', 'Lan ', 'Wa ', 'Li ', 'Qian ', 'Feng ', 'Xuan ', 'Yi ', 'Man ', 'Zi ', 'Mang ', 'Kang ', 'Lei ',
+'Peng ', 'Shu ', 'Zhang ', 'Zhang ', 'Chong ', 'Xu ', 'Huan ', 'Kuo ', 'Jian ', 'Yan ', 'Chuang ', 'Liao ', 'Cui ', 'Ti ', 'Yang ', 'Jiang ',
+'Cong ', 'Ying ', 'Hong ', 'Xun ', 'Shu ', 'Guan ', 'Ying ', 'Xiao ', qq{[?] }, qq{[?] }, 'Xu ', 'Lian ', 'Zhi ', 'Wei ', 'Pi ', 'Jue ',
+'Jiao ', 'Po ', 'Dang ', 'Hui ', 'Jie ', 'Wu ', 'Pa ', 'Ji ', 'Pan ', 'Gui ', 'Xiao ', 'Qian ', 'Qian ', 'Xi ', 'Lu ', 'Xi ',
+'Xuan ', 'Dun ', 'Huang ', 'Min ', 'Run ', 'Su ', 'Liao ', 'Zhen ', 'Zhong ', 'Yi ', 'Di ', 'Wan ', 'Dan ', 'Tan ', 'Chao ', 'Xun ',
+'Kui ', 'Yie ', 'Shao ', 'Tu ', 'Zhu ', 'San ', 'Hei ', 'Bi ', 'Shan ', 'Chan ', 'Chan ', 'Shu ', 'Tong ', 'Pu ', 'Lin ', 'Wei ',
+'Se ', 'Se ', 'Cheng ', 'Jiong ', 'Cheng ', 'Hua ', 'Jiao ', 'Lao ', 'Che ', 'Gan ', 'Cun ', 'Heng ', 'Si ', 'Shu ', 'Peng ', 'Han ',
+'Yun ', 'Liu ', 'Hong ', 'Fu ', 'Hao ', 'He ', 'Xian ', 'Jian ', 'Shan ', 'Xi ', 'Oki ', qq{[?] }, 'Lan ', qq{[?] }, 'Yu ', 'Lin ',
+'Min ', 'Zao ', 'Dang ', 'Wan ', 'Ze ', 'Xie ', 'Yu ', 'Li ', 'Shi ', 'Xue ', 'Ling ', 'Man ', 'Zi ', 'Yong ', 'Kuai ', 'Can ',
+'Lian ', 'Dian ', 'Ye ', 'Ao ', 'Huan ', 'Zhen ', 'Chan ', 'Man ', 'Dan ', 'Dan ', 'Yi ', 'Sui ', 'Pi ', 'Ju ', 'Ta ', 'Qin ',
+'Ji ', 'Zhuo ', 'Lian ', 'Nong ', 'Guo ', 'Jin ', 'Fen ', 'Se ', 'Ji ', 'Sui ', 'Hui ', 'Chu ', 'Ta ', 'Song ', 'Ding ', qq{[?] },
+'Zhu ', 'Lai ', 'Bin ', 'Lian ', 'Mi ', 'Shi ', 'Shu ', 'Mi ', 'Ning ', 'Ying ', 'Ying ', 'Meng ', 'Jin ', 'Qi ', 'Pi ', 'Ji ',
+'Hao ', 'Ru ', 'Zui ', 'Wo ', 'Tao ', 'Yin ', 'Yin ', 'Dui ', 'Ci ', 'Huo ', 'Jing ', 'Lan ', 'Jun ', 'Ai ', 'Pu ', 'Zhuo ',
+'Wei ', 'Bin ', 'Gu ', 'Qian ', 'Xing ', 'Hama ', 'Kuo ', 'Fei ', qq{[?] }, 'Boku ', 'Jian ', 'Wei ', 'Luo ', 'Zan ', 'Lu ', 'Li ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x70.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x70.pm
new file mode 100644
index 0000000..c99946d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x70.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x70] = [
+'You ', 'Yang ', 'Lu ', 'Si ', 'Jie ', 'Ying ', 'Du ', 'Wang ', 'Hui ', 'Xie ', 'Pan ', 'Shen ', 'Biao ', 'Chan ', 'Mo ', 'Liu ',
+'Jian ', 'Pu ', 'Se ', 'Cheng ', 'Gu ', 'Bin ', 'Huo ', 'Xian ', 'Lu ', 'Qin ', 'Han ', 'Ying ', 'Yong ', 'Li ', 'Jing ', 'Xiao ',
+'Ying ', 'Sui ', 'Wei ', 'Xie ', 'Huai ', 'Hao ', 'Zhu ', 'Long ', 'Lai ', 'Dui ', 'Fan ', 'Hu ', 'Lai ', qq{[?] }, qq{[?] }, 'Ying ',
+'Mi ', 'Ji ', 'Lian ', 'Jian ', 'Ying ', 'Fen ', 'Lin ', 'Yi ', 'Jian ', 'Yue ', 'Chan ', 'Dai ', 'Rang ', 'Jian ', 'Lan ', 'Fan ',
+'Shuang ', 'Yuan ', 'Zhuo ', 'Feng ', 'She ', 'Lei ', 'Lan ', 'Cong ', 'Qu ', 'Yong ', 'Qian ', 'Fa ', 'Guan ', 'Que ', 'Yan ', 'Hao ',
+'Hyeng ', 'Sa ', 'Zan ', 'Luan ', 'Yan ', 'Li ', 'Mi ', 'Shan ', 'Tan ', 'Dang ', 'Jiao ', 'Chan ', qq{[?] }, 'Hao ', 'Ba ', 'Zhu ',
+'Lan ', 'Lan ', 'Nang ', 'Wan ', 'Luan ', 'Xun ', 'Xian ', 'Yan ', 'Gan ', 'Yan ', 'Yu ', 'Huo ', 'Si ', 'Mie ', 'Guang ', 'Deng ',
+'Hui ', 'Xiao ', 'Xiao ', 'Hu ', 'Hong ', 'Ling ', 'Zao ', 'Zhuan ', 'Jiu ', 'Zha ', 'Xie ', 'Chi ', 'Zhuo ', 'Zai ', 'Zai ', 'Can ',
+'Yang ', 'Qi ', 'Zhong ', 'Fen ', 'Niu ', 'Jiong ', 'Wen ', 'Po ', 'Yi ', 'Lu ', 'Chui ', 'Pi ', 'Kai ', 'Pan ', 'Yan ', 'Kai ',
+'Pang ', 'Mu ', 'Chao ', 'Liao ', 'Gui ', 'Kang ', 'Tun ', 'Guang ', 'Xin ', 'Zhi ', 'Guang ', 'Guang ', 'Wei ', 'Qiang ', qq{[?] }, 'Da ',
+'Xia ', 'Zheng ', 'Zhu ', 'Ke ', 'Zhao ', 'Fu ', 'Ba ', 'Duo ', 'Duo ', 'Ling ', 'Zhuo ', 'Xuan ', 'Ju ', 'Tan ', 'Pao ', 'Jiong ',
+'Pao ', 'Tai ', 'Tai ', 'Bing ', 'Yang ', 'Tong ', 'Han ', 'Zhu ', 'Zha ', 'Dian ', 'Wei ', 'Shi ', 'Lian ', 'Chi ', 'Huang ', qq{[?] },
+'Hu ', 'Shuo ', 'Lan ', 'Jing ', 'Jiao ', 'Xu ', 'Xing ', 'Quan ', 'Lie ', 'Huan ', 'Yang ', 'Xiao ', 'Xiu ', 'Xian ', 'Yin ', 'Wu ',
+'Zhou ', 'Yao ', 'Shi ', 'Wei ', 'Tong ', 'Xue ', 'Zai ', 'Kai ', 'Hong ', 'Luo ', 'Xia ', 'Zhu ', 'Xuan ', 'Zheng ', 'Po ', 'Yan ',
+'Hui ', 'Guang ', 'Zhe ', 'Hui ', 'Kao ', qq{[?] }, 'Fan ', 'Shao ', 'Ye ', 'Hui ', qq{[?] }, 'Tang ', 'Jin ', 'Re ', qq{[?] }, 'Xi ',
+'Fu ', 'Jiong ', 'Che ', 'Pu ', 'Jing ', 'Zhuo ', 'Ting ', 'Wan ', 'Hai ', 'Peng ', 'Lang ', 'Shan ', 'Hu ', 'Feng ', 'Chi ', 'Rong ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x71.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x71.pm
new file mode 100644
index 0000000..39c4baf
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x71.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x71] = [
+'Hu ', 'Xi ', 'Shu ', 'He ', 'Xun ', 'Ku ', 'Jue ', 'Xiao ', 'Xi ', 'Yan ', 'Han ', 'Zhuang ', 'Jun ', 'Di ', 'Xie ', 'Ji ',
+'Wu ', qq{[?] }, qq{[?] }, 'Han ', 'Yan ', 'Huan ', 'Men ', 'Ju ', 'Chou ', 'Bei ', 'Fen ', 'Lin ', 'Kun ', 'Hun ', 'Tun ', 'Xi ',
+'Cui ', 'Wu ', 'Hong ', 'Ju ', 'Fu ', 'Wo ', 'Jiao ', 'Cong ', 'Feng ', 'Ping ', 'Qiong ', 'Ruo ', 'Xi ', 'Qiong ', 'Xin ', 'Zhuo ',
+'Yan ', 'Yan ', 'Yi ', 'Jue ', 'Yu ', 'Gang ', 'Ran ', 'Pi ', 'Gu ', qq{[?] }, 'Sheng ', 'Chang ', 'Shao ', qq{[?] }, qq{[?] }, qq{[?] },
+qq{[?] }, 'Chen ', 'He ', 'Kui ', 'Zhong ', 'Duan ', 'Xia ', 'Hui ', 'Feng ', 'Lian ', 'Xuan ', 'Xing ', 'Huang ', 'Jiao ', 'Jian ', 'Bi ',
+'Ying ', 'Zhu ', 'Wei ', 'Tuan ', 'Tian ', 'Xi ', 'Nuan ', 'Nuan ', 'Chan ', 'Yan ', 'Jiong ', 'Jiong ', 'Yu ', 'Mei ', 'Sha ', 'Wei ',
+'Ye ', 'Xin ', 'Qiong ', 'Rou ', 'Mei ', 'Huan ', 'Xu ', 'Zhao ', 'Wei ', 'Fan ', 'Qiu ', 'Sui ', 'Yang ', 'Lie ', 'Zhu ', 'Jie ',
+'Gao ', 'Gua ', 'Bao ', 'Hu ', 'Yun ', 'Xia ', qq{[?] }, qq{[?] }, 'Bian ', 'Gou ', 'Tui ', 'Tang ', 'Chao ', 'Shan ', 'N ', 'Bo ',
+'Huang ', 'Xie ', 'Xi ', 'Wu ', 'Xi ', 'Yun ', 'He ', 'He ', 'Xi ', 'Yun ', 'Xiong ', 'Nai ', 'Shan ', 'Qiong ', 'Yao ', 'Xun ',
+'Mi ', 'Lian ', 'Ying ', 'Wen ', 'Rong ', 'Oozutsu ', qq{[?] }, 'Qiang ', 'Liu ', 'Xi ', 'Bi ', 'Biao ', 'Zong ', 'Lu ', 'Jian ', 'Shou ',
+'Yi ', 'Lou ', 'Feng ', 'Sui ', 'Yi ', 'Tong ', 'Jue ', 'Zong ', 'Yun ', 'Hu ', 'Yi ', 'Zhi ', 'Ao ', 'Wei ', 'Liao ', 'Han ',
+'Ou ', 'Re ', 'Jiong ', 'Man ', qq{[?] }, 'Shang ', 'Cuan ', 'Zeng ', 'Jian ', 'Xi ', 'Xi ', 'Xi ', 'Yi ', 'Xiao ', 'Chi ', 'Huang ',
+'Chan ', 'Ye ', 'Qian ', 'Ran ', 'Yan ', 'Xian ', 'Qiao ', 'Zun ', 'Deng ', 'Dun ', 'Shen ', 'Jiao ', 'Fen ', 'Si ', 'Liao ', 'Yu ',
+'Lin ', 'Tong ', 'Shao ', 'Fen ', 'Fan ', 'Yan ', 'Xun ', 'Lan ', 'Mei ', 'Tang ', 'Yi ', 'Jing ', 'Men ', qq{[?] }, qq{[?] }, 'Ying ',
+'Yu ', 'Yi ', 'Xue ', 'Lan ', 'Tai ', 'Zao ', 'Can ', 'Sui ', 'Xi ', 'Que ', 'Cong ', 'Lian ', 'Hui ', 'Zhu ', 'Xie ', 'Ling ',
+'Wei ', 'Yi ', 'Xie ', 'Zhao ', 'Hui ', 'Tatsu ', 'Nung ', 'Lan ', 'Ru ', 'Xian ', 'Kao ', 'Xun ', 'Jin ', 'Chou ', 'Chou ', 'Yao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x72.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x72.pm
new file mode 100644
index 0000000..05b1f6c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x72.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x72] = [
+'He ', 'Lan ', 'Biao ', 'Rong ', 'Li ', 'Mo ', 'Bao ', 'Ruo ', 'Lu ', 'La ', 'Ao ', 'Xun ', 'Kuang ', 'Shuo ', qq{[?] }, 'Li ',
+'Lu ', 'Jue ', 'Liao ', 'Yan ', 'Xi ', 'Xie ', 'Long ', 'Ye ', qq{[?] }, 'Rang ', 'Yue ', 'Lan ', 'Cong ', 'Jue ', 'Tong ', 'Guan ',
+qq{[?] }, 'Che ', 'Mi ', 'Tang ', 'Lan ', 'Zhu ', qq{[?] }, 'Ling ', 'Cuan ', 'Yu ', 'Zhua ', 'Tsumekanmuri ', 'Pa ', 'Zheng ', 'Pao ', 'Cheng ',
+'Yuan ', 'Ai ', 'Wei ', qq{[?] }, 'Jue ', 'Jue ', 'Fu ', 'Ye ', 'Ba ', 'Die ', 'Ye ', 'Yao ', 'Zu ', 'Shuang ', 'Er ', 'Qiang ',
+'Chuang ', 'Ge ', 'Zang ', 'Die ', 'Qiang ', 'Yong ', 'Qiang ', 'Pian ', 'Ban ', 'Pan ', 'Shao ', 'Jian ', 'Pai ', 'Du ', 'Chuang ', 'Tou ',
+'Zha ', 'Bian ', 'Die ', 'Bang ', 'Bo ', 'Chuang ', 'You ', qq{[?] }, 'Du ', 'Ya ', 'Cheng ', 'Niu ', 'Ushihen ', 'Pin ', 'Jiu ', 'Mou ',
+'Tuo ', 'Mu ', 'Lao ', 'Ren ', 'Mang ', 'Fang ', 'Mao ', 'Mu ', 'Gang ', 'Wu ', 'Yan ', 'Ge ', 'Bei ', 'Si ', 'Jian ', 'Gu ',
+'You ', 'Ge ', 'Sheng ', 'Mu ', 'Di ', 'Qian ', 'Quan ', 'Quan ', 'Zi ', 'Te ', 'Xi ', 'Mang ', 'Keng ', 'Qian ', 'Wu ', 'Gu ',
+'Xi ', 'Li ', 'Li ', 'Pou ', 'Ji ', 'Gang ', 'Zhi ', 'Ben ', 'Quan ', 'Run ', 'Du ', 'Ju ', 'Jia ', 'Jian ', 'Feng ', 'Pian ',
+'Ke ', 'Ju ', 'Kao ', 'Chu ', 'Xi ', 'Bei ', 'Luo ', 'Jie ', 'Ma ', 'San ', 'Wei ', 'Li ', 'Dun ', 'Tong ', qq{[?] }, 'Jiang ',
+'Ikenie ', 'Li ', 'Du ', 'Lie ', 'Pi ', 'Piao ', 'Bao ', 'Xi ', 'Chou ', 'Wei ', 'Kui ', 'Chou ', 'Quan ', 'Fan ', 'Ba ', 'Fan ',
+'Qiu ', 'Ji ', 'Cai ', 'Chuo ', 'An ', 'Jie ', 'Zhuang ', 'Guang ', 'Ma ', 'You ', 'Kang ', 'Bo ', 'Hou ', 'Ya ', 'Yin ', 'Huan ',
+'Zhuang ', 'Yun ', 'Kuang ', 'Niu ', 'Di ', 'Qing ', 'Zhong ', 'Mu ', 'Bei ', 'Pi ', 'Ju ', 'Ni ', 'Sheng ', 'Pao ', 'Xia ', 'Tuo ',
+'Hu ', 'Ling ', 'Fei ', 'Pi ', 'Ni ', 'Ao ', 'You ', 'Gou ', 'Yue ', 'Ju ', 'Dan ', 'Po ', 'Gu ', 'Xian ', 'Ning ', 'Huan ',
+'Hen ', 'Jiao ', 'He ', 'Zhao ', 'Ji ', 'Xun ', 'Shan ', 'Ta ', 'Rong ', 'Shou ', 'Tong ', 'Lao ', 'Du ', 'Xia ', 'Shi ', 'Hua ',
+'Zheng ', 'Yu ', 'Sun ', 'Yu ', 'Bi ', 'Mang ', 'Xi ', 'Juan ', 'Li ', 'Xia ', 'Yin ', 'Suan ', 'Lang ', 'Bei ', 'Zhi ', 'Yan ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x73.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x73.pm
new file mode 100644
index 0000000..be84cdb
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x73.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x73] = [
+'Sha ', 'Li ', 'Han ', 'Xian ', 'Jing ', 'Pai ', 'Fei ', 'Yao ', 'Ba ', 'Qi ', 'Ni ', 'Biao ', 'Yin ', 'Lai ', 'Xi ', 'Jian ',
+'Qiang ', 'Kun ', 'Yan ', 'Guo ', 'Zong ', 'Mi ', 'Chang ', 'Yi ', 'Zhi ', 'Zheng ', 'Ya ', 'Meng ', 'Cai ', 'Cu ', 'She ', 'Kari ',
+'Cen ', 'Luo ', 'Hu ', 'Zong ', 'Ji ', 'Wei ', 'Feng ', 'Wo ', 'Yuan ', 'Xing ', 'Zhu ', 'Mao ', 'Wei ', 'Yuan ', 'Xian ', 'Tuan ',
+'Ya ', 'Nao ', 'Xie ', 'Jia ', 'Hou ', 'Bian ', 'You ', 'You ', 'Mei ', 'Zha ', 'Yao ', 'Sun ', 'Bo ', 'Ming ', 'Hua ', 'Yuan ',
+'Sou ', 'Ma ', 'Yuan ', 'Dai ', 'Yu ', 'Shi ', 'Hao ', qq{[?] }, 'Yi ', 'Zhen ', 'Chuang ', 'Hao ', 'Man ', 'Jing ', 'Jiang ', 'Mu ',
+'Zhang ', 'Chan ', 'Ao ', 'Ao ', 'Hao ', 'Cui ', 'Fen ', 'Jue ', 'Bi ', 'Bi ', 'Huang ', 'Pu ', 'Lin ', 'Yu ', 'Tong ', 'Yao ',
+'Liao ', 'Shuo ', 'Xiao ', 'Swu ', 'Ton ', 'Xi ', 'Ge ', 'Juan ', 'Du ', 'Hui ', 'Kuai ', 'Xian ', 'Xie ', 'Ta ', 'Xian ', 'Xun ',
+'Ning ', 'Pin ', 'Huo ', 'Nou ', 'Meng ', 'Lie ', 'Nao ', 'Guang ', 'Shou ', 'Lu ', 'Ta ', 'Xian ', 'Mi ', 'Rang ', 'Huan ', 'Nao ',
+'Luo ', 'Xian ', 'Qi ', 'Jue ', 'Xuan ', 'Miao ', 'Zi ', 'Lu ', 'Lu ', 'Yu ', 'Su ', 'Wang ', 'Qiu ', 'Ga ', 'Ding ', 'Le ',
+'Ba ', 'Ji ', 'Hong ', 'Di ', 'Quan ', 'Gan ', 'Jiu ', 'Yu ', 'Ji ', 'Yu ', 'Yang ', 'Ma ', 'Gong ', 'Wu ', 'Fu ', 'Wen ',
+'Jie ', 'Ya ', 'Fen ', 'Bian ', 'Beng ', 'Yue ', 'Jue ', 'Yun ', 'Jue ', 'Wan ', 'Jian ', 'Mei ', 'Dan ', 'Pi ', 'Wei ', 'Huan ',
+'Xian ', 'Qiang ', 'Ling ', 'Dai ', 'Yi ', 'An ', 'Ping ', 'Dian ', 'Fu ', 'Xuan ', 'Xi ', 'Bo ', 'Ci ', 'Gou ', 'Jia ', 'Shao ',
+'Po ', 'Ci ', 'Ke ', 'Ran ', 'Sheng ', 'Shen ', 'Yi ', 'Zu ', 'Jia ', 'Min ', 'Shan ', 'Liu ', 'Bi ', 'Zhen ', 'Zhen ', 'Jue ',
+'Fa ', 'Long ', 'Jin ', 'Jiao ', 'Jian ', 'Li ', 'Guang ', 'Xian ', 'Zhou ', 'Gong ', 'Yan ', 'Xiu ', 'Yang ', 'Xu ', 'Luo ', 'Su ',
+'Zhu ', 'Qin ', 'Ken ', 'Xun ', 'Bao ', 'Er ', 'Xiang ', 'Yao ', 'Xia ', 'Heng ', 'Gui ', 'Chong ', 'Xu ', 'Ban ', 'Pei ', qq{[?] },
+'Dang ', 'Ei ', 'Hun ', 'Wen ', 'E ', 'Cheng ', 'Ti ', 'Wu ', 'Wu ', 'Cheng ', 'Jun ', 'Mei ', 'Bei ', 'Ting ', 'Xian ', 'Chuo ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x74.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x74.pm
new file mode 100644
index 0000000..ab279ac
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x74.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x74] = [
+'Han ', 'Xuan ', 'Yan ', 'Qiu ', 'Quan ', 'Lang ', 'Li ', 'Xiu ', 'Fu ', 'Liu ', 'Ye ', 'Xi ', 'Ling ', 'Li ', 'Jin ', 'Lian ',
+'Suo ', 'Chiisai ', qq{[?] }, 'Wan ', 'Dian ', 'Pin ', 'Zhan ', 'Cui ', 'Min ', 'Yu ', 'Ju ', 'Chen ', 'Lai ', 'Wen ', 'Sheng ', 'Wei ',
+'Dian ', 'Chu ', 'Zhuo ', 'Pei ', 'Cheng ', 'Hu ', 'Qi ', 'E ', 'Kun ', 'Chang ', 'Qi ', 'Beng ', 'Wan ', 'Lu ', 'Cong ', 'Guan ',
+'Yan ', 'Diao ', 'Bei ', 'Lin ', 'Qin ', 'Pi ', 'Pa ', 'Que ', 'Zhuo ', 'Qin ', 'Fa ', qq{[?] }, 'Qiong ', 'Du ', 'Jie ', 'Hun ',
+'Yu ', 'Mao ', 'Mei ', 'Chun ', 'Xuan ', 'Ti ', 'Xing ', 'Dai ', 'Rou ', 'Min ', 'Zhen ', 'Wei ', 'Ruan ', 'Huan ', 'Jie ', 'Chuan ',
+'Jian ', 'Zhuan ', 'Yang ', 'Lian ', 'Quan ', 'Xia ', 'Duan ', 'Yuan ', 'Ye ', 'Nao ', 'Hu ', 'Ying ', 'Yu ', 'Huang ', 'Rui ', 'Se ',
+'Liu ', 'Shi ', 'Rong ', 'Suo ', 'Yao ', 'Wen ', 'Wu ', 'Jin ', 'Jin ', 'Ying ', 'Ma ', 'Tao ', 'Liu ', 'Tang ', 'Li ', 'Lang ',
+'Gui ', 'Zhen ', 'Qiang ', 'Cuo ', 'Jue ', 'Zhao ', 'Yao ', 'Ai ', 'Bin ', 'Tu ', 'Chang ', 'Kun ', 'Zhuan ', 'Cong ', 'Jin ', 'Yi ',
+'Cui ', 'Cong ', 'Qi ', 'Li ', 'Ying ', 'Suo ', 'Qiu ', 'Xuan ', 'Ao ', 'Lian ', 'Man ', 'Zhang ', 'Yin ', qq{[?] }, 'Ying ', 'Zhi ',
+'Lu ', 'Wu ', 'Deng ', 'Xiou ', 'Zeng ', 'Xun ', 'Qu ', 'Dang ', 'Lin ', 'Liao ', 'Qiong ', 'Su ', 'Huang ', 'Gui ', 'Pu ', 'Jing ',
+'Fan ', 'Jin ', 'Liu ', 'Ji ', qq{[?] }, 'Jing ', 'Ai ', 'Bi ', 'Can ', 'Qu ', 'Zao ', 'Dang ', 'Jiao ', 'Gun ', 'Tan ', 'Hui ',
+'Huan ', 'Se ', 'Sui ', 'Tian ', qq{[?] }, 'Yu ', 'Jin ', 'Lu ', 'Bin ', 'Shou ', 'Wen ', 'Zui ', 'Lan ', 'Xi ', 'Ji ', 'Xuan ',
+'Ruan ', 'Huo ', 'Gai ', 'Lei ', 'Du ', 'Li ', 'Zhi ', 'Rou ', 'Li ', 'Zan ', 'Qiong ', 'Zhe ', 'Gui ', 'Sui ', 'La ', 'Long ',
+'Lu ', 'Li ', 'Zan ', 'Lan ', 'Ying ', 'Mi ', 'Xiang ', 'Xi ', 'Guan ', 'Dao ', 'Zan ', 'Huan ', 'Gua ', 'Bo ', 'Die ', 'Bao ',
+'Hu ', 'Zhi ', 'Piao ', 'Ban ', 'Rang ', 'Li ', 'Wa ', 'Dekaguramu ', 'Jiang ', 'Qian ', 'Fan ', 'Pen ', 'Fang ', 'Dan ', 'Weng ', 'Ou ',
+'Deshiguramu ', 'Miriguramu ', 'Thon ', 'Hu ', 'Ling ', 'Yi ', 'Ping ', 'Ci ', 'Hekutogura ', 'Juan ', 'Chang ', 'Chi ', 'Sarake ', 'Dang ', 'Meng ', 'Pou ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x75.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x75.pm
new file mode 100644
index 0000000..7a4adc2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x75.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x75] = [
+'Zhui ', 'Ping ', 'Bian ', 'Zhou ', 'Zhen ', 'Senchigura ', 'Ci ', 'Ying ', 'Qi ', 'Xian ', 'Lou ', 'Di ', 'Ou ', 'Meng ', 'Zhuan ', 'Peng ',
+'Lin ', 'Zeng ', 'Wu ', 'Pi ', 'Dan ', 'Weng ', 'Ying ', 'Yan ', 'Gan ', 'Dai ', 'Shen ', 'Tian ', 'Tian ', 'Han ', 'Chang ', 'Sheng ',
+'Qing ', 'Sheng ', 'Chan ', 'Chan ', 'Rui ', 'Sheng ', 'Su ', 'Sen ', 'Yong ', 'Shuai ', 'Lu ', 'Fu ', 'Yong ', 'Beng ', 'Feng ', 'Ning ',
+'Tian ', 'You ', 'Jia ', 'Shen ', 'Zha ', 'Dian ', 'Fu ', 'Nan ', 'Dian ', 'Ping ', 'Ting ', 'Hua ', 'Ting ', 'Quan ', 'Zi ', 'Meng ',
+'Bi ', 'Qi ', 'Liu ', 'Xun ', 'Liu ', 'Chang ', 'Mu ', 'Yun ', 'Fan ', 'Fu ', 'Geng ', 'Tian ', 'Jie ', 'Jie ', 'Quan ', 'Wei ',
+'Fu ', 'Tian ', 'Mu ', 'Tap ', 'Pan ', 'Jiang ', 'Wa ', 'Da ', 'Nan ', 'Liu ', 'Ben ', 'Zhen ', 'Chu ', 'Mu ', 'Mu ', 'Ce ',
+'Cen ', 'Gai ', 'Bi ', 'Da ', 'Zhi ', 'Lue ', 'Qi ', 'Lue ', 'Pan ', 'Kesa ', 'Fan ', 'Hua ', 'Yu ', 'Yu ', 'Mu ', 'Jun ',
+'Yi ', 'Liu ', 'Yu ', 'Die ', 'Chou ', 'Hua ', 'Dang ', 'Chuo ', 'Ji ', 'Wan ', 'Jiang ', 'Sheng ', 'Chang ', 'Tuan ', 'Lei ', 'Ji ',
+'Cha ', 'Liu ', 'Tatamu ', 'Tuan ', 'Lin ', 'Jiang ', 'Jiang ', 'Chou ', 'Bo ', 'Die ', 'Die ', 'Pi ', 'Nie ', 'Dan ', 'Shu ', 'Shu ',
+'Zhi ', 'Yi ', 'Chuang ', 'Nai ', 'Ding ', 'Bi ', 'Jie ', 'Liao ', 'Gong ', 'Ge ', 'Jiu ', 'Zhou ', 'Xia ', 'Shan ', 'Xu ', 'Nue ',
+'Li ', 'Yang ', 'Chen ', 'You ', 'Ba ', 'Jie ', 'Jue ', 'Zhi ', 'Xia ', 'Cui ', 'Bi ', 'Yi ', 'Li ', 'Zong ', 'Chuang ', 'Feng ',
+'Zhu ', 'Pao ', 'Pi ', 'Gan ', 'Ke ', 'Ci ', 'Xie ', 'Qi ', 'Dan ', 'Zhen ', 'Fa ', 'Zhi ', 'Teng ', 'Ju ', 'Ji ', 'Fei ',
+'Qu ', 'Dian ', 'Jia ', 'Xian ', 'Cha ', 'Bing ', 'Ni ', 'Zheng ', 'Yong ', 'Jing ', 'Quan ', 'Chong ', 'Tong ', 'Yi ', 'Kai ', 'Wei ',
+'Hui ', 'Duo ', 'Yang ', 'Chi ', 'Zhi ', 'Hen ', 'Ya ', 'Mei ', 'Dou ', 'Jing ', 'Xiao ', 'Tong ', 'Tu ', 'Mang ', 'Pi ', 'Xiao ',
+'Suan ', 'Pu ', 'Li ', 'Zhi ', 'Cuo ', 'Duo ', 'Wu ', 'Sha ', 'Lao ', 'Shou ', 'Huan ', 'Xian ', 'Yi ', 'Peng ', 'Zhang ', 'Guan ',
+'Tan ', 'Fei ', 'Ma ', 'Lin ', 'Chi ', 'Ji ', 'Dian ', 'An ', 'Chi ', 'Bi ', 'Bei ', 'Min ', 'Gu ', 'Dui ', 'E ', 'Wei ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x76.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x76.pm
new file mode 100644
index 0000000..6de900f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x76.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x76] = [
+'Yu ', 'Cui ', 'Ya ', 'Zhu ', 'Cu ', 'Dan ', 'Shen ', 'Zhung ', 'Ji ', 'Yu ', 'Hou ', 'Feng ', 'La ', 'Yang ', 'Shen ', 'Tu ',
+'Yu ', 'Gua ', 'Wen ', 'Huan ', 'Ku ', 'Jia ', 'Yin ', 'Yi ', 'Lu ', 'Sao ', 'Jue ', 'Chi ', 'Xi ', 'Guan ', 'Yi ', 'Wen ',
+'Ji ', 'Chuang ', 'Ban ', 'Lei ', 'Liu ', 'Chai ', 'Shou ', 'Nue ', 'Dian ', 'Da ', 'Pie ', 'Tan ', 'Zhang ', 'Biao ', 'Shen ', 'Cu ',
+'Luo ', 'Yi ', 'Zong ', 'Chou ', 'Zhang ', 'Zhai ', 'Sou ', 'Suo ', 'Que ', 'Diao ', 'Lou ', 'Lu ', 'Mo ', 'Jin ', 'Yin ', 'Ying ',
+'Huang ', 'Fu ', 'Liao ', 'Long ', 'Qiao ', 'Liu ', 'Lao ', 'Xian ', 'Fei ', 'Dan ', 'Yin ', 'He ', 'Yan ', 'Ban ', 'Xian ', 'Guan ',
+'Guai ', 'Nong ', 'Yu ', 'Wei ', 'Yi ', 'Yong ', 'Pi ', 'Lei ', 'Li ', 'Shu ', 'Dan ', 'Lin ', 'Dian ', 'Lin ', 'Lai ', 'Pie ',
+'Ji ', 'Chi ', 'Yang ', 'Xian ', 'Jie ', 'Zheng ', qq{[?] }, 'Li ', 'Huo ', 'Lai ', 'Shaku ', 'Dian ', 'Xian ', 'Ying ', 'Yin ', 'Qu ',
+'Yong ', 'Tan ', 'Dian ', 'Luo ', 'Luan ', 'Luan ', 'Bo ', qq{[?] }, 'Gui ', 'Po ', 'Fa ', 'Deng ', 'Fa ', 'Bai ', 'Bai ', 'Qie ',
+'Bi ', 'Zao ', 'Zao ', 'Mao ', 'De ', 'Pa ', 'Jie ', 'Huang ', 'Gui ', 'Ci ', 'Ling ', 'Gao ', 'Mo ', 'Ji ', 'Jiao ', 'Peng ',
+'Gao ', 'Ai ', 'E ', 'Hao ', 'Han ', 'Bi ', 'Wan ', 'Chou ', 'Qian ', 'Xi ', 'Ai ', 'Jiong ', 'Hao ', 'Huang ', 'Hao ', 'Ze ',
+'Cui ', 'Hao ', 'Xiao ', 'Ye ', 'Po ', 'Hao ', 'Jiao ', 'Ai ', 'Xing ', 'Huang ', 'Li ', 'Piao ', 'He ', 'Jiao ', 'Pi ', 'Gan ',
+'Pao ', 'Zhou ', 'Jun ', 'Qiu ', 'Cun ', 'Que ', 'Zha ', 'Gu ', 'Jun ', 'Jun ', 'Zhou ', 'Zha ', 'Gu ', 'Zhan ', 'Du ', 'Min ',
+'Qi ', 'Ying ', 'Yu ', 'Bei ', 'Zhao ', 'Zhong ', 'Pen ', 'He ', 'Ying ', 'He ', 'Yi ', 'Bo ', 'Wan ', 'He ', 'Ang ', 'Zhan ',
+'Yan ', 'Jian ', 'He ', 'Yu ', 'Kui ', 'Fan ', 'Gai ', 'Dao ', 'Pan ', 'Fu ', 'Qiu ', 'Sheng ', 'Dao ', 'Lu ', 'Zhan ', 'Meng ',
+'Li ', 'Jin ', 'Xu ', 'Jian ', 'Pan ', 'Guan ', 'An ', 'Lu ', 'Shu ', 'Zhou ', 'Dang ', 'An ', 'Gu ', 'Li ', 'Mu ', 'Cheng ',
+'Gan ', 'Xu ', 'Mang ', 'Mang ', 'Zhi ', 'Qi ', 'Ruan ', 'Tian ', 'Xiang ', 'Dun ', 'Xin ', 'Xi ', 'Pan ', 'Feng ', 'Dun ', 'Min ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x77.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x77.pm
new file mode 100644
index 0000000..af842ce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x77.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:32 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x77] = [
+'Ming ', 'Sheng ', 'Shi ', 'Yun ', 'Mian ', 'Pan ', 'Fang ', 'Miao ', 'Dan ', 'Mei ', 'Mao ', 'Kan ', 'Xian ', 'Ou ', 'Shi ', 'Yang ',
+'Zheng ', 'Yao ', 'Shen ', 'Huo ', 'Da ', 'Zhen ', 'Kuang ', 'Ju ', 'Shen ', 'Chi ', 'Sheng ', 'Mei ', 'Mo ', 'Zhu ', 'Zhen ', 'Zhen ',
+'Mian ', 'Di ', 'Yuan ', 'Die ', 'Yi ', 'Zi ', 'Zi ', 'Chao ', 'Zha ', 'Xuan ', 'Bing ', 'Mi ', 'Long ', 'Sui ', 'Dong ', 'Mi ',
+'Die ', 'Yi ', 'Er ', 'Ming ', 'Xuan ', 'Chi ', 'Kuang ', 'Juan ', 'Mou ', 'Zhen ', 'Tiao ', 'Yang ', 'Yan ', 'Mo ', 'Zhong ', 'Mai ',
+'Zhao ', 'Zheng ', 'Mei ', 'Jun ', 'Shao ', 'Han ', 'Huan ', 'Di ', 'Cheng ', 'Cuo ', 'Juan ', 'E ', 'Wan ', 'Xian ', 'Xi ', 'Kun ',
+'Lai ', 'Jian ', 'Shan ', 'Tian ', 'Hun ', 'Wan ', 'Ling ', 'Shi ', 'Qiong ', 'Lie ', 'Yai ', 'Jing ', 'Zheng ', 'Li ', 'Lai ', 'Sui ',
+'Juan ', 'Shui ', 'Sui ', 'Du ', 'Bi ', 'Bi ', 'Mu ', 'Hun ', 'Ni ', 'Lu ', 'Yi ', 'Jie ', 'Cai ', 'Zhou ', 'Yu ', 'Hun ',
+'Ma ', 'Xia ', 'Xing ', 'Xi ', 'Gun ', 'Cai ', 'Chun ', 'Jian ', 'Mei ', 'Du ', 'Hou ', 'Xuan ', 'Ti ', 'Kui ', 'Gao ', 'Rui ',
+'Mou ', 'Xu ', 'Fa ', 'Wen ', 'Miao ', 'Chou ', 'Kui ', 'Mi ', 'Weng ', 'Kou ', 'Dang ', 'Chen ', 'Ke ', 'Sou ', 'Xia ', 'Qiong ',
+'Mao ', 'Ming ', 'Man ', 'Shui ', 'Ze ', 'Zhang ', 'Yi ', 'Diao ', 'Ou ', 'Mo ', 'Shun ', 'Cong ', 'Lou ', 'Chi ', 'Man ', 'Piao ',
+'Cheng ', 'Ji ', 'Meng ', qq{[?] }, 'Run ', 'Pie ', 'Xi ', 'Qiao ', 'Pu ', 'Zhu ', 'Deng ', 'Shen ', 'Shun ', 'Liao ', 'Che ', 'Xian ',
+'Kan ', 'Ye ', 'Xu ', 'Tong ', 'Mou ', 'Lin ', 'Kui ', 'Xian ', 'Ye ', 'Ai ', 'Hui ', 'Zhan ', 'Jian ', 'Gu ', 'Zhao ', 'Qu ',
+'Wei ', 'Chou ', 'Sao ', 'Ning ', 'Xun ', 'Yao ', 'Huo ', 'Meng ', 'Mian ', 'Bin ', 'Mian ', 'Li ', 'Kuang ', 'Jue ', 'Xuan ', 'Mian ',
+'Huo ', 'Lu ', 'Meng ', 'Long ', 'Guan ', 'Man ', 'Xi ', 'Chu ', 'Tang ', 'Kan ', 'Zhu ', 'Mao ', 'Jin ', 'Lin ', 'Yu ', 'Shuo ',
+'Ce ', 'Jue ', 'Shi ', 'Yi ', 'Shen ', 'Zhi ', 'Hou ', 'Shen ', 'Ying ', 'Ju ', 'Zhou ', 'Jiao ', 'Cuo ', 'Duan ', 'Ai ', 'Jiao ',
+'Zeng ', 'Huo ', 'Bai ', 'Shi ', 'Ding ', 'Qi ', 'Ji ', 'Zi ', 'Gan ', 'Wu ', 'Tuo ', 'Ku ', 'Qiang ', 'Xi ', 'Fan ', 'Kuang ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x78.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x78.pm
new file mode 100644
index 0000000..6fad544
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x78.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x78] = [
+'Dang ', 'Ma ', 'Sha ', 'Dan ', 'Jue ', 'Li ', 'Fu ', 'Min ', 'Nuo ', 'Huo ', 'Kang ', 'Zhi ', 'Qi ', 'Kan ', 'Jie ', 'Fen ',
+'E ', 'Ya ', 'Pi ', 'Zhe ', 'Yan ', 'Sui ', 'Zhuan ', 'Che ', 'Dun ', 'Pan ', 'Yan ', qq{[?] }, 'Feng ', 'Fa ', 'Mo ', 'Zha ',
+'Qu ', 'Yu ', 'Luo ', 'Tuo ', 'Tuo ', 'Di ', 'Zhai ', 'Zhen ', 'Ai ', 'Fei ', 'Mu ', 'Zhu ', 'Li ', 'Bian ', 'Nu ', 'Ping ',
+'Peng ', 'Ling ', 'Pao ', 'Le ', 'Po ', 'Bo ', 'Po ', 'Shen ', 'Za ', 'Nuo ', 'Li ', 'Long ', 'Tong ', qq{[?] }, 'Li ', 'Aragane ',
+'Chu ', 'Keng ', 'Quan ', 'Zhu ', 'Kuang ', 'Huo ', 'E ', 'Nao ', 'Jia ', 'Lu ', 'Wei ', 'Ai ', 'Luo ', 'Ken ', 'Xing ', 'Yan ',
+'Tong ', 'Peng ', 'Xi ', qq{[?] }, 'Hong ', 'Shuo ', 'Xia ', 'Qiao ', qq{[?] }, 'Wei ', 'Qiao ', qq{[?] }, 'Keng ', 'Xiao ', 'Que ', 'Chan ',
+'Lang ', 'Hong ', 'Yu ', 'Xiao ', 'Xia ', 'Mang ', 'Long ', 'Iong ', 'Che ', 'Che ', 'E ', 'Liu ', 'Ying ', 'Mang ', 'Que ', 'Yan ',
+'Sha ', 'Kun ', 'Yu ', qq{[?] }, 'Kaki ', 'Lu ', 'Chen ', 'Jian ', 'Nue ', 'Song ', 'Zhuo ', 'Keng ', 'Peng ', 'Yan ', 'Zhui ', 'Kong ',
+'Ceng ', 'Qi ', 'Zong ', 'Qing ', 'Lin ', 'Jun ', 'Bo ', 'Ding ', 'Min ', 'Diao ', 'Jian ', 'He ', 'Lu ', 'Ai ', 'Sui ', 'Que ',
+'Ling ', 'Bei ', 'Yin ', 'Dui ', 'Wu ', 'Qi ', 'Lun ', 'Wan ', 'Dian ', 'Gang ', 'Pei ', 'Qi ', 'Chen ', 'Ruan ', 'Yan ', 'Die ',
+'Ding ', 'Du ', 'Tuo ', 'Jie ', 'Ying ', 'Bian ', 'Ke ', 'Bi ', 'Wei ', 'Shuo ', 'Zhen ', 'Duan ', 'Xia ', 'Dang ', 'Ti ', 'Nao ',
+'Peng ', 'Jian ', 'Di ', 'Tan ', 'Cha ', 'Seki ', 'Qi ', qq{[?] }, 'Feng ', 'Xuan ', 'Que ', 'Que ', 'Ma ', 'Gong ', 'Nian ', 'Su ',
+'E ', 'Ci ', 'Liu ', 'Si ', 'Tang ', 'Bang ', 'Hua ', 'Pi ', 'Wei ', 'Sang ', 'Lei ', 'Cuo ', 'Zhen ', 'Xia ', 'Qi ', 'Lian ',
+'Pan ', 'Wei ', 'Yun ', 'Dui ', 'Zhe ', 'Ke ', 'La ', qq{[?] }, 'Qing ', 'Gun ', 'Zhuan ', 'Chan ', 'Qi ', 'Ao ', 'Peng ', 'Lu ',
+'Lu ', 'Kan ', 'Qiang ', 'Chen ', 'Yin ', 'Lei ', 'Biao ', 'Qi ', 'Mo ', 'Qi ', 'Cui ', 'Zong ', 'Qing ', 'Chuo ', qq{[?] }, 'Ji ',
+'Shan ', 'Lao ', 'Qu ', 'Zeng ', 'Deng ', 'Jian ', 'Xi ', 'Lin ', 'Ding ', 'Dian ', 'Huang ', 'Pan ', 'Za ', 'Qiao ', 'Di ', 'Li ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x79.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x79.pm
new file mode 100644
index 0000000..71a1dcb
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x79.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x79] = [
+'Tani ', 'Jiao ', qq{[?] }, 'Zhang ', 'Qiao ', 'Dun ', 'Xian ', 'Yu ', 'Zhui ', 'He ', 'Huo ', 'Zhai ', 'Lei ', 'Ke ', 'Chu ', 'Ji ',
+'Que ', 'Dang ', 'Yi ', 'Jiang ', 'Pi ', 'Pi ', 'Yu ', 'Pin ', 'Qi ', 'Ai ', 'Kai ', 'Jian ', 'Yu ', 'Ruan ', 'Meng ', 'Pao ',
+'Ci ', qq{[?] }, qq{[?] }, 'Mie ', 'Ca ', 'Xian ', 'Kuang ', 'Lei ', 'Lei ', 'Zhi ', 'Li ', 'Li ', 'Fan ', 'Que ', 'Pao ', 'Ying ',
+'Li ', 'Long ', 'Long ', 'Mo ', 'Bo ', 'Shuang ', 'Guan ', 'Lan ', 'Zan ', 'Yan ', 'Shi ', 'Shi ', 'Li ', 'Reng ', 'She ', 'Yue ',
+'Si ', 'Qi ', 'Ta ', 'Ma ', 'Xie ', 'Xian ', 'Xian ', 'Zhi ', 'Qi ', 'Zhi ', 'Beng ', 'Dui ', 'Zhong ', qq{[?] }, 'Yi ', 'Shi ',
+'You ', 'Zhi ', 'Tiao ', 'Fu ', 'Fu ', 'Mi ', 'Zu ', 'Zhi ', 'Suan ', 'Mei ', 'Zuo ', 'Qu ', 'Hu ', 'Zhu ', 'Shen ', 'Sui ',
+'Ci ', 'Chai ', 'Mi ', 'Lu ', 'Yu ', 'Xiang ', 'Wu ', 'Tiao ', 'Piao ', 'Zhu ', 'Gui ', 'Xia ', 'Zhi ', 'Ji ', 'Gao ', 'Zhen ',
+'Gao ', 'Shui ', 'Jin ', 'Chen ', 'Gai ', 'Kun ', 'Di ', 'Dao ', 'Huo ', 'Tao ', 'Qi ', 'Gu ', 'Guan ', 'Zui ', 'Ling ', 'Lu ',
+'Bing ', 'Jin ', 'Dao ', 'Zhi ', 'Lu ', 'Shan ', 'Bei ', 'Zhe ', 'Hui ', 'You ', 'Xi ', 'Yin ', 'Zi ', 'Huo ', 'Zhen ', 'Fu ',
+'Yuan ', 'Wu ', 'Xian ', 'Yang ', 'Ti ', 'Yi ', 'Mei ', 'Si ', 'Di ', qq{[?] }, 'Zhuo ', 'Zhen ', 'Yong ', 'Ji ', 'Gao ', 'Tang ',
+'Si ', 'Ma ', 'Ta ', qq{[?] }, 'Xuan ', 'Qi ', 'Yu ', 'Xi ', 'Ji ', 'Si ', 'Chan ', 'Tan ', 'Kuai ', 'Sui ', 'Li ', 'Nong ',
+'Ni ', 'Dao ', 'Li ', 'Rang ', 'Yue ', 'Ti ', 'Zan ', 'Lei ', 'Rou ', 'Yu ', 'Yu ', 'Chi ', 'Xie ', 'Qin ', 'He ', 'Tu ',
+'Xiu ', 'Si ', 'Ren ', 'Tu ', 'Zi ', 'Cha ', 'Gan ', 'Yi ', 'Xian ', 'Bing ', 'Nian ', 'Qiu ', 'Qiu ', 'Chong ', 'Fen ', 'Hao ',
+'Yun ', 'Ke ', 'Miao ', 'Zhi ', 'Geng ', 'Bi ', 'Zhi ', 'Yu ', 'Mi ', 'Ku ', 'Ban ', 'Pi ', 'Ni ', 'Li ', 'You ', 'Zu ',
+'Pi ', 'Ba ', 'Ling ', 'Mo ', 'Cheng ', 'Nian ', 'Qin ', 'Yang ', 'Zuo ', 'Zhi ', 'Zhi ', 'Shu ', 'Ju ', 'Zi ', 'Huo ', 'Ji ',
+'Cheng ', 'Tong ', 'Zhi ', 'Huo ', 'He ', 'Yin ', 'Zi ', 'Zhi ', 'Jie ', 'Ren ', 'Du ', 'Yi ', 'Zhu ', 'Hui ', 'Nong ', 'Fu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7a.pm
new file mode 100644
index 0000000..c4b957a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7a] = [
+'Xi ', 'Kao ', 'Lang ', 'Fu ', 'Ze ', 'Shui ', 'Lu ', 'Kun ', 'Gan ', 'Geng ', 'Ti ', 'Cheng ', 'Tu ', 'Shao ', 'Shui ', 'Ya ',
+'Lun ', 'Lu ', 'Gu ', 'Zuo ', 'Ren ', 'Zhun ', 'Bang ', 'Bai ', 'Ji ', 'Zhi ', 'Zhi ', 'Kun ', 'Leng ', 'Peng ', 'Ke ', 'Bing ',
+'Chou ', 'Zu ', 'Yu ', 'Su ', 'Lue ', qq{[?] }, 'Yi ', 'Xi ', 'Bian ', 'Ji ', 'Fu ', 'Bi ', 'Nuo ', 'Jie ', 'Zhong ', 'Zong ',
+'Xu ', 'Cheng ', 'Dao ', 'Wen ', 'Lian ', 'Zi ', 'Yu ', 'Ji ', 'Xu ', 'Zhen ', 'Zhi ', 'Dao ', 'Jia ', 'Ji ', 'Gao ', 'Gao ',
+'Gu ', 'Rong ', 'Sui ', 'You ', 'Ji ', 'Kang ', 'Mu ', 'Shan ', 'Men ', 'Zhi ', 'Ji ', 'Lu ', 'Su ', 'Ji ', 'Ying ', 'Wen ',
+'Qiu ', 'Se ', qq{[?] }, 'Yi ', 'Huang ', 'Qie ', 'Ji ', 'Sui ', 'Xiao ', 'Pu ', 'Jiao ', 'Zhuo ', 'Tong ', 'Sai ', 'Lu ', 'Sui ',
+'Nong ', 'Se ', 'Hui ', 'Rang ', 'Nuo ', 'Yu ', 'Bin ', 'Ji ', 'Tui ', 'Wen ', 'Cheng ', 'Huo ', 'Gong ', 'Lu ', 'Biao ', qq{[?] },
+'Rang ', 'Zhuo ', 'Li ', 'Zan ', 'Xue ', 'Wa ', 'Jiu ', 'Qiong ', 'Xi ', 'Qiong ', 'Kong ', 'Yu ', 'Sen ', 'Jing ', 'Yao ', 'Chuan ',
+'Zhun ', 'Tu ', 'Lao ', 'Qie ', 'Zhai ', 'Yao ', 'Bian ', 'Bao ', 'Yao ', 'Bing ', 'Wa ', 'Zhu ', 'Jiao ', 'Qiao ', 'Diao ', 'Wu ',
+'Gui ', 'Yao ', 'Zhi ', 'Chuang ', 'Yao ', 'Tiao ', 'Jiao ', 'Chuang ', 'Jiong ', 'Xiao ', 'Cheng ', 'Kou ', 'Cuan ', 'Wo ', 'Dan ', 'Ku ',
+'Ke ', 'Zhui ', 'Xu ', 'Su ', 'Guan ', 'Kui ', 'Dou ', qq{[?] }, 'Yin ', 'Wo ', 'Wa ', 'Ya ', 'Yu ', 'Ju ', 'Qiong ', 'Yao ',
+'Yao ', 'Tiao ', 'Chao ', 'Yu ', 'Tian ', 'Diao ', 'Ju ', 'Liao ', 'Xi ', 'Wu ', 'Kui ', 'Chuang ', 'Zhao ', qq{[?] }, 'Kuan ', 'Long ',
+'Cheng ', 'Cui ', 'Piao ', 'Zao ', 'Cuan ', 'Qiao ', 'Qiong ', 'Dou ', 'Zao ', 'Long ', 'Qie ', 'Li ', 'Chu ', 'Shi ', 'Fou ', 'Qian ',
+'Chu ', 'Hong ', 'Qi ', 'Qian ', 'Gong ', 'Shi ', 'Shu ', 'Miao ', 'Ju ', 'Zhan ', 'Zhu ', 'Ling ', 'Long ', 'Bing ', 'Jing ', 'Jing ',
+'Zhang ', 'Yi ', 'Si ', 'Jun ', 'Hong ', 'Tong ', 'Song ', 'Jing ', 'Diao ', 'Yi ', 'Shu ', 'Jing ', 'Qu ', 'Jie ', 'Ping ', 'Duan ',
+'Shao ', 'Zhuan ', 'Ceng ', 'Deng ', 'Cui ', 'Huai ', 'Jing ', 'Kan ', 'Jing ', 'Zhu ', 'Zhu ', 'Le ', 'Peng ', 'Yu ', 'Chi ', 'Gan ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7b.pm
new file mode 100644
index 0000000..f8ef026
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7b] = [
+'Mang ', 'Zhu ', 'Utsubo ', 'Du ', 'Ji ', 'Xiao ', 'Ba ', 'Suan ', 'Ji ', 'Zhen ', 'Zhao ', 'Sun ', 'Ya ', 'Zhui ', 'Yuan ', 'Hu ',
+'Gang ', 'Xiao ', 'Cen ', 'Pi ', 'Bi ', 'Jian ', 'Yi ', 'Dong ', 'Shan ', 'Sheng ', 'Xia ', 'Di ', 'Zhu ', 'Na ', 'Chi ', 'Gu ',
+'Li ', 'Qie ', 'Min ', 'Bao ', 'Tiao ', 'Si ', 'Fu ', 'Ce ', 'Ben ', 'Pei ', 'Da ', 'Zi ', 'Di ', 'Ling ', 'Ze ', 'Nu ',
+'Fu ', 'Gou ', 'Fan ', 'Jia ', 'Ge ', 'Fan ', 'Shi ', 'Mao ', 'Po ', 'Sey ', 'Jian ', 'Qiong ', 'Long ', 'Souke ', 'Bian ', 'Luo ',
+'Gui ', 'Qu ', 'Chi ', 'Yin ', 'Yao ', 'Xian ', 'Bi ', 'Qiong ', 'Gua ', 'Deng ', 'Jiao ', 'Jin ', 'Quan ', 'Sun ', 'Ru ', 'Fa ',
+'Kuang ', 'Zhu ', 'Tong ', 'Ji ', 'Da ', 'Xing ', 'Ce ', 'Zhong ', 'Kou ', 'Lai ', 'Bi ', 'Shai ', 'Dang ', 'Zheng ', 'Ce ', 'Fu ',
+'Yun ', 'Tu ', 'Pa ', 'Li ', 'Lang ', 'Ju ', 'Guan ', 'Jian ', 'Han ', 'Tong ', 'Xia ', 'Zhi ', 'Cheng ', 'Suan ', 'Shi ', 'Zhu ',
+'Zuo ', 'Xiao ', 'Shao ', 'Ting ', 'Ce ', 'Yan ', 'Gao ', 'Kuai ', 'Gan ', 'Chou ', 'Kago ', 'Gang ', 'Yun ', 'O ', 'Qian ', 'Xiao ',
+'Jian ', 'Pu ', 'Lai ', 'Zou ', 'Bi ', 'Bi ', 'Bi ', 'Ge ', 'Chi ', 'Guai ', 'Yu ', 'Jian ', 'Zhao ', 'Gu ', 'Chi ', 'Zheng ',
+'Jing ', 'Sha ', 'Zhou ', 'Lu ', 'Bo ', 'Ji ', 'Lin ', 'Suan ', 'Jun ', 'Fu ', 'Zha ', 'Gu ', 'Kong ', 'Qian ', 'Quan ', 'Jun ',
+'Chui ', 'Guan ', 'Yuan ', 'Ce ', 'Ju ', 'Bo ', 'Ze ', 'Qie ', 'Tuo ', 'Luo ', 'Dan ', 'Xiao ', 'Ruo ', 'Jian ', 'Xuan ', 'Bian ',
+'Sun ', 'Xiang ', 'Xian ', 'Ping ', 'Zhen ', 'Sheng ', 'Hu ', 'Shi ', 'Zhu ', 'Yue ', 'Chun ', 'Lu ', 'Wu ', 'Dong ', 'Xiao ', 'Ji ',
+'Jie ', 'Huang ', 'Xing ', 'Mei ', 'Fan ', 'Chui ', 'Zhuan ', 'Pian ', 'Feng ', 'Zhu ', 'Hong ', 'Qie ', 'Hou ', 'Qiu ', 'Miao ', 'Qian ',
+qq{[?] }, 'Kui ', 'Sik ', 'Lou ', 'Yun ', 'He ', 'Tang ', 'Yue ', 'Chou ', 'Gao ', 'Fei ', 'Ruo ', 'Zheng ', 'Gou ', 'Nie ', 'Qian ',
+'Xiao ', 'Cuan ', 'Gong ', 'Pang ', 'Du ', 'Li ', 'Bi ', 'Zhuo ', 'Chu ', 'Shai ', 'Chi ', 'Zhu ', 'Qiang ', 'Long ', 'Lan ', 'Jian ',
+'Bu ', 'Li ', 'Hui ', 'Bi ', 'Di ', 'Cong ', 'Yan ', 'Peng ', 'Sen ', 'Zhuan ', 'Pai ', 'Piao ', 'Dou ', 'Yu ', 'Mie ', 'Zhuan ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7c.pm
new file mode 100644
index 0000000..5fa1c1f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7c] = [
+'Ze ', 'Xi ', 'Guo ', 'Yi ', 'Hu ', 'Chan ', 'Kou ', 'Cu ', 'Ping ', 'Chou ', 'Ji ', 'Gui ', 'Su ', 'Lou ', 'Zha ', 'Lu ',
+'Nian ', 'Suo ', 'Cuan ', 'Sasara ', 'Suo ', 'Le ', 'Duan ', 'Yana ', 'Xiao ', 'Bo ', 'Mi ', 'Si ', 'Dang ', 'Liao ', 'Dan ', 'Dian ',
+'Fu ', 'Jian ', 'Min ', 'Kui ', 'Dai ', 'Qiao ', 'Deng ', 'Huang ', 'Sun ', 'Lao ', 'Zan ', 'Xiao ', 'Du ', 'Shi ', 'Zan ', qq{[?] },
+'Pai ', 'Hata ', 'Pai ', 'Gan ', 'Ju ', 'Du ', 'Lu ', 'Yan ', 'Bo ', 'Dang ', 'Sai ', 'Ke ', 'Long ', 'Qian ', 'Lian ', 'Bo ',
+'Zhou ', 'Lai ', qq{[?] }, 'Lan ', 'Kui ', 'Yu ', 'Yue ', 'Hao ', 'Zhen ', 'Tai ', 'Ti ', 'Mi ', 'Chou ', 'Ji ', qq{[?] }, 'Hata ',
+'Teng ', 'Zhuan ', 'Zhou ', 'Fan ', 'Sou ', 'Zhou ', 'Kuji ', 'Zhuo ', 'Teng ', 'Lu ', 'Lu ', 'Jian ', 'Tuo ', 'Ying ', 'Yu ', 'Lai ',
+'Long ', 'Shinshi ', 'Lian ', 'Lan ', 'Qian ', 'Yue ', 'Zhong ', 'Qu ', 'Lian ', 'Bian ', 'Duan ', 'Zuan ', 'Li ', 'Si ', 'Luo ', 'Ying ',
+'Yue ', 'Zhuo ', 'Xu ', 'Mi ', 'Di ', 'Fan ', 'Shen ', 'Zhe ', 'Shen ', 'Nu ', 'Xie ', 'Lei ', 'Xian ', 'Zi ', 'Ni ', 'Cun ',
+qq{[?] }, 'Qian ', 'Kume ', 'Bi ', 'Ban ', 'Wu ', 'Sha ', 'Kang ', 'Rou ', 'Fen ', 'Bi ', 'Cui ', qq{[?] }, 'Li ', 'Chi ', 'Nukamiso ',
+'Ro ', 'Ba ', 'Li ', 'Gan ', 'Ju ', 'Po ', 'Mo ', 'Cu ', 'Nian ', 'Zhou ', 'Li ', 'Su ', 'Tiao ', 'Li ', 'Qi ', 'Su ',
+'Hong ', 'Tong ', 'Zi ', 'Ce ', 'Yue ', 'Zhou ', 'Lin ', 'Zhuang ', 'Bai ', qq{[?] }, 'Fen ', 'Ji ', qq{[?] }, 'Sukumo ', 'Liang ', 'Xian ',
+'Fu ', 'Liang ', 'Can ', 'Geng ', 'Li ', 'Yue ', 'Lu ', 'Ju ', 'Qi ', 'Cui ', 'Bai ', 'Zhang ', 'Lin ', 'Zong ', 'Jing ', 'Guo ',
+'Kouji ', 'San ', 'San ', 'Tang ', 'Bian ', 'Rou ', 'Mian ', 'Hou ', 'Xu ', 'Zong ', 'Hu ', 'Jian ', 'Zan ', 'Ci ', 'Li ', 'Xie ',
+'Fu ', 'Ni ', 'Bei ', 'Gu ', 'Xiu ', 'Gao ', 'Tang ', 'Qiu ', 'Sukumo ', 'Cao ', 'Zhuang ', 'Tang ', 'Mi ', 'San ', 'Fen ', 'Zao ',
+'Kang ', 'Jiang ', 'Mo ', 'San ', 'San ', 'Nuo ', 'Xi ', 'Liang ', 'Jiang ', 'Kuai ', 'Bo ', 'Huan ', qq{[?] }, 'Zong ', 'Xian ', 'Nuo ',
+'Tuan ', 'Nie ', 'Li ', 'Zuo ', 'Di ', 'Nie ', 'Tiao ', 'Lan ', 'Mi ', 'Jiao ', 'Jiu ', 'Xi ', 'Gong ', 'Zheng ', 'Jiu ', 'You ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7d.pm
new file mode 100644
index 0000000..788e0a4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7d] = [
+'Ji ', 'Cha ', 'Zhou ', 'Xun ', 'Yue ', 'Hong ', 'Yu ', 'He ', 'Wan ', 'Ren ', 'Wen ', 'Wen ', 'Qiu ', 'Na ', 'Zi ', 'Tou ',
+'Niu ', 'Fou ', 'Jie ', 'Shu ', 'Chun ', 'Pi ', 'Yin ', 'Sha ', 'Hong ', 'Zhi ', 'Ji ', 'Fen ', 'Yun ', 'Ren ', 'Dan ', 'Jin ',
+'Su ', 'Fang ', 'Suo ', 'Cui ', 'Jiu ', 'Zha ', 'Kinu ', 'Jin ', 'Fu ', 'Zhi ', 'Ci ', 'Zi ', 'Chou ', 'Hong ', 'Zha ', 'Lei ',
+'Xi ', 'Fu ', 'Xie ', 'Shen ', 'Bei ', 'Zhu ', 'Qu ', 'Ling ', 'Zhu ', 'Shao ', 'Gan ', 'Yang ', 'Fu ', 'Tuo ', 'Zhen ', 'Dai ',
+'Zhuo ', 'Shi ', 'Zhong ', 'Xian ', 'Zu ', 'Jiong ', 'Ban ', 'Ju ', 'Mo ', 'Shu ', 'Zui ', 'Wata ', 'Jing ', 'Ren ', 'Heng ', 'Xie ',
+'Jie ', 'Zhu ', 'Chou ', 'Gua ', 'Bai ', 'Jue ', 'Kuang ', 'Hu ', 'Ci ', 'Geng ', 'Geng ', 'Tao ', 'Xie ', 'Ku ', 'Jiao ', 'Quan ',
+'Gai ', 'Luo ', 'Xuan ', 'Bing ', 'Xian ', 'Fu ', 'Gei ', 'Tong ', 'Rong ', 'Tiao ', 'Yin ', 'Lei ', 'Xie ', 'Quan ', 'Xu ', 'Lun ',
+'Die ', 'Tong ', 'Si ', 'Jiang ', 'Xiang ', 'Hui ', 'Jue ', 'Zhi ', 'Jian ', 'Juan ', 'Chi ', 'Mian ', 'Zhen ', 'Lu ', 'Cheng ', 'Qiu ',
+'Shu ', 'Bang ', 'Tong ', 'Xiao ', 'Wan ', 'Qin ', 'Geng ', 'Xiu ', 'Ti ', 'Xiu ', 'Xie ', 'Hong ', 'Xi ', 'Fu ', 'Ting ', 'Sui ',
+'Dui ', 'Kun ', 'Fu ', 'Jing ', 'Hu ', 'Zhi ', 'Yan ', 'Jiong ', 'Feng ', 'Ji ', 'Sok ', 'Kase ', 'Zong ', 'Lin ', 'Duo ', 'Li ',
+'Lu ', 'Liang ', 'Chou ', 'Quan ', 'Shao ', 'Qi ', 'Qi ', 'Zhun ', 'Qi ', 'Wan ', 'Qian ', 'Xian ', 'Shou ', 'Wei ', 'Qi ', 'Tao ',
+'Wan ', 'Gang ', 'Wang ', 'Beng ', 'Zhui ', 'Cai ', 'Guo ', 'Cui ', 'Lun ', 'Liu ', 'Qi ', 'Zhan ', 'Bei ', 'Chuo ', 'Ling ', 'Mian ',
+'Qi ', 'Qie ', 'Tan ', 'Zong ', 'Gun ', 'Zou ', 'Yi ', 'Zi ', 'Xing ', 'Liang ', 'Jin ', 'Fei ', 'Rui ', 'Min ', 'Yu ', 'Zong ',
+'Fan ', 'Lu ', 'Xu ', 'Yingl ', 'Zhang ', 'Kasuri ', 'Xu ', 'Xiang ', 'Jian ', 'Ke ', 'Xian ', 'Ruan ', 'Mian ', 'Qi ', 'Duan ', 'Zhong ',
+'Di ', 'Min ', 'Miao ', 'Yuan ', 'Xie ', 'Bao ', 'Si ', 'Qiu ', 'Bian ', 'Huan ', 'Geng ', 'Cong ', 'Mian ', 'Wei ', 'Fu ', 'Wei ',
+'Yu ', 'Gou ', 'Miao ', 'Xie ', 'Lian ', 'Zong ', 'Bian ', 'Yun ', 'Yin ', 'Ti ', 'Gua ', 'Zhi ', 'Yun ', 'Cheng ', 'Chan ', 'Dai ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7e.pm
new file mode 100644
index 0000000..2371a78
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7e] = [
+'Xia ', 'Yuan ', 'Zong ', 'Xu ', 'Nawa ', 'Odoshi ', 'Geng ', 'Sen ', 'Ying ', 'Jin ', 'Yi ', 'Zhui ', 'Ni ', 'Bang ', 'Gu ', 'Pan ',
+'Zhou ', 'Jian ', 'Cuo ', 'Quan ', 'Shuang ', 'Yun ', 'Xia ', 'Shuai ', 'Xi ', 'Rong ', 'Tao ', 'Fu ', 'Yun ', 'Zhen ', 'Gao ', 'Ru ',
+'Hu ', 'Zai ', 'Teng ', 'Xian ', 'Su ', 'Zhen ', 'Zong ', 'Tao ', 'Horo ', 'Cai ', 'Bi ', 'Feng ', 'Cu ', 'Li ', 'Suo ', 'Yin ',
+'Xi ', 'Zong ', 'Lei ', 'Zhuan ', 'Qian ', 'Man ', 'Zhi ', 'Lu ', 'Mo ', 'Piao ', 'Lian ', 'Mi ', 'Xuan ', 'Zong ', 'Ji ', 'Shan ',
+'Sui ', 'Fan ', 'Shuai ', 'Beng ', 'Yi ', 'Sao ', 'Mou ', 'Zhou ', 'Qiang ', 'Hun ', 'Sem ', 'Xi ', 'Jung ', 'Xiu ', 'Ran ', 'Xuan ',
+'Hui ', 'Qiao ', 'Zeng ', 'Zuo ', 'Zhi ', 'Shan ', 'San ', 'Lin ', 'Yu ', 'Fan ', 'Liao ', 'Chuo ', 'Zun ', 'Jian ', 'Rao ', 'Chan ',
+'Rui ', 'Xiu ', 'Hui ', 'Hua ', 'Zuan ', 'Xi ', 'Qiang ', 'Un ', 'Da ', 'Sheng ', 'Hui ', 'Xi ', 'Se ', 'Jian ', 'Jiang ', 'Huan ',
+'Zao ', 'Cong ', 'Jie ', 'Jiao ', 'Bo ', 'Chan ', 'Yi ', 'Nao ', 'Sui ', 'Yi ', 'Shai ', 'Xu ', 'Ji ', 'Bin ', 'Qian ', 'Lan ',
+'Pu ', 'Xun ', 'Zuan ', 'Qi ', 'Peng ', 'Li ', 'Mo ', 'Lei ', 'Xie ', 'Zuan ', 'Kuang ', 'You ', 'Xu ', 'Lei ', 'Xian ', 'Chan ',
+'Kou ', 'Lu ', 'Chan ', 'Ying ', 'Cai ', 'Xiang ', 'Xian ', 'Zui ', 'Zuan ', 'Luo ', 'Xi ', 'Dao ', 'Lan ', 'Lei ', 'Lian ', 'Si ',
+'Jiu ', 'Yu ', 'Hong ', 'Zhou ', 'Xian ', 'He ', 'Yue ', 'Ji ', 'Wan ', 'Kuang ', 'Ji ', 'Ren ', 'Wei ', 'Yun ', 'Hong ', 'Chun ',
+'Pi ', 'Sha ', 'Gang ', 'Na ', 'Ren ', 'Zong ', 'Lun ', 'Fen ', 'Zhi ', 'Wen ', 'Fang ', 'Zhu ', 'Yin ', 'Niu ', 'Shu ', 'Xian ',
+'Gan ', 'Xie ', 'Fu ', 'Lian ', 'Zu ', 'Shen ', 'Xi ', 'Zhi ', 'Zhong ', 'Zhou ', 'Ban ', 'Fu ', 'Zhuo ', 'Shao ', 'Yi ', 'Jing ',
+'Dai ', 'Bang ', 'Rong ', 'Jie ', 'Ku ', 'Rao ', 'Die ', 'Heng ', 'Hui ', 'Gei ', 'Xuan ', 'Jiang ', 'Luo ', 'Jue ', 'Jiao ', 'Tong ',
+'Geng ', 'Xiao ', 'Juan ', 'Xiu ', 'Xi ', 'Sui ', 'Tao ', 'Ji ', 'Ti ', 'Ji ', 'Xu ', 'Ling ', qq{[?] }, 'Xu ', 'Qi ', 'Fei ',
+'Chuo ', 'Zhang ', 'Gun ', 'Sheng ', 'Wei ', 'Mian ', 'Shou ', 'Beng ', 'Chou ', 'Tao ', 'Liu ', 'Quan ', 'Zong ', 'Zhan ', 'Wan ', 'Lu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7f.pm
new file mode 100644
index 0000000..1794fa3
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x7f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x7f] = [
+'Zhui ', 'Zi ', 'Ke ', 'Xiang ', 'Jian ', 'Mian ', 'Lan ', 'Ti ', 'Miao ', 'Qi ', 'Yun ', 'Hui ', 'Si ', 'Duo ', 'Duan ', 'Bian ',
+'Xian ', 'Gou ', 'Zhui ', 'Huan ', 'Di ', 'Lu ', 'Bian ', 'Min ', 'Yuan ', 'Jin ', 'Fu ', 'Ru ', 'Zhen ', 'Feng ', 'Shuai ', 'Gao ',
+'Chan ', 'Li ', 'Yi ', 'Jian ', 'Bin ', 'Piao ', 'Man ', 'Lei ', 'Ying ', 'Suo ', 'Mou ', 'Sao ', 'Xie ', 'Liao ', 'Shan ', 'Zeng ',
+'Jiang ', 'Qian ', 'Zao ', 'Huan ', 'Jiao ', 'Zuan ', 'Fou ', 'Xie ', 'Gang ', 'Fou ', 'Que ', 'Fou ', 'Kaakeru ', 'Bo ', 'Ping ', 'Hou ',
+qq{[?] }, 'Gang ', 'Ying ', 'Ying ', 'Qing ', 'Xia ', 'Guan ', 'Zun ', 'Tan ', 'Chang ', 'Qi ', 'Weng ', 'Ying ', 'Lei ', 'Tan ', 'Lu ',
+'Guan ', 'Wang ', 'Wang ', 'Gang ', 'Wang ', 'Han ', qq{[?] }, 'Luo ', 'Fu ', 'Mi ', 'Fa ', 'Gu ', 'Zhu ', 'Ju ', 'Mao ', 'Gu ',
+'Min ', 'Gang ', 'Ba ', 'Gua ', 'Ti ', 'Juan ', 'Fu ', 'Lin ', 'Yan ', 'Zhao ', 'Zui ', 'Gua ', 'Zhuo ', 'Yu ', 'Zhi ', 'An ',
+'Fa ', 'Nan ', 'Shu ', 'Si ', 'Pi ', 'Ma ', 'Liu ', 'Ba ', 'Fa ', 'Li ', 'Chao ', 'Wei ', 'Bi ', 'Ji ', 'Zeng ', 'Tong ',
+'Liu ', 'Ji ', 'Juan ', 'Mi ', 'Zhao ', 'Luo ', 'Pi ', 'Ji ', 'Ji ', 'Luan ', 'Yang ', 'Mie ', 'Qiang ', 'Ta ', 'Mei ', 'Yang ',
+'You ', 'You ', 'Fen ', 'Ba ', 'Gao ', 'Yang ', 'Gu ', 'Qiang ', 'Zang ', 'Gao ', 'Ling ', 'Yi ', 'Zhu ', 'Di ', 'Xiu ', 'Qian ',
+'Yi ', 'Xian ', 'Rong ', 'Qun ', 'Qun ', 'Qian ', 'Huan ', 'Zui ', 'Xian ', 'Yi ', 'Yashinau ', 'Qiang ', 'Xian ', 'Yu ', 'Geng ', 'Jie ',
+'Tang ', 'Yuan ', 'Xi ', 'Fan ', 'Shan ', 'Fen ', 'Shan ', 'Lian ', 'Lei ', 'Geng ', 'Nou ', 'Qiang ', 'Chan ', 'Yu ', 'Gong ', 'Yi ',
+'Chong ', 'Weng ', 'Fen ', 'Hong ', 'Chi ', 'Chi ', 'Cui ', 'Fu ', 'Xia ', 'Pen ', 'Yi ', 'La ', 'Yi ', 'Pi ', 'Ling ', 'Liu ',
+'Zhi ', 'Qu ', 'Xi ', 'Xie ', 'Xiang ', 'Xi ', 'Xi ', 'Qi ', 'Qiao ', 'Hui ', 'Hui ', 'Xiao ', 'Se ', 'Hong ', 'Jiang ', 'Di ',
+'Cui ', 'Fei ', 'Tao ', 'Sha ', 'Chi ', 'Zhu ', 'Jian ', 'Xuan ', 'Shi ', 'Pian ', 'Zong ', 'Wan ', 'Hui ', 'Hou ', 'He ', 'He ',
+'Han ', 'Ao ', 'Piao ', 'Yi ', 'Lian ', 'Qu ', qq{[?] }, 'Lin ', 'Pen ', 'Qiao ', 'Ao ', 'Fan ', 'Yi ', 'Hui ', 'Xuan ', 'Dao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x80.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x80.pm
new file mode 100644
index 0000000..277a85b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x80.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x80] = [
+'Yao ', 'Lao ', qq{[?] }, 'Kao ', 'Mao ', 'Zhe ', 'Qi ', 'Gou ', 'Gou ', 'Gou ', 'Die ', 'Die ', 'Er ', 'Shua ', 'Ruan ', 'Er ',
+'Nai ', 'Zhuan ', 'Lei ', 'Ting ', 'Zi ', 'Geng ', 'Chao ', 'Hao ', 'Yun ', 'Pa ', 'Pi ', 'Chi ', 'Si ', 'Chu ', 'Jia ', 'Ju ',
+'He ', 'Chu ', 'Lao ', 'Lun ', 'Ji ', 'Tang ', 'Ou ', 'Lou ', 'Nou ', 'Gou ', 'Pang ', 'Ze ', 'Lou ', 'Ji ', 'Lao ', 'Huo ',
+'You ', 'Mo ', 'Huai ', 'Er ', 'Zhe ', 'Ting ', 'Ye ', 'Da ', 'Song ', 'Qin ', 'Yun ', 'Chi ', 'Dan ', 'Dan ', 'Hong ', 'Geng ',
+'Zhi ', qq{[?] }, 'Nie ', 'Dan ', 'Zhen ', 'Che ', 'Ling ', 'Zheng ', 'You ', 'Wa ', 'Liao ', 'Long ', 'Zhi ', 'Ning ', 'Tiao ', 'Er ',
+'Ya ', 'Die ', 'Gua ', qq{[?] }, 'Lian ', 'Hao ', 'Sheng ', 'Lie ', 'Pin ', 'Jing ', 'Ju ', 'Bi ', 'Di ', 'Guo ', 'Wen ', 'Xu ',
+'Ping ', 'Cong ', 'Shikato ', qq{[?] }, 'Ting ', 'Yu ', 'Cong ', 'Kui ', 'Tsuraneru ', 'Kui ', 'Cong ', 'Lian ', 'Weng ', 'Kui ', 'Lian ', 'Lian ',
+'Cong ', 'Ao ', 'Sheng ', 'Song ', 'Ting ', 'Kui ', 'Nie ', 'Zhi ', 'Dan ', 'Ning ', 'Qie ', 'Ji ', 'Ting ', 'Ting ', 'Long ', 'Yu ',
+'Yu ', 'Zhao ', 'Si ', 'Su ', 'Yi ', 'Su ', 'Si ', 'Zhao ', 'Zhao ', 'Rou ', 'Yi ', 'Le ', 'Ji ', 'Qiu ', 'Ken ', 'Cao ',
+'Ge ', 'Di ', 'Huan ', 'Huang ', 'Yi ', 'Ren ', 'Xiao ', 'Ru ', 'Zhou ', 'Yuan ', 'Du ', 'Gang ', 'Rong ', 'Gan ', 'Cha ', 'Wo ',
+'Chang ', 'Gu ', 'Zhi ', 'Han ', 'Fu ', 'Fei ', 'Fen ', 'Pei ', 'Pang ', 'Jian ', 'Fang ', 'Zhun ', 'You ', 'Na ', 'Hang ', 'Ken ',
+'Ran ', 'Gong ', 'Yu ', 'Wen ', 'Yao ', 'Jin ', 'Pi ', 'Qian ', 'Xi ', 'Xi ', 'Fei ', 'Ken ', 'Jing ', 'Tai ', 'Shen ', 'Zhong ',
+'Zhang ', 'Xie ', 'Shen ', 'Wei ', 'Zhou ', 'Die ', 'Dan ', 'Fei ', 'Ba ', 'Bo ', 'Qu ', 'Tian ', 'Bei ', 'Gua ', 'Tai ', 'Zi ',
+'Ku ', 'Zhi ', 'Ni ', 'Ping ', 'Zi ', 'Fu ', 'Pang ', 'Zhen ', 'Xian ', 'Zuo ', 'Pei ', 'Jia ', 'Sheng ', 'Zhi ', 'Bao ', 'Mu ',
+'Qu ', 'Hu ', 'Ke ', 'Yi ', 'Yin ', 'Xu ', 'Yang ', 'Long ', 'Dong ', 'Ka ', 'Lu ', 'Jing ', 'Nu ', 'Yan ', 'Pang ', 'Kua ',
+'Yi ', 'Guang ', 'Gai ', 'Ge ', 'Dong ', 'Zhi ', 'Xiao ', 'Xiong ', 'Xiong ', 'Er ', 'E ', 'Xing ', 'Pian ', 'Neng ', 'Zi ', 'Gui ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x81.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x81.pm
new file mode 100644
index 0000000..3ab36b5
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x81.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x81] = [
+'Cheng ', 'Tiao ', 'Zhi ', 'Cui ', 'Mei ', 'Xie ', 'Cui ', 'Xie ', 'Mo ', 'Mai ', 'Ji ', 'Obiyaakasu ', qq{[?] }, 'Kuai ', 'Sa ', 'Zang ',
+'Qi ', 'Nao ', 'Mi ', 'Nong ', 'Luan ', 'Wan ', 'Bo ', 'Wen ', 'Guan ', 'Qiu ', 'Jiao ', 'Jing ', 'Rou ', 'Heng ', 'Cuo ', 'Lie ',
+'Shan ', 'Ting ', 'Mei ', 'Chun ', 'Shen ', 'Xie ', 'De ', 'Zui ', 'Cu ', 'Xiu ', 'Xin ', 'Tuo ', 'Pao ', 'Cheng ', 'Nei ', 'Fu ',
+'Dou ', 'Tuo ', 'Niao ', 'Noy ', 'Pi ', 'Gu ', 'Gua ', 'Li ', 'Lian ', 'Zhang ', 'Cui ', 'Jie ', 'Liang ', 'Zhou ', 'Pi ', 'Biao ',
+'Lun ', 'Pian ', 'Guo ', 'Kui ', 'Chui ', 'Dan ', 'Tian ', 'Nei ', 'Jing ', 'Jie ', 'La ', 'Yi ', 'An ', 'Ren ', 'Shen ', 'Chuo ',
+'Fu ', 'Fu ', 'Ju ', 'Fei ', 'Qiang ', 'Wan ', 'Dong ', 'Pi ', 'Guo ', 'Zong ', 'Ding ', 'Wu ', 'Mei ', 'Ruan ', 'Zhuan ', 'Zhi ',
+'Cou ', 'Gua ', 'Ou ', 'Di ', 'An ', 'Xing ', 'Nao ', 'Yu ', 'Chuan ', 'Nan ', 'Yun ', 'Zhong ', 'Rou ', 'E ', 'Sai ', 'Tu ',
+'Yao ', 'Jian ', 'Wei ', 'Jiao ', 'Yu ', 'Jia ', 'Duan ', 'Bi ', 'Chang ', 'Fu ', 'Xian ', 'Ni ', 'Mian ', 'Wa ', 'Teng ', 'Tui ',
+'Bang ', 'Qian ', 'Lu ', 'Wa ', 'Sou ', 'Tang ', 'Su ', 'Zhui ', 'Ge ', 'Yi ', 'Bo ', 'Liao ', 'Ji ', 'Pi ', 'Xie ', 'Gao ',
+'Lu ', 'Bin ', 'Ou ', 'Chang ', 'Lu ', 'Guo ', 'Pang ', 'Chuai ', 'Piao ', 'Jiang ', 'Fu ', 'Tang ', 'Mo ', 'Xi ', 'Zhuan ', 'Lu ',
+'Jiao ', 'Ying ', 'Lu ', 'Zhi ', 'Tara ', 'Chun ', 'Lian ', 'Tong ', 'Peng ', 'Ni ', 'Zha ', 'Liao ', 'Cui ', 'Gui ', 'Xiao ', 'Teng ',
+'Fan ', 'Zhi ', 'Jiao ', 'Shan ', 'Wu ', 'Cui ', 'Run ', 'Xiang ', 'Sui ', 'Fen ', 'Ying ', 'Tan ', 'Zhua ', 'Dan ', 'Kuai ', 'Nong ',
+'Tun ', 'Lian ', 'Bi ', 'Yong ', 'Jue ', 'Chu ', 'Yi ', 'Juan ', 'La ', 'Lian ', 'Sao ', 'Tun ', 'Gu ', 'Qi ', 'Cui ', 'Bin ',
+'Xun ', 'Ru ', 'Huo ', 'Zang ', 'Xian ', 'Biao ', 'Xing ', 'Kuan ', 'La ', 'Yan ', 'Lu ', 'Huo ', 'Zang ', 'Luo ', 'Qu ', 'Zang ',
+'Luan ', 'Ni ', 'Zang ', 'Chen ', 'Qian ', 'Wo ', 'Guang ', 'Zang ', 'Lin ', 'Guang ', 'Zi ', 'Jiao ', 'Nie ', 'Chou ', 'Ji ', 'Gao ',
+'Chou ', 'Mian ', 'Nie ', 'Zhi ', 'Zhi ', 'Ge ', 'Jian ', 'Die ', 'Zhi ', 'Xiu ', 'Tai ', 'Zhen ', 'Jiu ', 'Xian ', 'Yu ', 'Cha ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x82.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x82.pm
new file mode 100644
index 0000000..c69208b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x82.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x82] = [
+'Yao ', 'Yu ', 'Chong ', 'Xi ', 'Xi ', 'Jiu ', 'Yu ', 'Yu ', 'Xing ', 'Ju ', 'Jiu ', 'Xin ', 'She ', 'She ', 'Yadoru ', 'Jiu ',
+'Shi ', 'Tan ', 'Shu ', 'Shi ', 'Tian ', 'Dan ', 'Pu ', 'Pu ', 'Guan ', 'Hua ', 'Tan ', 'Chuan ', 'Shun ', 'Xia ', 'Wu ', 'Zhou ',
+'Dao ', 'Gang ', 'Shan ', 'Yi ', qq{[?] }, 'Pa ', 'Tai ', 'Fan ', 'Ban ', 'Chuan ', 'Hang ', 'Fang ', 'Ban ', 'Que ', 'Hesaki ', 'Zhong ',
+'Jian ', 'Cang ', 'Ling ', 'Zhu ', 'Ze ', 'Duo ', 'Bo ', 'Xian ', 'Ge ', 'Chuan ', 'Jia ', 'Lu ', 'Hong ', 'Pang ', 'Xi ', qq{[?] },
+'Fu ', 'Zao ', 'Feng ', 'Li ', 'Shao ', 'Yu ', 'Lang ', 'Ting ', qq{[?] }, 'Wei ', 'Bo ', 'Meng ', 'Nian ', 'Ju ', 'Huang ', 'Shou ',
+'Zong ', 'Bian ', 'Mao ', 'Die ', qq{[?] }, 'Bang ', 'Cha ', 'Yi ', 'Sao ', 'Cang ', 'Cao ', 'Lou ', 'Dai ', 'Sori ', 'Yao ', 'Tong ',
+'Yofune ', 'Dang ', 'Tan ', 'Lu ', 'Yi ', 'Jie ', 'Jian ', 'Huo ', 'Meng ', 'Qi ', 'Lu ', 'Lu ', 'Chan ', 'Shuang ', 'Gen ', 'Liang ',
+'Jian ', 'Jian ', 'Se ', 'Yan ', 'Fu ', 'Ping ', 'Yan ', 'Yan ', 'Cao ', 'Cao ', 'Yi ', 'Le ', 'Ting ', 'Qiu ', 'Ai ', 'Nai ',
+'Tiao ', 'Jiao ', 'Jie ', 'Peng ', 'Wan ', 'Yi ', 'Chai ', 'Mian ', 'Mie ', 'Gan ', 'Qian ', 'Yu ', 'Yu ', 'Shuo ', 'Qiong ', 'Tu ',
+'Xia ', 'Qi ', 'Mang ', 'Zi ', 'Hui ', 'Sui ', 'Zhi ', 'Xiang ', 'Bi ', 'Fu ', 'Tun ', 'Wei ', 'Wu ', 'Zhi ', 'Qi ', 'Shan ',
+'Wen ', 'Qian ', 'Ren ', 'Fou ', 'Kou ', 'Jie ', 'Lu ', 'Xu ', 'Ji ', 'Qin ', 'Qi ', 'Yuan ', 'Fen ', 'Ba ', 'Rui ', 'Xin ',
+'Ji ', 'Hua ', 'Hua ', 'Fang ', 'Wu ', 'Jue ', 'Gou ', 'Zhi ', 'Yun ', 'Qin ', 'Ao ', 'Chu ', 'Mao ', 'Ya ', 'Fei ', 'Reng ',
+'Hang ', 'Cong ', 'Yin ', 'You ', 'Bian ', 'Yi ', 'Susa ', 'Wei ', 'Li ', 'Pi ', 'E ', 'Xian ', 'Chang ', 'Cang ', 'Meng ', 'Su ',
+'Yi ', 'Yuan ', 'Ran ', 'Ling ', 'Tai ', 'Tiao ', 'Di ', 'Miao ', 'Qiong ', 'Li ', 'Yong ', 'Ke ', 'Mu ', 'Pei ', 'Bao ', 'Gou ',
+'Min ', 'Yi ', 'Yi ', 'Ju ', 'Pi ', 'Ruo ', 'Ku ', 'Zhu ', 'Ni ', 'Bo ', 'Bing ', 'Shan ', 'Qiu ', 'Yao ', 'Xian ', 'Ben ',
+'Hong ', 'Ying ', 'Zha ', 'Dong ', 'Ju ', 'Die ', 'Nie ', 'Gan ', 'Hu ', 'Ping ', 'Mei ', 'Fu ', 'Sheng ', 'Gu ', 'Bi ', 'Wei ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x83.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x83.pm
new file mode 100644
index 0000000..9e36666
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x83.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x83] = [
+'Fu ', 'Zhuo ', 'Mao ', 'Fan ', 'Qie ', 'Mao ', 'Mao ', 'Ba ', 'Zi ', 'Mo ', 'Zi ', 'Di ', 'Chi ', 'Ji ', 'Jing ', 'Long ',
+qq{[?] }, 'Niao ', qq{[?] }, 'Xue ', 'Ying ', 'Qiong ', 'Ge ', 'Ming ', 'Li ', 'Rong ', 'Yin ', 'Gen ', 'Qian ', 'Chai ', 'Chen ', 'Yu ',
+'Xiu ', 'Zi ', 'Lie ', 'Wu ', 'Ji ', 'Kui ', 'Ce ', 'Chong ', 'Ci ', 'Gou ', 'Guang ', 'Mang ', 'Chi ', 'Jiao ', 'Jiao ', 'Fu ',
+'Yu ', 'Zhu ', 'Zi ', 'Jiang ', 'Hui ', 'Yin ', 'Cha ', 'Fa ', 'Rong ', 'Ru ', 'Chong ', 'Mang ', 'Tong ', 'Zhong ', qq{[?] }, 'Zhu ',
+'Xun ', 'Huan ', 'Kua ', 'Quan ', 'Gai ', 'Da ', 'Jing ', 'Xing ', 'Quan ', 'Cao ', 'Jing ', 'Er ', 'An ', 'Shou ', 'Chi ', 'Ren ',
+'Jian ', 'Ti ', 'Huang ', 'Ping ', 'Li ', 'Jin ', 'Lao ', 'Shu ', 'Zhuang ', 'Da ', 'Jia ', 'Rao ', 'Bi ', 'Ze ', 'Qiao ', 'Hui ',
+'Qi ', 'Dang ', qq{[?] }, 'Rong ', 'Hun ', 'Ying ', 'Luo ', 'Ying ', 'Xun ', 'Jin ', 'Sun ', 'Yin ', 'Mai ', 'Hong ', 'Zhou ', 'Yao ',
+'Du ', 'Wei ', 'Chu ', 'Dou ', 'Fu ', 'Ren ', 'Yin ', 'He ', 'Bi ', 'Bu ', 'Yun ', 'Di ', 'Tu ', 'Sui ', 'Sui ', 'Cheng ',
+'Chen ', 'Wu ', 'Bie ', 'Xi ', 'Geng ', 'Li ', 'Fu ', 'Zhu ', 'Mo ', 'Li ', 'Zhuang ', 'Ji ', 'Duo ', 'Qiu ', 'Sha ', 'Suo ',
+'Chen ', 'Feng ', 'Ju ', 'Mei ', 'Meng ', 'Xing ', 'Jing ', 'Che ', 'Xin ', 'Jun ', 'Yan ', 'Ting ', 'Diao ', 'Cuo ', 'Wan ', 'Han ',
+'You ', 'Cuo ', 'Jia ', 'Wang ', 'You ', 'Niu ', 'Shao ', 'Xian ', 'Lang ', 'Fu ', 'E ', 'Mo ', 'Wen ', 'Jie ', 'Nan ', 'Mu ',
+'Kan ', 'Lai ', 'Lian ', 'Shi ', 'Wo ', 'Usagi ', 'Lian ', 'Huo ', 'You ', 'Ying ', 'Ying ', 'Nuc ', 'Chun ', 'Mang ', 'Mang ', 'Ci ',
+'Wan ', 'Jing ', 'Di ', 'Qu ', 'Dong ', 'Jian ', 'Zou ', 'Gu ', 'La ', 'Lu ', 'Ju ', 'Wei ', 'Jun ', 'Nie ', 'Kun ', 'He ',
+'Pu ', 'Zi ', 'Gao ', 'Guo ', 'Fu ', 'Lun ', 'Chang ', 'Chou ', 'Song ', 'Chui ', 'Zhan ', 'Men ', 'Cai ', 'Ba ', 'Li ', 'Tu ',
+'Bo ', 'Han ', 'Bao ', 'Qin ', 'Juan ', 'Xi ', 'Qin ', 'Di ', 'Jie ', 'Pu ', 'Dang ', 'Jin ', 'Zhao ', 'Tai ', 'Geng ', 'Hua ',
+'Gu ', 'Ling ', 'Fei ', 'Jin ', 'An ', 'Wang ', 'Beng ', 'Zhou ', 'Yan ', 'Ju ', 'Jian ', 'Lin ', 'Tan ', 'Shu ', 'Tian ', 'Dao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x84.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x84.pm
new file mode 100644
index 0000000..27621b1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x84.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x84] = [
+'Hu ', 'Qi ', 'He ', 'Cui ', 'Tao ', 'Chun ', 'Bei ', 'Chang ', 'Huan ', 'Fei ', 'Lai ', 'Qi ', 'Meng ', 'Ping ', 'Wei ', 'Dan ',
+'Sha ', 'Huan ', 'Yan ', 'Yi ', 'Tiao ', 'Qi ', 'Wan ', 'Ce ', 'Nai ', 'Kutabireru ', 'Tuo ', 'Jiu ', 'Tie ', 'Luo ', qq{[?] }, qq{[?] },
+'Meng ', qq{[?] }, 'Yaji ', qq{[?] }, 'Ying ', 'Ying ', 'Ying ', 'Xiao ', 'Sa ', 'Qiu ', 'Ke ', 'Xiang ', 'Wan ', 'Yu ', 'Yu ', 'Fu ',
+'Lian ', 'Xuan ', 'Yuan ', 'Nan ', 'Ze ', 'Wo ', 'Chun ', 'Xiao ', 'Yu ', 'Pian ', 'Mao ', 'An ', 'E ', 'Luo ', 'Ying ', 'Huo ',
+'Gua ', 'Jiang ', 'Mian ', 'Zuo ', 'Zuo ', 'Ju ', 'Bao ', 'Rou ', 'Xi ', 'Xie ', 'An ', 'Qu ', 'Jian ', 'Fu ', 'Lu ', 'Jing ',
+'Pen ', 'Feng ', 'Hong ', 'Hong ', 'Hou ', 'Yan ', 'Tu ', 'Zhu ', 'Zi ', 'Xiang ', 'Shen ', 'Ge ', 'Jie ', 'Jing ', 'Mi ', 'Huang ',
+'Shen ', 'Pu ', 'Gai ', 'Dong ', 'Zhou ', 'Qian ', 'Wei ', 'Bo ', 'Wei ', 'Pa ', 'Ji ', 'Hu ', 'Zang ', 'Jia ', 'Duan ', 'Yao ',
+'Jun ', 'Cong ', 'Quan ', 'Wei ', 'Xian ', 'Kui ', 'Ting ', 'Hun ', 'Xi ', 'Shi ', 'Qi ', 'Lan ', 'Zong ', 'Yao ', 'Yuan ', 'Mei ',
+'Yun ', 'Shu ', 'Di ', 'Zhuan ', 'Guan ', 'Sukumo ', 'Xue ', 'Chan ', 'Kai ', 'Kui ', qq{[?] }, 'Jiang ', 'Lou ', 'Wei ', 'Pai ', qq{[?] },
+'Sou ', 'Yin ', 'Shi ', 'Chun ', 'Shi ', 'Yun ', 'Zhen ', 'Lang ', 'Nu ', 'Meng ', 'He ', 'Que ', 'Suan ', 'Yuan ', 'Li ', 'Ju ',
+'Xi ', 'Pang ', 'Chu ', 'Xu ', 'Tu ', 'Liu ', 'Wo ', 'Zhen ', 'Qian ', 'Zu ', 'Po ', 'Cuo ', 'Yuan ', 'Chu ', 'Yu ', 'Kuai ',
+'Pan ', 'Pu ', 'Pu ', 'Na ', 'Shuo ', 'Xi ', 'Fen ', 'Yun ', 'Zheng ', 'Jian ', 'Ji ', 'Ruo ', 'Cang ', 'En ', 'Mi ', 'Hao ',
+'Sun ', 'Zhen ', 'Ming ', 'Sou ', 'Xu ', 'Liu ', 'Xi ', 'Gu ', 'Lang ', 'Rong ', 'Weng ', 'Gai ', 'Cuo ', 'Shi ', 'Tang ', 'Luo ',
+'Ru ', 'Suo ', 'Xian ', 'Bei ', 'Yao ', 'Gui ', 'Bi ', 'Zong ', 'Gun ', 'Za ', 'Xiu ', 'Ce ', 'Hai ', 'Lan ', qq{[?] }, 'Ji ',
+'Li ', 'Can ', 'Lang ', 'Yu ', qq{[?] }, 'Ying ', 'Mo ', 'Diao ', 'Tiao ', 'Mao ', 'Tong ', 'Zhu ', 'Peng ', 'An ', 'Lian ', 'Cong ',
+'Xi ', 'Ping ', 'Qiu ', 'Jin ', 'Chun ', 'Jie ', 'Wei ', 'Tui ', 'Cao ', 'Yu ', 'Yi ', 'Ji ', 'Liao ', 'Bi ', 'Lu ', 'Su ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x85.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x85.pm
new file mode 100644
index 0000000..c14bcce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x85.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x85] = [
+'Bu ', 'Zhang ', 'Luo ', 'Jiang ', 'Man ', 'Yan ', 'Ling ', 'Ji ', 'Piao ', 'Gun ', 'Han ', 'Di ', 'Su ', 'Lu ', 'She ', 'Shang ',
+'Di ', 'Mie ', 'Xun ', 'Man ', 'Bo ', 'Di ', 'Cuo ', 'Zhe ', 'Sen ', 'Xuan ', 'Wei ', 'Hu ', 'Ao ', 'Mi ', 'Lou ', 'Cu ',
+'Zhong ', 'Cai ', 'Po ', 'Jiang ', 'Mi ', 'Cong ', 'Niao ', 'Hui ', 'Jun ', 'Yin ', 'Jian ', 'Yan ', 'Shu ', 'Yin ', 'Kui ', 'Chen ',
+'Hu ', 'Sha ', 'Kou ', 'Qian ', 'Ma ', 'Zang ', 'Sonoko ', 'Qiang ', 'Dou ', 'Lian ', 'Lin ', 'Kou ', 'Ai ', 'Bi ', 'Li ', 'Wei ',
+'Ji ', 'Xun ', 'Sheng ', 'Fan ', 'Meng ', 'Ou ', 'Chan ', 'Dian ', 'Xun ', 'Jiao ', 'Rui ', 'Rui ', 'Lei ', 'Yu ', 'Qiao ', 'Chu ',
+'Hua ', 'Jian ', 'Mai ', 'Yun ', 'Bao ', 'You ', 'Qu ', 'Lu ', 'Rao ', 'Hui ', 'E ', 'Teng ', 'Fei ', 'Jue ', 'Zui ', 'Fa ',
+'Ru ', 'Fen ', 'Kui ', 'Shun ', 'Rui ', 'Ya ', 'Xu ', 'Fu ', 'Jue ', 'Dang ', 'Wu ', 'Tong ', 'Si ', 'Xiao ', 'Xi ', 'Long ',
+'Yun ', qq{[?] }, 'Qi ', 'Jian ', 'Yun ', 'Sun ', 'Ling ', 'Yu ', 'Xia ', 'Yong ', 'Ji ', 'Hong ', 'Si ', 'Nong ', 'Lei ', 'Xuan ',
+'Yun ', 'Yu ', 'Xi ', 'Hao ', 'Bo ', 'Hao ', 'Ai ', 'Wei ', 'Hui ', 'Wei ', 'Ji ', 'Ci ', 'Xiang ', 'Luan ', 'Mie ', 'Yi ',
+'Leng ', 'Jiang ', 'Can ', 'Shen ', 'Qiang ', 'Lian ', 'Ke ', 'Yuan ', 'Da ', 'Ti ', 'Tang ', 'Xie ', 'Bi ', 'Zhan ', 'Sun ', 'Lian ',
+'Fan ', 'Ding ', 'Jie ', 'Gu ', 'Xie ', 'Shu ', 'Jian ', 'Kao ', 'Hong ', 'Sa ', 'Xin ', 'Xun ', 'Yao ', 'Hie ', 'Sou ', 'Shu ',
+'Xun ', 'Dui ', 'Pin ', 'Wei ', 'Neng ', 'Chou ', 'Mai ', 'Ru ', 'Piao ', 'Tai ', 'Qi ', 'Zao ', 'Chen ', 'Zhen ', 'Er ', 'Ni ',
+'Ying ', 'Gao ', 'Cong ', 'Xiao ', 'Qi ', 'Fa ', 'Jian ', 'Xu ', 'Kui ', 'Jie ', 'Bian ', 'Diao ', 'Mi ', 'Lan ', 'Jin ', 'Cang ',
+'Miao ', 'Qiong ', 'Qie ', 'Xian ', qq{[?] }, 'Ou ', 'Xian ', 'Su ', 'Lu ', 'Yi ', 'Xu ', 'Xie ', 'Li ', 'Yi ', 'La ', 'Lei ',
+'Xiao ', 'Di ', 'Zhi ', 'Bei ', 'Teng ', 'Yao ', 'Mo ', 'Huan ', 'Piao ', 'Fan ', 'Sou ', 'Tan ', 'Tui ', 'Qiong ', 'Qiao ', 'Wei ',
+'Liu ', 'Hui ', qq{[?] }, 'Gao ', 'Yun ', qq{[?] }, 'Li ', 'Shu ', 'Chu ', 'Ai ', 'Lin ', 'Zao ', 'Xuan ', 'Chen ', 'Lai ', 'Huo ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x86.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x86.pm
new file mode 100644
index 0000000..ce0dfbf
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x86.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x86] = [
+'Tuo ', 'Wu ', 'Rui ', 'Rui ', 'Qi ', 'Heng ', 'Lu ', 'Su ', 'Tui ', 'Mang ', 'Yun ', 'Pin ', 'Yu ', 'Xun ', 'Ji ', 'Jiong ',
+'Xian ', 'Mo ', 'Hagi ', 'Su ', 'Jiong ', qq{[?] }, 'Nie ', 'Bo ', 'Rang ', 'Yi ', 'Xian ', 'Yu ', 'Ju ', 'Lian ', 'Lian ', 'Yin ',
+'Qiang ', 'Ying ', 'Long ', 'Tong ', 'Wei ', 'Yue ', 'Ling ', 'Qu ', 'Yao ', 'Fan ', 'Mi ', 'Lan ', 'Kui ', 'Lan ', 'Ji ', 'Dang ',
+'Katsura ', 'Lei ', 'Lei ', 'Hua ', 'Feng ', 'Zhi ', 'Wei ', 'Kui ', 'Zhan ', 'Huai ', 'Li ', 'Ji ', 'Mi ', 'Lei ', 'Huai ', 'Luo ',
+'Ji ', 'Kui ', 'Lu ', 'Jian ', 'San ', qq{[?] }, 'Lei ', 'Quan ', 'Xiao ', 'Yi ', 'Luan ', 'Men ', 'Bie ', 'Hu ', 'Hu ', 'Lu ',
+'Nue ', 'Lu ', 'Si ', 'Xiao ', 'Qian ', 'Chu ', 'Hu ', 'Xu ', 'Cuo ', 'Fu ', 'Xu ', 'Xu ', 'Lu ', 'Hu ', 'Yu ', 'Hao ',
+'Jiao ', 'Ju ', 'Guo ', 'Bao ', 'Yan ', 'Zhan ', 'Zhan ', 'Kui ', 'Ban ', 'Xi ', 'Shu ', 'Chong ', 'Qiu ', 'Diao ', 'Ji ', 'Qiu ',
+'Cheng ', 'Shi ', qq{[?] }, 'Di ', 'Zhe ', 'She ', 'Yu ', 'Gan ', 'Zi ', 'Hong ', 'Hui ', 'Meng ', 'Ge ', 'Sui ', 'Xia ', 'Chai ',
+'Shi ', 'Yi ', 'Ma ', 'Xiang ', 'Fang ', 'E ', 'Pa ', 'Chi ', 'Qian ', 'Wen ', 'Wen ', 'Rui ', 'Bang ', 'Bi ', 'Yue ', 'Yue ',
+'Jun ', 'Qi ', 'Ran ', 'Yin ', 'Qi ', 'Tian ', 'Yuan ', 'Jue ', 'Hui ', 'Qin ', 'Qi ', 'Zhong ', 'Ya ', 'Ci ', 'Mu ', 'Wang ',
+'Fen ', 'Fen ', 'Hang ', 'Gong ', 'Zao ', 'Fu ', 'Ran ', 'Jie ', 'Fu ', 'Chi ', 'Dou ', 'Piao ', 'Xian ', 'Ni ', 'Te ', 'Qiu ',
+'You ', 'Zha ', 'Ping ', 'Chi ', 'You ', 'He ', 'Han ', 'Ju ', 'Li ', 'Fu ', 'Ran ', 'Zha ', 'Gou ', 'Pi ', 'Bo ', 'Xian ',
+'Zhu ', 'Diao ', 'Bie ', 'Bing ', 'Gu ', 'Ran ', 'Qu ', 'She ', 'Tie ', 'Ling ', 'Gu ', 'Dan ', 'Gu ', 'Ying ', 'Li ', 'Cheng ',
+'Qu ', 'Mou ', 'Ge ', 'Ci ', 'Hui ', 'Hui ', 'Mang ', 'Fu ', 'Yang ', 'Wa ', 'Lie ', 'Zhu ', 'Yi ', 'Xian ', 'Kuo ', 'Jiao ',
+'Li ', 'Yi ', 'Ping ', 'Ji ', 'Ha ', 'She ', 'Yi ', 'Wang ', 'Mo ', 'Qiong ', 'Qie ', 'Gui ', 'Gong ', 'Zhi ', 'Man ', 'Ebi ',
+'Zhi ', 'Jia ', 'Rao ', 'Si ', 'Qi ', 'Xing ', 'Lie ', 'Qiu ', 'Shao ', 'Yong ', 'Jia ', 'Shui ', 'Che ', 'Bai ', 'E ', 'Han ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x87.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x87.pm
new file mode 100644
index 0000000..b7bdba0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x87.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:33 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x87] = [
+'Shu ', 'Xuan ', 'Feng ', 'Shen ', 'Zhen ', 'Fu ', 'Xian ', 'Zhe ', 'Wu ', 'Fu ', 'Li ', 'Lang ', 'Bi ', 'Chu ', 'Yuan ', 'You ',
+'Jie ', 'Dan ', 'Yan ', 'Ting ', 'Dian ', 'Shui ', 'Hui ', 'Gua ', 'Zhi ', 'Song ', 'Fei ', 'Ju ', 'Mi ', 'Qi ', 'Qi ', 'Yu ',
+'Jun ', 'Zha ', 'Meng ', 'Qiang ', 'Si ', 'Xi ', 'Lun ', 'Li ', 'Die ', 'Tiao ', 'Tao ', 'Kun ', 'Gan ', 'Han ', 'Yu ', 'Bang ',
+'Fei ', 'Pi ', 'Wei ', 'Dun ', 'Yi ', 'Yuan ', 'Su ', 'Quan ', 'Qian ', 'Rui ', 'Ni ', 'Qing ', 'Wei ', 'Liang ', 'Guo ', 'Wan ',
+'Dong ', 'E ', 'Ban ', 'Di ', 'Wang ', 'Can ', 'Yang ', 'Ying ', 'Guo ', 'Chan ', qq{[?] }, 'La ', 'Ke ', 'Ji ', 'He ', 'Ting ',
+'Mai ', 'Xu ', 'Mian ', 'Yu ', 'Jie ', 'Shi ', 'Xuan ', 'Huang ', 'Yan ', 'Bian ', 'Rou ', 'Wei ', 'Fu ', 'Yuan ', 'Mei ', 'Wei ',
+'Fu ', 'Ruan ', 'Xie ', 'You ', 'Qiu ', 'Mao ', 'Xia ', 'Ying ', 'Shi ', 'Chong ', 'Tang ', 'Zhu ', 'Zong ', 'Ti ', 'Fu ', 'Yuan ',
+'Hui ', 'Meng ', 'La ', 'Du ', 'Hu ', 'Qiu ', 'Die ', 'Li ', 'Gua ', 'Yun ', 'Ju ', 'Nan ', 'Lou ', 'Qun ', 'Rong ', 'Ying ',
+'Jiang ', qq{[?] }, 'Lang ', 'Pang ', 'Si ', 'Xi ', 'Ci ', 'Xi ', 'Yuan ', 'Weng ', 'Lian ', 'Sou ', 'Ban ', 'Rong ', 'Rong ', 'Ji ',
+'Wu ', 'Qiu ', 'Han ', 'Qin ', 'Yi ', 'Bi ', 'Hua ', 'Tang ', 'Yi ', 'Du ', 'Nai ', 'He ', 'Hu ', 'Hui ', 'Ma ', 'Ming ',
+'Yi ', 'Wen ', 'Ying ', 'Teng ', 'Yu ', 'Cang ', 'So ', 'Ebi ', 'Man ', qq{[?] }, 'Shang ', 'Zhe ', 'Cao ', 'Chi ', 'Di ', 'Ao ',
+'Lu ', 'Wei ', 'Zhi ', 'Tang ', 'Chen ', 'Piao ', 'Qu ', 'Pi ', 'Yu ', 'Jian ', 'Luo ', 'Lou ', 'Qin ', 'Zhong ', 'Yin ', 'Jiang ',
+'Shuai ', 'Wen ', 'Jiao ', 'Wan ', 'Zhi ', 'Zhe ', 'Ma ', 'Ma ', 'Guo ', 'Liu ', 'Mao ', 'Xi ', 'Cong ', 'Li ', 'Man ', 'Xiao ',
+'Kamakiri ', 'Zhang ', 'Mang ', 'Xiang ', 'Mo ', 'Zui ', 'Si ', 'Qiu ', 'Te ', 'Zhi ', 'Peng ', 'Peng ', 'Jiao ', 'Qu ', 'Bie ', 'Liao ',
+'Pan ', 'Gui ', 'Xi ', 'Ji ', 'Zhuan ', 'Huang ', 'Fei ', 'Lao ', 'Jue ', 'Jue ', 'Hui ', 'Yin ', 'Chan ', 'Jiao ', 'Shan ', 'Rao ',
+'Xiao ', 'Mou ', 'Chong ', 'Xun ', 'Si ', qq{[?] }, 'Cheng ', 'Dang ', 'Li ', 'Xie ', 'Shan ', 'Yi ', 'Jing ', 'Da ', 'Chan ', 'Qi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x88.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x88.pm
new file mode 100644
index 0000000..bac740d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x88.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x88] = [
+'Ci ', 'Xiang ', 'She ', 'Luo ', 'Qin ', 'Ying ', 'Chai ', 'Li ', 'Ze ', 'Xuan ', 'Lian ', 'Zhu ', 'Ze ', 'Xie ', 'Mang ', 'Xie ',
+'Qi ', 'Rong ', 'Jian ', 'Meng ', 'Hao ', 'Ruan ', 'Huo ', 'Zhuo ', 'Jie ', 'Bin ', 'He ', 'Mie ', 'Fan ', 'Lei ', 'Jie ', 'La ',
+'Mi ', 'Li ', 'Chun ', 'Li ', 'Qiu ', 'Nie ', 'Lu ', 'Du ', 'Xiao ', 'Zhu ', 'Long ', 'Li ', 'Long ', 'Feng ', 'Ye ', 'Beng ',
+'Shang ', 'Gu ', 'Juan ', 'Ying ', qq{[?] }, 'Xi ', 'Can ', 'Qu ', 'Quan ', 'Du ', 'Can ', 'Man ', 'Jue ', 'Jie ', 'Zhu ', 'Zha ',
+'Xie ', 'Huang ', 'Niu ', 'Pei ', 'Nu ', 'Xin ', 'Zhong ', 'Mo ', 'Er ', 'Ke ', 'Mie ', 'Xi ', 'Xing ', 'Yan ', 'Kan ', 'Yuan ',
+qq{[?] }, 'Ling ', 'Xuan ', 'Shu ', 'Xian ', 'Tong ', 'Long ', 'Jie ', 'Xian ', 'Ya ', 'Hu ', 'Wei ', 'Dao ', 'Chong ', 'Wei ', 'Dao ',
+'Zhun ', 'Heng ', 'Qu ', 'Yi ', 'Yi ', 'Bu ', 'Gan ', 'Yu ', 'Biao ', 'Cha ', 'Yi ', 'Shan ', 'Chen ', 'Fu ', 'Gun ', 'Fen ',
+'Shuai ', 'Jie ', 'Na ', 'Zhong ', 'Dan ', 'Ri ', 'Zhong ', 'Zhong ', 'Xie ', 'Qi ', 'Xie ', 'Ran ', 'Zhi ', 'Ren ', 'Qin ', 'Jin ',
+'Jun ', 'Yuan ', 'Mei ', 'Chai ', 'Ao ', 'Niao ', 'Hui ', 'Ran ', 'Jia ', 'Tuo ', 'Ling ', 'Dai ', 'Bao ', 'Pao ', 'Yao ', 'Zuo ',
+'Bi ', 'Shao ', 'Tan ', 'Ju ', 'He ', 'Shu ', 'Xiu ', 'Zhen ', 'Yi ', 'Pa ', 'Bo ', 'Di ', 'Wa ', 'Fu ', 'Gun ', 'Zhi ',
+'Zhi ', 'Ran ', 'Pan ', 'Yi ', 'Mao ', 'Tuo ', 'Na ', 'Kou ', 'Xian ', 'Chan ', 'Qu ', 'Bei ', 'Gun ', 'Xi ', 'Ne ', 'Bo ',
+'Horo ', 'Fu ', 'Yi ', 'Chi ', 'Ku ', 'Ren ', 'Jiang ', 'Jia ', 'Cun ', 'Mo ', 'Jie ', 'Er ', 'Luo ', 'Ru ', 'Zhu ', 'Gui ',
+'Yin ', 'Cai ', 'Lie ', 'Kamishimo ', 'Yuki ', 'Zhuang ', 'Dang ', qq{[?] }, 'Kun ', 'Ken ', 'Niao ', 'Shu ', 'Jia ', 'Kun ', 'Cheng ', 'Li ',
+'Juan ', 'Shen ', 'Pou ', 'Ge ', 'Yi ', 'Yu ', 'Zhen ', 'Liu ', 'Qiu ', 'Qun ', 'Ji ', 'Yi ', 'Bu ', 'Zhuang ', 'Shui ', 'Sha ',
+'Qun ', 'Li ', 'Lian ', 'Lian ', 'Ku ', 'Jian ', 'Fou ', 'Chan ', 'Bi ', 'Gun ', 'Tao ', 'Yuan ', 'Ling ', 'Chi ', 'Chang ', 'Chou ',
+'Duo ', 'Biao ', 'Liang ', 'Chang ', 'Pei ', 'Pei ', 'Fei ', 'Yuan ', 'Luo ', 'Guo ', 'Yan ', 'Du ', 'Xi ', 'Zhi ', 'Ju ', 'Qi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x89.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x89.pm
new file mode 100644
index 0000000..65856cf
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x89.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x89] = [
+'Ji ', 'Zhi ', 'Gua ', 'Ken ', 'Che ', 'Ti ', 'Ti ', 'Fu ', 'Chong ', 'Xie ', 'Bian ', 'Die ', 'Kun ', 'Duan ', 'Xiu ', 'Xiu ',
+'He ', 'Yuan ', 'Bao ', 'Bao ', 'Fu ', 'Yu ', 'Tuan ', 'Yan ', 'Hui ', 'Bei ', 'Chu ', 'Lu ', 'Ena ', 'Hitoe ', 'Yun ', 'Da ',
+'Gou ', 'Da ', 'Huai ', 'Rong ', 'Yuan ', 'Ru ', 'Nai ', 'Jiong ', 'Suo ', 'Ban ', 'Tun ', 'Chi ', 'Sang ', 'Niao ', 'Ying ', 'Jie ',
+'Qian ', 'Huai ', 'Ku ', 'Lian ', 'Bao ', 'Li ', 'Zhe ', 'Shi ', 'Lu ', 'Yi ', 'Die ', 'Xie ', 'Xian ', 'Wei ', 'Biao ', 'Cao ',
+'Ji ', 'Jiang ', 'Sen ', 'Bao ', 'Xiang ', 'Chihaya ', 'Pu ', 'Jian ', 'Zhuan ', 'Jian ', 'Zui ', 'Ji ', 'Dan ', 'Za ', 'Fan ', 'Bo ',
+'Xiang ', 'Xin ', 'Bie ', 'Rao ', 'Man ', 'Lan ', 'Ao ', 'Duo ', 'Gui ', 'Cao ', 'Sui ', 'Nong ', 'Chan ', 'Lian ', 'Bi ', 'Jin ',
+'Dang ', 'Shu ', 'Tan ', 'Bi ', 'Lan ', 'Pu ', 'Ru ', 'Zhi ', qq{[?] }, 'Shu ', 'Wa ', 'Shi ', 'Bai ', 'Xie ', 'Bo ', 'Chen ',
+'Lai ', 'Long ', 'Xi ', 'Xian ', 'Lan ', 'Zhe ', 'Dai ', 'Tasuki ', 'Zan ', 'Shi ', 'Jian ', 'Pan ', 'Yi ', 'Ran ', 'Ya ', 'Xi ',
+'Xi ', 'Yao ', 'Feng ', 'Tan ', qq{[?] }, 'Biao ', 'Fu ', 'Ba ', 'He ', 'Ji ', 'Ji ', 'Jian ', 'Guan ', 'Bian ', 'Yan ', 'Gui ',
+'Jue ', 'Pian ', 'Mao ', 'Mi ', 'Mi ', 'Mie ', 'Shi ', 'Si ', 'Zhan ', 'Luo ', 'Jue ', 'Mi ', 'Tiao ', 'Lian ', 'Yao ', 'Zhi ',
+'Jun ', 'Xi ', 'Shan ', 'Wei ', 'Xi ', 'Tian ', 'Yu ', 'Lan ', 'E ', 'Du ', 'Qin ', 'Pang ', 'Ji ', 'Ming ', 'Ying ', 'Gou ',
+'Qu ', 'Zhan ', 'Jin ', 'Guan ', 'Deng ', 'Jian ', 'Luo ', 'Qu ', 'Jian ', 'Wei ', 'Jue ', 'Qu ', 'Luo ', 'Lan ', 'Shen ', 'Di ',
+'Guan ', 'Jian ', 'Guan ', 'Yan ', 'Gui ', 'Mi ', 'Shi ', 'Zhan ', 'Lan ', 'Jue ', 'Ji ', 'Xi ', 'Di ', 'Tian ', 'Yu ', 'Gou ',
+'Jin ', 'Qu ', 'Jiao ', 'Jiu ', 'Jin ', 'Cu ', 'Jue ', 'Zhi ', 'Chao ', 'Ji ', 'Gu ', 'Dan ', 'Zui ', 'Di ', 'Shang ', 'Hua ',
+'Quan ', 'Ge ', 'Chi ', 'Jie ', 'Gui ', 'Gong ', 'Hong ', 'Jie ', 'Hun ', 'Qiu ', 'Xing ', 'Su ', 'Ni ', 'Ji ', 'Lu ', 'Zhi ',
+'Zha ', 'Bi ', 'Xing ', 'Hu ', 'Shang ', 'Gong ', 'Zhi ', 'Xue ', 'Chu ', 'Xi ', 'Yi ', 'Lu ', 'Jue ', 'Xi ', 'Yan ', 'Xi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8a.pm
new file mode 100644
index 0000000..14bb510
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8a] = [
+'Yan ', 'Yan ', 'Ding ', 'Fu ', 'Qiu ', 'Qiu ', 'Jiao ', 'Hong ', 'Ji ', 'Fan ', 'Xun ', 'Diao ', 'Hong ', 'Cha ', 'Tao ', 'Xu ',
+'Jie ', 'Yi ', 'Ren ', 'Xun ', 'Yin ', 'Shan ', 'Qi ', 'Tuo ', 'Ji ', 'Xun ', 'Yin ', 'E ', 'Fen ', 'Ya ', 'Yao ', 'Song ',
+'Shen ', 'Yin ', 'Xin ', 'Jue ', 'Xiao ', 'Ne ', 'Chen ', 'You ', 'Zhi ', 'Xiong ', 'Fang ', 'Xin ', 'Chao ', 'She ', 'Xian ', 'Sha ',
+'Tun ', 'Xu ', 'Yi ', 'Yi ', 'Su ', 'Chi ', 'He ', 'Shen ', 'He ', 'Xu ', 'Zhen ', 'Zhu ', 'Zheng ', 'Gou ', 'Zi ', 'Zi ',
+'Zhan ', 'Gu ', 'Fu ', 'Quan ', 'Die ', 'Ling ', 'Di ', 'Yang ', 'Li ', 'Nao ', 'Pan ', 'Zhou ', 'Gan ', 'Yi ', 'Ju ', 'Ao ',
+'Zha ', 'Tuo ', 'Yi ', 'Qu ', 'Zhao ', 'Ping ', 'Bi ', 'Xiong ', 'Qu ', 'Ba ', 'Da ', 'Zu ', 'Tao ', 'Zhu ', 'Ci ', 'Zhe ',
+'Yong ', 'Xu ', 'Xun ', 'Yi ', 'Huang ', 'He ', 'Shi ', 'Cha ', 'Jiao ', 'Shi ', 'Hen ', 'Cha ', 'Gou ', 'Gui ', 'Quan ', 'Hui ',
+'Jie ', 'Hua ', 'Gai ', 'Xiang ', 'Wei ', 'Shen ', 'Chou ', 'Tong ', 'Mi ', 'Zhan ', 'Ming ', 'E ', 'Hui ', 'Yan ', 'Xiong ', 'Gua ',
+'Er ', 'Beng ', 'Tiao ', 'Chi ', 'Lei ', 'Zhu ', 'Kuang ', 'Kua ', 'Wu ', 'Yu ', 'Teng ', 'Ji ', 'Zhi ', 'Ren ', 'Su ', 'Lang ',
+'E ', 'Kuang ', 'E ', 'Shi ', 'Ting ', 'Dan ', 'Bo ', 'Chan ', 'You ', 'Heng ', 'Qiao ', 'Qin ', 'Shua ', 'An ', 'Yu ', 'Xiao ',
+'Cheng ', 'Jie ', 'Xian ', 'Wu ', 'Wu ', 'Gao ', 'Song ', 'Pu ', 'Hui ', 'Jing ', 'Shuo ', 'Zhen ', 'Shuo ', 'Du ', 'Yasashi ', 'Chang ',
+'Shui ', 'Jie ', 'Ke ', 'Qu ', 'Cong ', 'Xiao ', 'Sui ', 'Wang ', 'Xuan ', 'Fei ', 'Chi ', 'Ta ', 'Yi ', 'Na ', 'Yin ', 'Diao ',
+'Pi ', 'Chuo ', 'Chan ', 'Chen ', 'Zhun ', 'Ji ', 'Qi ', 'Tan ', 'Zhui ', 'Wei ', 'Ju ', 'Qing ', 'Jian ', 'Zheng ', 'Ze ', 'Zou ',
+'Qian ', 'Zhuo ', 'Liang ', 'Jian ', 'Zhu ', 'Hao ', 'Lun ', 'Shen ', 'Biao ', 'Huai ', 'Pian ', 'Yu ', 'Die ', 'Xu ', 'Pian ', 'Shi ',
+'Xuan ', 'Shi ', 'Hun ', 'Hua ', 'E ', 'Zhong ', 'Di ', 'Xie ', 'Fu ', 'Pu ', 'Ting ', 'Jian ', 'Qi ', 'Yu ', 'Zi ', 'Chuan ',
+'Xi ', 'Hui ', 'Yin ', 'An ', 'Xian ', 'Nan ', 'Chen ', 'Feng ', 'Zhu ', 'Yang ', 'Yan ', 'Heng ', 'Xuan ', 'Ge ', 'Nuo ', 'Qi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8b.pm
new file mode 100644
index 0000000..2f83f4a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8b] = [
+'Mou ', 'Ye ', 'Wei ', qq{[?] }, 'Teng ', 'Zou ', 'Shan ', 'Jian ', 'Bo ', 'Ku ', 'Huang ', 'Huo ', 'Ge ', 'Ying ', 'Mi ', 'Xiao ',
+'Mi ', 'Xi ', 'Qiang ', 'Chen ', 'Nue ', 'Ti ', 'Su ', 'Bang ', 'Chi ', 'Qian ', 'Shi ', 'Jiang ', 'Yuan ', 'Xie ', 'Xue ', 'Tao ',
+'Yao ', 'Yao ', qq{[?] }, 'Yu ', 'Biao ', 'Cong ', 'Qing ', 'Li ', 'Mo ', 'Mo ', 'Shang ', 'Zhe ', 'Miu ', 'Jian ', 'Ze ', 'Jie ',
+'Lian ', 'Lou ', 'Can ', 'Ou ', 'Guan ', 'Xi ', 'Zhuo ', 'Ao ', 'Ao ', 'Jin ', 'Zhe ', 'Yi ', 'Hu ', 'Jiang ', 'Man ', 'Chao ',
+'Han ', 'Hua ', 'Chan ', 'Xu ', 'Zeng ', 'Se ', 'Xi ', 'She ', 'Dui ', 'Zheng ', 'Nao ', 'Lan ', 'E ', 'Ying ', 'Jue ', 'Ji ',
+'Zun ', 'Jiao ', 'Bo ', 'Hui ', 'Zhuan ', 'Mu ', 'Zen ', 'Zha ', 'Shi ', 'Qiao ', 'Tan ', 'Zen ', 'Pu ', 'Sheng ', 'Xuan ', 'Zao ',
+'Tan ', 'Dang ', 'Sui ', 'Qian ', 'Ji ', 'Jiao ', 'Jing ', 'Lian ', 'Nou ', 'Yi ', 'Ai ', 'Zhan ', 'Pi ', 'Hui ', 'Hua ', 'Yi ',
+'Yi ', 'Shan ', 'Rang ', 'Nou ', 'Qian ', 'Zhui ', 'Ta ', 'Hu ', 'Zhou ', 'Hao ', 'Ye ', 'Ying ', 'Jian ', 'Yu ', 'Jian ', 'Hui ',
+'Du ', 'Zhe ', 'Xuan ', 'Zan ', 'Lei ', 'Shen ', 'Wei ', 'Chan ', 'Li ', 'Yi ', 'Bian ', 'Zhe ', 'Yan ', 'E ', 'Chou ', 'Wei ',
+'Chou ', 'Yao ', 'Chan ', 'Rang ', 'Yin ', 'Lan ', 'Chen ', 'Huo ', 'Zhe ', 'Huan ', 'Zan ', 'Yi ', 'Dang ', 'Zhan ', 'Yan ', 'Du ',
+'Yan ', 'Ji ', 'Ding ', 'Fu ', 'Ren ', 'Ji ', 'Jie ', 'Hong ', 'Tao ', 'Rang ', 'Shan ', 'Qi ', 'Tuo ', 'Xun ', 'Yi ', 'Xun ',
+'Ji ', 'Ren ', 'Jiang ', 'Hui ', 'Ou ', 'Ju ', 'Ya ', 'Ne ', 'Xu ', 'E ', 'Lun ', 'Xiong ', 'Song ', 'Feng ', 'She ', 'Fang ',
+'Jue ', 'Zheng ', 'Gu ', 'He ', 'Ping ', 'Zu ', 'Shi ', 'Xiong ', 'Zha ', 'Su ', 'Zhen ', 'Di ', 'Zou ', 'Ci ', 'Qu ', 'Zhao ',
+'Bi ', 'Yi ', 'Yi ', 'Kuang ', 'Lei ', 'Shi ', 'Gua ', 'Shi ', 'Jie ', 'Hui ', 'Cheng ', 'Zhu ', 'Shen ', 'Hua ', 'Dan ', 'Gou ',
+'Quan ', 'Gui ', 'Xun ', 'Yi ', 'Zheng ', 'Gai ', 'Xiang ', 'Cha ', 'Hun ', 'Xu ', 'Zhou ', 'Jie ', 'Wu ', 'Yu ', 'Qiao ', 'Wu ',
+'Gao ', 'You ', 'Hui ', 'Kuang ', 'Shuo ', 'Song ', 'Ai ', 'Qing ', 'Zhu ', 'Zou ', 'Nuo ', 'Du ', 'Zhuo ', 'Fei ', 'Ke ', 'Wei ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8c.pm
new file mode 100644
index 0000000..c550406
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8c] = [
+'Yu ', 'Shui ', 'Shen ', 'Diao ', 'Chan ', 'Liang ', 'Zhun ', 'Sui ', 'Tan ', 'Shen ', 'Yi ', 'Mou ', 'Chen ', 'Die ', 'Huang ', 'Jian ',
+'Xie ', 'Nue ', 'Ye ', 'Wei ', 'E ', 'Yu ', 'Xuan ', 'Chan ', 'Zi ', 'An ', 'Yan ', 'Di ', 'Mi ', 'Pian ', 'Xu ', 'Mo ',
+'Dang ', 'Su ', 'Xie ', 'Yao ', 'Bang ', 'Shi ', 'Qian ', 'Mi ', 'Jin ', 'Man ', 'Zhe ', 'Jian ', 'Miu ', 'Tan ', 'Zen ', 'Qiao ',
+'Lan ', 'Pu ', 'Jue ', 'Yan ', 'Qian ', 'Zhan ', 'Chen ', 'Gu ', 'Qian ', 'Hong ', 'Xia ', 'Jue ', 'Hong ', 'Han ', 'Hong ', 'Xi ',
+'Xi ', 'Huo ', 'Liao ', 'Han ', 'Du ', 'Long ', 'Dou ', 'Jiang ', 'Qi ', 'Shi ', 'Li ', 'Deng ', 'Wan ', 'Bi ', 'Shu ', 'Xian ',
+'Feng ', 'Zhi ', 'Zhi ', 'Yan ', 'Yan ', 'Shi ', 'Chu ', 'Hui ', 'Tun ', 'Yi ', 'Tun ', 'Yi ', 'Jian ', 'Ba ', 'Hou ', 'E ',
+'Cu ', 'Xiang ', 'Huan ', 'Jian ', 'Ken ', 'Gai ', 'Qu ', 'Fu ', 'Xi ', 'Bin ', 'Hao ', 'Yu ', 'Zhu ', 'Jia ', qq{[?] }, 'Xi ',
+'Bo ', 'Wen ', 'Huan ', 'Bin ', 'Di ', 'Zong ', 'Fen ', 'Yi ', 'Zhi ', 'Bao ', 'Chai ', 'Han ', 'Pi ', 'Na ', 'Pi ', 'Gou ',
+'Na ', 'You ', 'Diao ', 'Mo ', 'Si ', 'Xiu ', 'Huan ', 'Kun ', 'He ', 'He ', 'Mo ', 'Han ', 'Mao ', 'Li ', 'Ni ', 'Bi ',
+'Yu ', 'Jia ', 'Tuan ', 'Mao ', 'Pi ', 'Xi ', 'E ', 'Ju ', 'Mo ', 'Chu ', 'Tan ', 'Huan ', 'Jue ', 'Bei ', 'Zhen ', 'Yuan ',
+'Fu ', 'Cai ', 'Gong ', 'Te ', 'Yi ', 'Hang ', 'Wan ', 'Pin ', 'Huo ', 'Fan ', 'Tan ', 'Guan ', 'Ze ', 'Zhi ', 'Er ', 'Zhu ',
+'Shi ', 'Bi ', 'Zi ', 'Er ', 'Gui ', 'Pian ', 'Bian ', 'Mai ', 'Dai ', 'Sheng ', 'Kuang ', 'Fei ', 'Tie ', 'Yi ', 'Chi ', 'Mao ',
+'He ', 'Bi ', 'Lu ', 'Ren ', 'Hui ', 'Gai ', 'Pian ', 'Zi ', 'Jia ', 'Xu ', 'Zei ', 'Jiao ', 'Gai ', 'Zang ', 'Jian ', 'Ying ',
+'Xun ', 'Zhen ', 'She ', 'Bin ', 'Bin ', 'Qiu ', 'She ', 'Chuan ', 'Zang ', 'Zhou ', 'Lai ', 'Zan ', 'Si ', 'Chen ', 'Shang ', 'Tian ',
+'Pei ', 'Geng ', 'Xian ', 'Mai ', 'Jian ', 'Sui ', 'Fu ', 'Tan ', 'Cong ', 'Cong ', 'Zhi ', 'Ji ', 'Zhang ', 'Du ', 'Jin ', 'Xiong ',
+'Shun ', 'Yun ', 'Bao ', 'Zai ', 'Lai ', 'Feng ', 'Cang ', 'Ji ', 'Sheng ', 'Ai ', 'Zhuan ', 'Fu ', 'Gou ', 'Sai ', 'Ze ', 'Liao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8d.pm
new file mode 100644
index 0000000..7d06dac
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8d] = [
+'Wei ', 'Bai ', 'Chen ', 'Zhuan ', 'Zhi ', 'Zhui ', 'Biao ', 'Yun ', 'Zeng ', 'Tan ', 'Zan ', 'Yan ', qq{[?] }, 'Shan ', 'Wan ', 'Ying ',
+'Jin ', 'Gan ', 'Xian ', 'Zang ', 'Bi ', 'Du ', 'Shu ', 'Yan ', qq{[?] }, 'Xuan ', 'Long ', 'Gan ', 'Zang ', 'Bei ', 'Zhen ', 'Fu ',
+'Yuan ', 'Gong ', 'Cai ', 'Ze ', 'Xian ', 'Bai ', 'Zhang ', 'Huo ', 'Zhi ', 'Fan ', 'Tan ', 'Pin ', 'Bian ', 'Gou ', 'Zhu ', 'Guan ',
+'Er ', 'Jian ', 'Bi ', 'Shi ', 'Tie ', 'Gui ', 'Kuang ', 'Dai ', 'Mao ', 'Fei ', 'He ', 'Yi ', 'Zei ', 'Zhi ', 'Jia ', 'Hui ',
+'Zi ', 'Ren ', 'Lu ', 'Zang ', 'Zi ', 'Gai ', 'Jin ', 'Qiu ', 'Zhen ', 'Lai ', 'She ', 'Fu ', 'Du ', 'Ji ', 'Shu ', 'Shang ',
+'Si ', 'Bi ', 'Zhou ', 'Geng ', 'Pei ', 'Tan ', 'Lai ', 'Feng ', 'Zhui ', 'Fu ', 'Zhuan ', 'Sai ', 'Ze ', 'Yan ', 'Zan ', 'Yun ',
+'Zeng ', 'Shan ', 'Ying ', 'Gan ', 'Chi ', 'Xi ', 'She ', 'Nan ', 'Xiong ', 'Xi ', 'Cheng ', 'He ', 'Cheng ', 'Zhe ', 'Xia ', 'Tang ',
+'Zou ', 'Zou ', 'Li ', 'Jiu ', 'Fu ', 'Zhao ', 'Gan ', 'Qi ', 'Shan ', 'Qiong ', 'Qin ', 'Xian ', 'Ci ', 'Jue ', 'Qin ', 'Chi ',
+'Ci ', 'Chen ', 'Chen ', 'Die ', 'Ju ', 'Chao ', 'Di ', 'Se ', 'Zhan ', 'Zhu ', 'Yue ', 'Qu ', 'Jie ', 'Chi ', 'Chu ', 'Gua ',
+'Xue ', 'Ci ', 'Tiao ', 'Duo ', 'Lie ', 'Gan ', 'Suo ', 'Cu ', 'Xi ', 'Zhao ', 'Su ', 'Yin ', 'Ju ', 'Jian ', 'Que ', 'Tang ',
+'Chuo ', 'Cui ', 'Lu ', 'Qu ', 'Dang ', 'Qiu ', 'Zi ', 'Ti ', 'Qu ', 'Chi ', 'Huang ', 'Qiao ', 'Qiao ', 'Yao ', 'Zao ', 'Ti ',
+qq{[?] }, 'Zan ', 'Zan ', 'Zu ', 'Pa ', 'Bao ', 'Ku ', 'Ke ', 'Dun ', 'Jue ', 'Fu ', 'Chen ', 'Jian ', 'Fang ', 'Zhi ', 'Sa ',
+'Yue ', 'Pa ', 'Qi ', 'Yue ', 'Qiang ', 'Tuo ', 'Tai ', 'Yi ', 'Nian ', 'Ling ', 'Mei ', 'Ba ', 'Die ', 'Ku ', 'Tuo ', 'Jia ',
+'Ci ', 'Pao ', 'Qia ', 'Zhu ', 'Ju ', 'Die ', 'Zhi ', 'Fu ', 'Pan ', 'Ju ', 'Shan ', 'Bo ', 'Ni ', 'Ju ', 'Li ', 'Gen ',
+'Yi ', 'Ji ', 'Dai ', 'Xian ', 'Jiao ', 'Duo ', 'Zhu ', 'Zhuan ', 'Kua ', 'Zhuai ', 'Gui ', 'Qiong ', 'Kui ', 'Xiang ', 'Chi ', 'Lu ',
+'Beng ', 'Zhi ', 'Jia ', 'Tiao ', 'Cai ', 'Jian ', 'Ta ', 'Qiao ', 'Bi ', 'Xian ', 'Duo ', 'Ji ', 'Ju ', 'Ji ', 'Shu ', 'Tu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8e.pm
new file mode 100644
index 0000000..b4fd23e
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8e] = [
+'Chu ', 'Jing ', 'Nie ', 'Xiao ', 'Bo ', 'Chi ', 'Qun ', 'Mou ', 'Shu ', 'Lang ', 'Yong ', 'Jiao ', 'Chou ', 'Qiao ', qq{[?] }, 'Ta ',
+'Jian ', 'Qi ', 'Wo ', 'Wei ', 'Zhuo ', 'Jie ', 'Ji ', 'Nie ', 'Ju ', 'Ju ', 'Lun ', 'Lu ', 'Leng ', 'Huai ', 'Ju ', 'Chi ',
+'Wan ', 'Quan ', 'Ti ', 'Bo ', 'Zu ', 'Qie ', 'Ji ', 'Cu ', 'Zong ', 'Cai ', 'Zong ', 'Peng ', 'Zhi ', 'Zheng ', 'Dian ', 'Zhi ',
+'Yu ', 'Duo ', 'Dun ', 'Chun ', 'Yong ', 'Zhong ', 'Di ', 'Zhe ', 'Chen ', 'Chuai ', 'Jian ', 'Gua ', 'Tang ', 'Ju ', 'Fu ', 'Zu ',
+'Die ', 'Pian ', 'Rou ', 'Nuo ', 'Ti ', 'Cha ', 'Tui ', 'Jian ', 'Dao ', 'Cuo ', 'Xi ', 'Ta ', 'Qiang ', 'Zhan ', 'Dian ', 'Ti ',
+'Ji ', 'Nie ', 'Man ', 'Liu ', 'Zhan ', 'Bi ', 'Chong ', 'Lu ', 'Liao ', 'Cu ', 'Tang ', 'Dai ', 'Suo ', 'Xi ', 'Kui ', 'Ji ',
+'Zhi ', 'Qiang ', 'Di ', 'Man ', 'Zong ', 'Lian ', 'Beng ', 'Zao ', 'Nian ', 'Bie ', 'Tui ', 'Ju ', 'Deng ', 'Ceng ', 'Xian ', 'Fan ',
+'Chu ', 'Zhong ', 'Dun ', 'Bo ', 'Cu ', 'Zu ', 'Jue ', 'Jue ', 'Lin ', 'Ta ', 'Qiao ', 'Qiao ', 'Pu ', 'Liao ', 'Dun ', 'Cuan ',
+'Kuang ', 'Zao ', 'Ta ', 'Bi ', 'Bi ', 'Zhu ', 'Ju ', 'Chu ', 'Qiao ', 'Dun ', 'Chou ', 'Ji ', 'Wu ', 'Yue ', 'Nian ', 'Lin ',
+'Lie ', 'Zhi ', 'Li ', 'Zhi ', 'Chan ', 'Chu ', 'Duan ', 'Wei ', 'Long ', 'Lin ', 'Xian ', 'Wei ', 'Zuan ', 'Lan ', 'Xie ', 'Rang ',
+'Xie ', 'Nie ', 'Ta ', 'Qu ', 'Jie ', 'Cuan ', 'Zuan ', 'Xi ', 'Kui ', 'Jue ', 'Lin ', 'Shen ', 'Gong ', 'Dan ', 'Segare ', 'Qu ',
+'Ti ', 'Duo ', 'Duo ', 'Gong ', 'Lang ', 'Nerau ', 'Luo ', 'Ai ', 'Ji ', 'Ju ', 'Tang ', 'Utsuke ', qq{[?] }, 'Yan ', 'Shitsuke ', 'Kang ',
+'Qu ', 'Lou ', 'Lao ', 'Tuo ', 'Zhi ', 'Yagate ', 'Ti ', 'Dao ', 'Yagate ', 'Yu ', 'Che ', 'Ya ', 'Gui ', 'Jun ', 'Wei ', 'Yue ',
+'Xin ', 'Di ', 'Xuan ', 'Fan ', 'Ren ', 'Shan ', 'Qiang ', 'Shu ', 'Tun ', 'Chen ', 'Dai ', 'E ', 'Na ', 'Qi ', 'Mao ', 'Ruan ',
+'Ren ', 'Fan ', 'Zhuan ', 'Hong ', 'Hu ', 'Qu ', 'Huang ', 'Di ', 'Ling ', 'Dai ', 'Ao ', 'Zhen ', 'Fan ', 'Kuang ', 'Ang ', 'Peng ',
+'Bei ', 'Gu ', 'Ku ', 'Pao ', 'Zhu ', 'Rong ', 'E ', 'Ba ', 'Zhou ', 'Zhi ', 'Yao ', 'Ke ', 'Yi ', 'Qing ', 'Shi ', 'Ping ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8f.pm
new file mode 100644
index 0000000..2996ad6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x8f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x8f] = [
+'Er ', 'Qiong ', 'Ju ', 'Jiao ', 'Guang ', 'Lu ', 'Kai ', 'Quan ', 'Zhou ', 'Zai ', 'Zhi ', 'She ', 'Liang ', 'Yu ', 'Shao ', 'You ',
+'Huan ', 'Yun ', 'Zhe ', 'Wan ', 'Fu ', 'Qing ', 'Zhou ', 'Ni ', 'Ling ', 'Zhe ', 'Zhan ', 'Liang ', 'Zi ', 'Hui ', 'Wang ', 'Chuo ',
+'Guo ', 'Kan ', 'Yi ', 'Peng ', 'Qian ', 'Gun ', 'Nian ', 'Pian ', 'Guan ', 'Bei ', 'Lun ', 'Pai ', 'Liang ', 'Ruan ', 'Rou ', 'Ji ',
+'Yang ', 'Xian ', 'Chuan ', 'Cou ', 'Qun ', 'Ge ', 'You ', 'Hong ', 'Shu ', 'Fu ', 'Zi ', 'Fu ', 'Wen ', 'Ben ', 'Zhan ', 'Yu ',
+'Wen ', 'Tao ', 'Gu ', 'Zhen ', 'Xia ', 'Yuan ', 'Lu ', 'Jiu ', 'Chao ', 'Zhuan ', 'Wei ', 'Hun ', 'Sori ', 'Che ', 'Jiao ', 'Zhan ',
+'Pu ', 'Lao ', 'Fen ', 'Fan ', 'Lin ', 'Ge ', 'Se ', 'Kan ', 'Huan ', 'Yi ', 'Ji ', 'Dui ', 'Er ', 'Yu ', 'Xian ', 'Hong ',
+'Lei ', 'Pei ', 'Li ', 'Li ', 'Lu ', 'Lin ', 'Che ', 'Ya ', 'Gui ', 'Xuan ', 'Di ', 'Ren ', 'Zhuan ', 'E ', 'Lun ', 'Ruan ',
+'Hong ', 'Ku ', 'Ke ', 'Lu ', 'Zhou ', 'Zhi ', 'Yi ', 'Hu ', 'Zhen ', 'Li ', 'Yao ', 'Qing ', 'Shi ', 'Zai ', 'Zhi ', 'Jiao ',
+'Zhou ', 'Quan ', 'Lu ', 'Jiao ', 'Zhe ', 'Fu ', 'Liang ', 'Nian ', 'Bei ', 'Hui ', 'Gun ', 'Wang ', 'Liang ', 'Chuo ', 'Zi ', 'Cou ',
+'Fu ', 'Ji ', 'Wen ', 'Shu ', 'Pei ', 'Yuan ', 'Xia ', 'Zhan ', 'Lu ', 'Che ', 'Lin ', 'Xin ', 'Gu ', 'Ci ', 'Ci ', 'Pi ',
+'Zui ', 'Bian ', 'La ', 'La ', 'Ci ', 'Xue ', 'Ban ', 'Bian ', 'Bian ', 'Bian ', qq{[?] }, 'Bian ', 'Ban ', 'Ci ', 'Bian ', 'Bian ',
+'Chen ', 'Ru ', 'Nong ', 'Nong ', 'Zhen ', 'Chuo ', 'Chuo ', 'Suberu ', 'Reng ', 'Bian ', 'Bian ', 'Sip ', 'Ip ', 'Liao ', 'Da ', 'Chan ',
+'Gan ', 'Qian ', 'Yu ', 'Yu ', 'Qi ', 'Xun ', 'Yi ', 'Guo ', 'Mai ', 'Qi ', 'Za ', 'Wang ', 'Jia ', 'Zhun ', 'Ying ', 'Ti ',
+'Yun ', 'Jin ', 'Hang ', 'Ya ', 'Fan ', 'Wu ', 'Da ', 'E ', 'Huan ', 'Zhe ', 'Totemo ', 'Jin ', 'Yuan ', 'Wei ', 'Lian ', 'Chi ',
+'Che ', 'Ni ', 'Tiao ', 'Zhi ', 'Yi ', 'Jiong ', 'Jia ', 'Chen ', 'Dai ', 'Er ', 'Di ', 'Po ', 'Wang ', 'Die ', 'Ze ', 'Tao ',
+'Shu ', 'Tuo ', 'Kep ', 'Jing ', 'Hui ', 'Tong ', 'You ', 'Mi ', 'Beng ', 'Ji ', 'Nai ', 'Yi ', 'Jie ', 'Zhui ', 'Lie ', 'Xun ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x90.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x90.pm
new file mode 100644
index 0000000..a603cc7
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x90.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:34 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x90] = [
+'Tui ', 'Song ', 'Gua ', 'Tao ', 'Pang ', 'Hou ', 'Ni ', 'Dun ', 'Jiong ', 'Xuan ', 'Xun ', 'Bu ', 'You ', 'Xiao ', 'Qiu ', 'Tou ',
+'Zhu ', 'Qiu ', 'Di ', 'Di ', 'Tu ', 'Jing ', 'Ti ', 'Dou ', 'Yi ', 'Zhe ', 'Tong ', 'Guang ', 'Wu ', 'Shi ', 'Cheng ', 'Su ',
+'Zao ', 'Qun ', 'Feng ', 'Lian ', 'Suo ', 'Hui ', 'Li ', 'Sako ', 'Lai ', 'Ben ', 'Cuo ', 'Jue ', 'Beng ', 'Huan ', 'Dai ', 'Lu ',
+'You ', 'Zhou ', 'Jin ', 'Yu ', 'Chuo ', 'Kui ', 'Wei ', 'Ti ', 'Yi ', 'Da ', 'Yuan ', 'Luo ', 'Bi ', 'Nuo ', 'Yu ', 'Dang ',
+'Sui ', 'Dun ', 'Sui ', 'Yan ', 'Chuan ', 'Chi ', 'Ti ', 'Yu ', 'Shi ', 'Zhen ', 'You ', 'Yun ', 'E ', 'Bian ', 'Guo ', 'E ',
+'Xia ', 'Huang ', 'Qiu ', 'Dao ', 'Da ', 'Wei ', 'Appare ', 'Yi ', 'Gou ', 'Yao ', 'Chu ', 'Liu ', 'Xun ', 'Ta ', 'Di ', 'Chi ',
+'Yuan ', 'Su ', 'Ta ', 'Qian ', qq{[?] }, 'Yao ', 'Guan ', 'Zhang ', 'Ao ', 'Shi ', 'Ce ', 'Chi ', 'Su ', 'Zao ', 'Zhe ', 'Dun ',
+'Di ', 'Lou ', 'Chi ', 'Cuo ', 'Lin ', 'Zun ', 'Rao ', 'Qian ', 'Xuan ', 'Yu ', 'Yi ', 'Wu ', 'Liao ', 'Ju ', 'Shi ', 'Bi ',
+'Yao ', 'Mai ', 'Xie ', 'Sui ', 'Huan ', 'Zhan ', 'Teng ', 'Er ', 'Miao ', 'Bian ', 'Bian ', 'La ', 'Li ', 'Yuan ', 'Yao ', 'Luo ',
+'Li ', 'Yi ', 'Ting ', 'Deng ', 'Qi ', 'Yong ', 'Shan ', 'Han ', 'Yu ', 'Mang ', 'Ru ', 'Qiong ', qq{[?] }, 'Kuang ', 'Fu ', 'Kang ',
+'Bin ', 'Fang ', 'Xing ', 'Na ', 'Xin ', 'Shen ', 'Bang ', 'Yuan ', 'Cun ', 'Huo ', 'Xie ', 'Bang ', 'Wu ', 'Ju ', 'You ', 'Han ',
+'Tai ', 'Qiu ', 'Bi ', 'Pei ', 'Bing ', 'Shao ', 'Bei ', 'Wa ', 'Di ', 'Zou ', 'Ye ', 'Lin ', 'Kuang ', 'Gui ', 'Zhu ', 'Shi ',
+'Ku ', 'Yu ', 'Gai ', 'Ge ', 'Xi ', 'Zhi ', 'Ji ', 'Xun ', 'Hou ', 'Xing ', 'Jiao ', 'Xi ', 'Gui ', 'Nuo ', 'Lang ', 'Jia ',
+'Kuai ', 'Zheng ', 'Otoko ', 'Yun ', 'Yan ', 'Cheng ', 'Dou ', 'Chi ', 'Lu ', 'Fu ', 'Wu ', 'Fu ', 'Gao ', 'Hao ', 'Lang ', 'Jia ',
+'Geng ', 'Jun ', 'Ying ', 'Bo ', 'Xi ', 'Bei ', 'Li ', 'Yun ', 'Bu ', 'Xiao ', 'Qi ', 'Pi ', 'Qing ', 'Guo ', 'Zhou ', 'Tan ',
+'Zou ', 'Ping ', 'Lai ', 'Ni ', 'Chen ', 'You ', 'Bu ', 'Xiang ', 'Dan ', 'Ju ', 'Yong ', 'Qiao ', 'Yi ', 'Du ', 'Yan ', 'Mei ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x91.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x91.pm
new file mode 100644
index 0000000..44a7904
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x91.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x91] = [
+'Ruo ', 'Bei ', 'E ', 'Yu ', 'Juan ', 'Yu ', 'Yun ', 'Hou ', 'Kui ', 'Xiang ', 'Xiang ', 'Sou ', 'Tang ', 'Ming ', 'Xi ', 'Ru ',
+'Chu ', 'Zi ', 'Zou ', 'Ju ', 'Wu ', 'Xiang ', 'Yun ', 'Hao ', 'Yong ', 'Bi ', 'Mo ', 'Chao ', 'Fu ', 'Liao ', 'Yin ', 'Zhuan ',
+'Hu ', 'Qiao ', 'Yan ', 'Zhang ', 'Fan ', 'Qiao ', 'Xu ', 'Deng ', 'Bi ', 'Xin ', 'Bi ', 'Ceng ', 'Wei ', 'Zheng ', 'Mao ', 'Shan ',
+'Lin ', 'Po ', 'Dan ', 'Meng ', 'Ye ', 'Cao ', 'Kuai ', 'Feng ', 'Meng ', 'Zou ', 'Kuang ', 'Lian ', 'Zan ', 'Chan ', 'You ', 'Qi ',
+'Yan ', 'Chan ', 'Zan ', 'Ling ', 'Huan ', 'Xi ', 'Feng ', 'Zan ', 'Li ', 'You ', 'Ding ', 'Qiu ', 'Zhuo ', 'Pei ', 'Zhou ', 'Yi ',
+'Hang ', 'Yu ', 'Jiu ', 'Yan ', 'Zui ', 'Mao ', 'Dan ', 'Xu ', 'Tou ', 'Zhen ', 'Fen ', 'Sakenomoto ', qq{[?] }, 'Yun ', 'Tai ', 'Tian ',
+'Qia ', 'Tuo ', 'Zuo ', 'Han ', 'Gu ', 'Su ', 'Po ', 'Chou ', 'Zai ', 'Ming ', 'Luo ', 'Chuo ', 'Chou ', 'You ', 'Tong ', 'Zhi ',
+'Xian ', 'Jiang ', 'Cheng ', 'Yin ', 'Tu ', 'Xiao ', 'Mei ', 'Ku ', 'Suan ', 'Lei ', 'Pu ', 'Zui ', 'Hai ', 'Yan ', 'Xi ', 'Niang ',
+'Wei ', 'Lu ', 'Lan ', 'Yan ', 'Tao ', 'Pei ', 'Zhan ', 'Chun ', 'Tan ', 'Zui ', 'Chuo ', 'Cu ', 'Kun ', 'Ti ', 'Mian ', 'Du ',
+'Hu ', 'Xu ', 'Xing ', 'Tan ', 'Jiu ', 'Chun ', 'Yun ', 'Po ', 'Ke ', 'Sou ', 'Mi ', 'Quan ', 'Chou ', 'Cuo ', 'Yun ', 'Yong ',
+'Ang ', 'Zha ', 'Hai ', 'Tang ', 'Jiang ', 'Piao ', 'Shan ', 'Yu ', 'Li ', 'Zao ', 'Lao ', 'Yi ', 'Jiang ', 'Pu ', 'Jiao ', 'Xi ',
+'Tan ', 'Po ', 'Nong ', 'Yi ', 'Li ', 'Ju ', 'Jiao ', 'Yi ', 'Niang ', 'Ru ', 'Xun ', 'Chou ', 'Yan ', 'Ling ', 'Mi ', 'Mi ',
+'Niang ', 'Xin ', 'Jiao ', 'Xi ', 'Mi ', 'Yan ', 'Bian ', 'Cai ', 'Shi ', 'You ', 'Shi ', 'Shi ', 'Li ', 'Zhong ', 'Ye ', 'Liang ',
+'Li ', 'Jin ', 'Jin ', 'Qiu ', 'Yi ', 'Diao ', 'Dao ', 'Zhao ', 'Ding ', 'Po ', 'Qiu ', 'He ', 'Fu ', 'Zhen ', 'Zhi ', 'Ba ',
+'Luan ', 'Fu ', 'Nai ', 'Diao ', 'Shan ', 'Qiao ', 'Kou ', 'Chuan ', 'Zi ', 'Fan ', 'Yu ', 'Hua ', 'Han ', 'Gong ', 'Qi ', 'Mang ',
+'Ri ', 'Di ', 'Si ', 'Xi ', 'Yi ', 'Chai ', 'Shi ', 'Tu ', 'Xi ', 'Nu ', 'Qian ', 'Ishiyumi ', 'Jian ', 'Pi ', 'Ye ', 'Yin ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x92.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x92.pm
new file mode 100644
index 0000000..fd82934
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x92.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x92] = [
+'Ba ', 'Fang ', 'Chen ', 'Xing ', 'Tou ', 'Yue ', 'Yan ', 'Fu ', 'Pi ', 'Na ', 'Xin ', 'E ', 'Jue ', 'Dun ', 'Gou ', 'Yin ',
+'Qian ', 'Ban ', 'Ji ', 'Ren ', 'Chao ', 'Niu ', 'Fen ', 'Yun ', 'Ji ', 'Qin ', 'Pi ', 'Guo ', 'Hong ', 'Yin ', 'Jun ', 'Shi ',
+'Yi ', 'Zhong ', 'Nie ', 'Gai ', 'Ri ', 'Huo ', 'Tai ', 'Kang ', 'Habaki ', 'Irori ', 'Ngaak ', qq{[?] }, 'Duo ', 'Zi ', 'Ni ', 'Tu ',
+'Shi ', 'Min ', 'Gu ', 'E ', 'Ling ', 'Bing ', 'Yi ', 'Gu ', 'Ba ', 'Pi ', 'Yu ', 'Si ', 'Zuo ', 'Bu ', 'You ', 'Dian ',
+'Jia ', 'Zhen ', 'Shi ', 'Shi ', 'Tie ', 'Ju ', 'Zhan ', 'Shi ', 'She ', 'Xuan ', 'Zhao ', 'Bao ', 'He ', 'Bi ', 'Sheng ', 'Chu ',
+'Shi ', 'Bo ', 'Zhu ', 'Chi ', 'Za ', 'Po ', 'Tong ', 'Qian ', 'Fu ', 'Zhai ', 'Liu ', 'Qian ', 'Fu ', 'Li ', 'Yue ', 'Pi ',
+'Yang ', 'Ban ', 'Bo ', 'Jie ', 'Gou ', 'Shu ', 'Zheng ', 'Mu ', 'Ni ', 'Nie ', 'Di ', 'Jia ', 'Mu ', 'Dan ', 'Shen ', 'Yi ',
+'Si ', 'Kuang ', 'Ka ', 'Bei ', 'Jian ', 'Tong ', 'Xing ', 'Hong ', 'Jiao ', 'Chi ', 'Er ', 'Ge ', 'Bing ', 'Shi ', 'Mou ', 'Jia ',
+'Yin ', 'Jun ', 'Zhou ', 'Chong ', 'Shang ', 'Tong ', 'Mo ', 'Lei ', 'Ji ', 'Yu ', 'Xu ', 'Ren ', 'Zun ', 'Zhi ', 'Qiong ', 'Shan ',
+'Chi ', 'Xian ', 'Xing ', 'Quan ', 'Pi ', 'Tie ', 'Zhu ', 'Hou ', 'Ming ', 'Kua ', 'Yao ', 'Xian ', 'Xian ', 'Xiu ', 'Jun ', 'Cha ',
+'Lao ', 'Ji ', 'Pi ', 'Ru ', 'Mi ', 'Yi ', 'Yin ', 'Guang ', 'An ', 'Diou ', 'You ', 'Se ', 'Kao ', 'Qian ', 'Luan ', 'Kasugai ',
+'Ai ', 'Diao ', 'Han ', 'Rui ', 'Shi ', 'Keng ', 'Qiu ', 'Xiao ', 'Zhe ', 'Xiu ', 'Zang ', 'Ti ', 'Cuo ', 'Gua ', 'Gong ', 'Zhong ',
+'Dou ', 'Lu ', 'Mei ', 'Lang ', 'Wan ', 'Xin ', 'Yun ', 'Bei ', 'Wu ', 'Su ', 'Yu ', 'Chan ', 'Ting ', 'Bo ', 'Han ', 'Jia ',
+'Hong ', 'Cuan ', 'Feng ', 'Chan ', 'Wan ', 'Zhi ', 'Si ', 'Xuan ', 'Wu ', 'Wu ', 'Tiao ', 'Gong ', 'Zhuo ', 'Lue ', 'Xing ', 'Qian ',
+'Shen ', 'Han ', 'Lue ', 'Xie ', 'Chu ', 'Zheng ', 'Ju ', 'Xian ', 'Tie ', 'Mang ', 'Pu ', 'Li ', 'Pan ', 'Rui ', 'Cheng ', 'Gao ',
+'Li ', 'Te ', 'Pyeng ', 'Zhu ', qq{[?] }, 'Tu ', 'Liu ', 'Zui ', 'Ju ', 'Chang ', 'Yuan ', 'Jian ', 'Gang ', 'Diao ', 'Tao ', 'Chang ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x93.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x93.pm
new file mode 100644
index 0000000..b2bd67d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x93.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x93] = [
+'Lun ', 'Kua ', 'Ling ', 'Bei ', 'Lu ', 'Li ', 'Qiang ', 'Pou ', 'Juan ', 'Min ', 'Zui ', 'Peng ', 'An ', 'Pi ', 'Xian ', 'Ya ',
+'Zhui ', 'Lei ', 'A ', 'Kong ', 'Ta ', 'Kun ', 'Du ', 'Wei ', 'Chui ', 'Zi ', 'Zheng ', 'Ben ', 'Nie ', 'Cong ', 'Qun ', 'Tan ',
+'Ding ', 'Qi ', 'Qian ', 'Zhuo ', 'Qi ', 'Yu ', 'Jin ', 'Guan ', 'Mao ', 'Chang ', 'Tian ', 'Xi ', 'Lian ', 'Tao ', 'Gu ', 'Cuo ',
+'Shu ', 'Zhen ', 'Lu ', 'Meng ', 'Lu ', 'Hua ', 'Biao ', 'Ga ', 'Lai ', 'Ken ', 'Kazari ', 'Bu ', 'Nai ', 'Wan ', 'Zan ', qq{[?] },
+'De ', 'Xian ', qq{[?] }, 'Huo ', 'Liang ', qq{[?] }, 'Men ', 'Kai ', 'Ying ', 'Di ', 'Lian ', 'Guo ', 'Xian ', 'Du ', 'Tu ', 'Wei ',
+'Cong ', 'Fu ', 'Rou ', 'Ji ', 'E ', 'Rou ', 'Chen ', 'Ti ', 'Zha ', 'Hong ', 'Yang ', 'Duan ', 'Xia ', 'Yu ', 'Keng ', 'Xing ',
+'Huang ', 'Wei ', 'Fu ', 'Zhao ', 'Cha ', 'Qie ', 'She ', 'Hong ', 'Kui ', 'Tian ', 'Mou ', 'Qiao ', 'Qiao ', 'Hou ', 'Tou ', 'Cong ',
+'Huan ', 'Ye ', 'Min ', 'Jian ', 'Duan ', 'Jian ', 'Song ', 'Kui ', 'Hu ', 'Xuan ', 'Duo ', 'Jie ', 'Zhen ', 'Bian ', 'Zhong ', 'Zi ',
+'Xiu ', 'Ye ', 'Mei ', 'Pai ', 'Ai ', 'Jie ', qq{[?] }, 'Mei ', 'Chuo ', 'Ta ', 'Bang ', 'Xia ', 'Lian ', 'Suo ', 'Xi ', 'Liu ',
+'Zu ', 'Ye ', 'Nou ', 'Weng ', 'Rong ', 'Tang ', 'Suo ', 'Qiang ', 'Ge ', 'Shuo ', 'Chui ', 'Bo ', 'Pan ', 'Sa ', 'Bi ', 'Sang ',
+'Gang ', 'Zi ', 'Wu ', 'Ying ', 'Huang ', 'Tiao ', 'Liu ', 'Kai ', 'Sun ', 'Sha ', 'Sou ', 'Wan ', 'Hao ', 'Zhen ', 'Zhen ', 'Luo ',
+'Yi ', 'Yuan ', 'Tang ', 'Nie ', 'Xi ', 'Jia ', 'Ge ', 'Ma ', 'Juan ', 'Kasugai ', 'Habaki ', 'Suo ', qq{[?] }, qq{[?] }, qq{[?] }, 'Na ',
+'Lu ', 'Suo ', 'Ou ', 'Zu ', 'Tuan ', 'Xiu ', 'Guan ', 'Xuan ', 'Lian ', 'Shou ', 'Ao ', 'Man ', 'Mo ', 'Luo ', 'Bi ', 'Wei ',
+'Liu ', 'Di ', 'Qiao ', 'Cong ', 'Yi ', 'Lu ', 'Ao ', 'Keng ', 'Qiang ', 'Cui ', 'Qi ', 'Chang ', 'Tang ', 'Man ', 'Yong ', 'Chan ',
+'Feng ', 'Jing ', 'Biao ', 'Shu ', 'Lou ', 'Xiu ', 'Cong ', 'Long ', 'Zan ', 'Jian ', 'Cao ', 'Li ', 'Xia ', 'Xi ', 'Kang ', qq{[?] },
+'Beng ', qq{[?] }, qq{[?] }, 'Zheng ', 'Lu ', 'Hua ', 'Ji ', 'Pu ', 'Hui ', 'Qiang ', 'Po ', 'Lin ', 'Suo ', 'Xiu ', 'San ', 'Cheng ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x94.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x94.pm
new file mode 100644
index 0000000..bd41350
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x94.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x94] = [
+'Kui ', 'Si ', 'Liu ', 'Nao ', 'Heng ', 'Pie ', 'Sui ', 'Fan ', 'Qiao ', 'Quan ', 'Yang ', 'Tang ', 'Xiang ', 'Jue ', 'Jiao ', 'Zun ',
+'Liao ', 'Jie ', 'Lao ', 'Dui ', 'Tan ', 'Zan ', 'Ji ', 'Jian ', 'Zhong ', 'Deng ', 'Ya ', 'Ying ', 'Dui ', 'Jue ', 'Nou ', 'Ti ',
+'Pu ', 'Tie ', qq{[?] }, qq{[?] }, 'Ding ', 'Shan ', 'Kai ', 'Jian ', 'Fei ', 'Sui ', 'Lu ', 'Juan ', 'Hui ', 'Yu ', 'Lian ', 'Zhuo ',
+'Qiao ', 'Qian ', 'Zhuo ', 'Lei ', 'Bi ', 'Tie ', 'Huan ', 'Ye ', 'Duo ', 'Guo ', 'Dang ', 'Ju ', 'Fen ', 'Da ', 'Bei ', 'Yi ',
+'Ai ', 'Zong ', 'Xun ', 'Diao ', 'Zhu ', 'Heng ', 'Zhui ', 'Ji ', 'Nie ', 'Ta ', 'Huo ', 'Qing ', 'Bin ', 'Ying ', 'Kui ', 'Ning ',
+'Xu ', 'Jian ', 'Jian ', 'Yari ', 'Cha ', 'Zhi ', 'Mie ', 'Li ', 'Lei ', 'Ji ', 'Zuan ', 'Kuang ', 'Shang ', 'Peng ', 'La ', 'Du ',
+'Shuo ', 'Chuo ', 'Lu ', 'Biao ', 'Bao ', 'Lu ', qq{[?] }, qq{[?] }, 'Long ', 'E ', 'Lu ', 'Xin ', 'Jian ', 'Lan ', 'Bo ', 'Jian ',
+'Yao ', 'Chan ', 'Xiang ', 'Jian ', 'Xi ', 'Guan ', 'Cang ', 'Nie ', 'Lei ', 'Cuan ', 'Qu ', 'Pan ', 'Luo ', 'Zuan ', 'Luan ', 'Zao ',
+'Nie ', 'Jue ', 'Tang ', 'Shu ', 'Lan ', 'Jin ', 'Qiu ', 'Yi ', 'Zhen ', 'Ding ', 'Zhao ', 'Po ', 'Diao ', 'Tu ', 'Qian ', 'Chuan ',
+'Shan ', 'Ji ', 'Fan ', 'Diao ', 'Men ', 'Nu ', 'Xi ', 'Chai ', 'Xing ', 'Gai ', 'Bu ', 'Tai ', 'Ju ', 'Dun ', 'Chao ', 'Zhong ',
+'Na ', 'Bei ', 'Gang ', 'Ban ', 'Qian ', 'Yao ', 'Qin ', 'Jun ', 'Wu ', 'Gou ', 'Kang ', 'Fang ', 'Huo ', 'Tou ', 'Niu ', 'Ba ',
+'Yu ', 'Qian ', 'Zheng ', 'Qian ', 'Gu ', 'Bo ', 'E ', 'Po ', 'Bu ', 'Ba ', 'Yue ', 'Zuan ', 'Mu ', 'Dan ', 'Jia ', 'Dian ',
+'You ', 'Tie ', 'Bo ', 'Ling ', 'Shuo ', 'Qian ', 'Liu ', 'Bao ', 'Shi ', 'Xuan ', 'She ', 'Bi ', 'Ni ', 'Pi ', 'Duo ', 'Xing ',
+'Kao ', 'Lao ', 'Er ', 'Mang ', 'Ya ', 'You ', 'Cheng ', 'Jia ', 'Ye ', 'Nao ', 'Zhi ', 'Dang ', 'Tong ', 'Lu ', 'Diao ', 'Yin ',
+'Kai ', 'Zha ', 'Zhu ', 'Xian ', 'Ting ', 'Diu ', 'Xian ', 'Hua ', 'Quan ', 'Sha ', 'Jia ', 'Yao ', 'Ge ', 'Ming ', 'Zheng ', 'Se ',
+'Jiao ', 'Yi ', 'Chan ', 'Chong ', 'Tang ', 'An ', 'Yin ', 'Ru ', 'Zhu ', 'Lao ', 'Pu ', 'Wu ', 'Lai ', 'Te ', 'Lian ', 'Keng ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x95.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x95.pm
new file mode 100644
index 0000000..e7f9eb7
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x95.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x95] = [
+'Xiao ', 'Suo ', 'Li ', 'Zheng ', 'Chu ', 'Guo ', 'Gao ', 'Tie ', 'Xiu ', 'Cuo ', 'Lue ', 'Feng ', 'Xin ', 'Liu ', 'Kai ', 'Jian ',
+'Rui ', 'Ti ', 'Lang ', 'Qian ', 'Ju ', 'A ', 'Qiang ', 'Duo ', 'Tian ', 'Cuo ', 'Mao ', 'Ben ', 'Qi ', 'De ', 'Kua ', 'Kun ',
+'Chang ', 'Xi ', 'Gu ', 'Luo ', 'Chui ', 'Zhui ', 'Jin ', 'Zhi ', 'Xian ', 'Juan ', 'Huo ', 'Pou ', 'Tan ', 'Ding ', 'Jian ', 'Ju ',
+'Meng ', 'Zi ', 'Qie ', 'Ying ', 'Kai ', 'Qiang ', 'Song ', 'E ', 'Cha ', 'Qiao ', 'Zhong ', 'Duan ', 'Sou ', 'Huang ', 'Huan ', 'Ai ',
+'Du ', 'Mei ', 'Lou ', 'Zi ', 'Fei ', 'Mei ', 'Mo ', 'Zhen ', 'Bo ', 'Ge ', 'Nie ', 'Tang ', 'Juan ', 'Nie ', 'Na ', 'Liu ',
+'Hao ', 'Bang ', 'Yi ', 'Jia ', 'Bin ', 'Rong ', 'Biao ', 'Tang ', 'Man ', 'Luo ', 'Beng ', 'Yong ', 'Jing ', 'Di ', 'Zu ', 'Xuan ',
+'Liu ', 'Tan ', 'Jue ', 'Liao ', 'Pu ', 'Lu ', 'Dui ', 'Lan ', 'Pu ', 'Cuan ', 'Qiang ', 'Deng ', 'Huo ', 'Lei ', 'Huan ', 'Zhuo ',
+'Lian ', 'Yi ', 'Cha ', 'Biao ', 'La ', 'Chan ', 'Xiang ', 'Chang ', 'Chang ', 'Jiu ', 'Ao ', 'Die ', 'Qu ', 'Liao ', 'Mi ', 'Chang ',
+'Men ', 'Ma ', 'Shuan ', 'Shan ', 'Huo ', 'Men ', 'Yan ', 'Bi ', 'Han ', 'Bi ', 'San ', 'Kai ', 'Kang ', 'Beng ', 'Hong ', 'Run ',
+'San ', 'Xian ', 'Xian ', 'Jian ', 'Min ', 'Xia ', 'Yuru ', 'Dou ', 'Zha ', 'Nao ', 'Jian ', 'Peng ', 'Xia ', 'Ling ', 'Bian ', 'Bi ',
+'Run ', 'He ', 'Guan ', 'Ge ', 'Ge ', 'Fa ', 'Chu ', 'Hong ', 'Gui ', 'Min ', 'Se ', 'Kun ', 'Lang ', 'Lu ', 'Ting ', 'Sha ',
+'Ju ', 'Yue ', 'Yue ', 'Chan ', 'Qu ', 'Lin ', 'Chang ', 'Shai ', 'Kun ', 'Yan ', 'Min ', 'Yan ', 'E ', 'Hun ', 'Yu ', 'Wen ',
+'Xiang ', 'Bao ', 'Xiang ', 'Qu ', 'Yao ', 'Wen ', 'Ban ', 'An ', 'Wei ', 'Yin ', 'Kuo ', 'Que ', 'Lan ', 'Du ', qq{[?] }, 'Phwung ',
+'Tian ', 'Nie ', 'Ta ', 'Kai ', 'He ', 'Que ', 'Chuang ', 'Guan ', 'Dou ', 'Qi ', 'Kui ', 'Tang ', 'Guan ', 'Piao ', 'Kan ', 'Xi ',
+'Hui ', 'Chan ', 'Pi ', 'Dang ', 'Huan ', 'Ta ', 'Wen ', qq{[?] }, 'Men ', 'Shuan ', 'Shan ', 'Yan ', 'Han ', 'Bi ', 'Wen ', 'Chuang ',
+'Run ', 'Wei ', 'Xian ', 'Hong ', 'Jian ', 'Min ', 'Kang ', 'Men ', 'Zha ', 'Nao ', 'Gui ', 'Wen ', 'Ta ', 'Min ', 'Lu ', 'Kai ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x96.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x96.pm
new file mode 100644
index 0000000..8dc094b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x96.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x96] = [
+'Fa ', 'Ge ', 'He ', 'Kun ', 'Jiu ', 'Yue ', 'Lang ', 'Du ', 'Yu ', 'Yan ', 'Chang ', 'Xi ', 'Wen ', 'Hun ', 'Yan ', 'E ',
+'Chan ', 'Lan ', 'Qu ', 'Hui ', 'Kuo ', 'Que ', 'Ge ', 'Tian ', 'Ta ', 'Que ', 'Kan ', 'Huan ', 'Fu ', 'Fu ', 'Le ', 'Dui ',
+'Xin ', 'Qian ', 'Wu ', 'Yi ', 'Tuo ', 'Yin ', 'Yang ', 'Dou ', 'E ', 'Sheng ', 'Ban ', 'Pei ', 'Keng ', 'Yun ', 'Ruan ', 'Zhi ',
+'Pi ', 'Jing ', 'Fang ', 'Yang ', 'Yin ', 'Zhen ', 'Jie ', 'Cheng ', 'E ', 'Qu ', 'Di ', 'Zu ', 'Zuo ', 'Dian ', 'Ling ', 'A ',
+'Tuo ', 'Tuo ', 'Po ', 'Bing ', 'Fu ', 'Ji ', 'Lu ', 'Long ', 'Chen ', 'Xing ', 'Duo ', 'Lou ', 'Mo ', 'Jiang ', 'Shu ', 'Duo ',
+'Xian ', 'Er ', 'Gui ', 'Yu ', 'Gai ', 'Shan ', 'Xun ', 'Qiao ', 'Xing ', 'Chun ', 'Fu ', 'Bi ', 'Xia ', 'Shan ', 'Sheng ', 'Zhi ',
+'Pu ', 'Dou ', 'Yuan ', 'Zhen ', 'Chu ', 'Xian ', 'Tou ', 'Nie ', 'Yun ', 'Xian ', 'Pei ', 'Pei ', 'Zou ', 'Yi ', 'Dui ', 'Lun ',
+'Yin ', 'Ju ', 'Chui ', 'Chen ', 'Pi ', 'Ling ', 'Tao ', 'Xian ', 'Lu ', 'Sheng ', 'Xian ', 'Yin ', 'Zhu ', 'Yang ', 'Reng ', 'Shan ',
+'Chong ', 'Yan ', 'Yin ', 'Yu ', 'Ti ', 'Yu ', 'Long ', 'Wei ', 'Wei ', 'Nie ', 'Dui ', 'Sui ', 'An ', 'Huang ', 'Jie ', 'Sui ',
+'Yin ', 'Gai ', 'Yan ', 'Hui ', 'Ge ', 'Yun ', 'Wu ', 'Wei ', 'Ai ', 'Xi ', 'Tang ', 'Ji ', 'Zhang ', 'Dao ', 'Ao ', 'Xi ',
+'Yin ', qq{[?] }, 'Rao ', 'Lin ', 'Tui ', 'Deng ', 'Pi ', 'Sui ', 'Sui ', 'Yu ', 'Xian ', 'Fen ', 'Ni ', 'Er ', 'Ji ', 'Dao ',
+'Xi ', 'Yin ', 'E ', 'Hui ', 'Long ', 'Xi ', 'Li ', 'Li ', 'Li ', 'Zhui ', 'He ', 'Zhi ', 'Zhun ', 'Jun ', 'Nan ', 'Yi ',
+'Que ', 'Yan ', 'Qian ', 'Ya ', 'Xiong ', 'Ya ', 'Ji ', 'Gu ', 'Huan ', 'Zhi ', 'Gou ', 'Jun ', 'Ci ', 'Yong ', 'Ju ', 'Chu ',
+'Hu ', 'Za ', 'Luo ', 'Yu ', 'Chou ', 'Diao ', 'Sui ', 'Han ', 'Huo ', 'Shuang ', 'Guan ', 'Chu ', 'Za ', 'Yong ', 'Ji ', 'Xi ',
+'Chou ', 'Liu ', 'Li ', 'Nan ', 'Xue ', 'Za ', 'Ji ', 'Ji ', 'Yu ', 'Yu ', 'Xue ', 'Na ', 'Fou ', 'Se ', 'Mu ', 'Wen ',
+'Fen ', 'Pang ', 'Yun ', 'Li ', 'Li ', 'Ang ', 'Ling ', 'Lei ', 'An ', 'Bao ', 'Meng ', 'Dian ', 'Dang ', 'Xing ', 'Wu ', 'Zhao ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x97.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x97.pm
new file mode 100644
index 0000000..6af27b7
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x97.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x97] = [
+'Xu ', 'Ji ', 'Mu ', 'Chen ', 'Xiao ', 'Zha ', 'Ting ', 'Zhen ', 'Pei ', 'Mei ', 'Ling ', 'Qi ', 'Chou ', 'Huo ', 'Sha ', 'Fei ',
+'Weng ', 'Zhan ', 'Yin ', 'Ni ', 'Chou ', 'Tun ', 'Lin ', qq{[?] }, 'Dong ', 'Ying ', 'Wu ', 'Ling ', 'Shuang ', 'Ling ', 'Xia ', 'Hong ',
+'Yin ', 'Mo ', 'Mai ', 'Yun ', 'Liu ', 'Meng ', 'Bin ', 'Wu ', 'Wei ', 'Huo ', 'Yin ', 'Xi ', 'Yi ', 'Ai ', 'Dan ', 'Deng ',
+'Xian ', 'Yu ', 'Lu ', 'Long ', 'Dai ', 'Ji ', 'Pang ', 'Yang ', 'Ba ', 'Pi ', 'Wei ', qq{[?] }, 'Xi ', 'Ji ', 'Mai ', 'Meng ',
+'Meng ', 'Lei ', 'Li ', 'Huo ', 'Ai ', 'Fei ', 'Dai ', 'Long ', 'Ling ', 'Ai ', 'Feng ', 'Li ', 'Bao ', qq{[?] }, 'He ', 'He ',
+'Bing ', 'Qing ', 'Qing ', 'Jing ', 'Tian ', 'Zhen ', 'Jing ', 'Cheng ', 'Qing ', 'Jing ', 'Jing ', 'Dian ', 'Jing ', 'Tian ', 'Fei ', 'Fei ',
+'Kao ', 'Mi ', 'Mian ', 'Mian ', 'Pao ', 'Ye ', 'Tian ', 'Hui ', 'Ye ', 'Ge ', 'Ding ', 'Cha ', 'Jian ', 'Ren ', 'Di ', 'Du ',
+'Wu ', 'Ren ', 'Qin ', 'Jin ', 'Xue ', 'Niu ', 'Ba ', 'Yin ', 'Sa ', 'Na ', 'Mo ', 'Zu ', 'Da ', 'Ban ', 'Yi ', 'Yao ',
+'Tao ', 'Tuo ', 'Jia ', 'Hong ', 'Pao ', 'Yang ', 'Tomo ', 'Yin ', 'Jia ', 'Tao ', 'Ji ', 'Xie ', 'An ', 'An ', 'Hen ', 'Gong ',
+'Kohaze ', 'Da ', 'Qiao ', 'Ting ', 'Wan ', 'Ying ', 'Sui ', 'Tiao ', 'Qiao ', 'Xuan ', 'Kong ', 'Beng ', 'Ta ', 'Zhang ', 'Bing ', 'Kuo ',
+'Ju ', 'La ', 'Xie ', 'Rou ', 'Bang ', 'Yi ', 'Qiu ', 'Qiu ', 'He ', 'Xiao ', 'Mu ', 'Ju ', 'Jian ', 'Bian ', 'Di ', 'Jian ',
+'On ', 'Tao ', 'Gou ', 'Ta ', 'Bei ', 'Xie ', 'Pan ', 'Ge ', 'Bi ', 'Kuo ', 'Tang ', 'Lou ', 'Gui ', 'Qiao ', 'Xue ', 'Ji ',
+'Jian ', 'Jiang ', 'Chan ', 'Da ', 'Huo ', 'Xian ', 'Qian ', 'Du ', 'Wa ', 'Jian ', 'Lan ', 'Wei ', 'Ren ', 'Fu ', 'Mei ', 'Juan ',
+'Ge ', 'Wei ', 'Qiao ', 'Han ', 'Chang ', qq{[?] }, 'Rou ', 'Xun ', 'She ', 'Wei ', 'Ge ', 'Bei ', 'Tao ', 'Gou ', 'Yun ', qq{[?] },
+'Bi ', 'Wei ', 'Hui ', 'Du ', 'Wa ', 'Du ', 'Wei ', 'Ren ', 'Fu ', 'Han ', 'Wei ', 'Yun ', 'Tao ', 'Jiu ', 'Jiu ', 'Xian ',
+'Xie ', 'Xian ', 'Ji ', 'Yin ', 'Za ', 'Yun ', 'Shao ', 'Le ', 'Peng ', 'Heng ', 'Ying ', 'Yun ', 'Peng ', 'Yin ', 'Yin ', 'Xiang ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x98.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x98.pm
new file mode 100644
index 0000000..da94c82
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x98.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x98] = [
+'Hu ', 'Ye ', 'Ding ', 'Qing ', 'Pan ', 'Xiang ', 'Shun ', 'Han ', 'Xu ', 'Yi ', 'Xu ', 'Gu ', 'Song ', 'Kui ', 'Qi ', 'Hang ',
+'Yu ', 'Wan ', 'Ban ', 'Dun ', 'Di ', 'Dan ', 'Pan ', 'Po ', 'Ling ', 'Ce ', 'Jing ', 'Lei ', 'He ', 'Qiao ', 'E ', 'E ',
+'Wei ', 'Jie ', 'Gua ', 'Shen ', 'Yi ', 'Shen ', 'Hai ', 'Dui ', 'Pian ', 'Ping ', 'Lei ', 'Fu ', 'Jia ', 'Tou ', 'Hui ', 'Kui ',
+'Jia ', 'Le ', 'Tian ', 'Cheng ', 'Ying ', 'Jun ', 'Hu ', 'Han ', 'Jing ', 'Tui ', 'Tui ', 'Pin ', 'Lai ', 'Tui ', 'Zi ', 'Zi ',
+'Chui ', 'Ding ', 'Lai ', 'Yan ', 'Han ', 'Jian ', 'Ke ', 'Cui ', 'Jiong ', 'Qin ', 'Yi ', 'Sai ', 'Ti ', 'E ', 'E ', 'Yan ',
+'Hun ', 'Kan ', 'Yong ', 'Zhuan ', 'Yan ', 'Xian ', 'Xin ', 'Yi ', 'Yuan ', 'Sang ', 'Dian ', 'Dian ', 'Jiang ', 'Ku ', 'Lei ', 'Liao ',
+'Piao ', 'Yi ', 'Man ', 'Qi ', 'Rao ', 'Hao ', 'Qiao ', 'Gu ', 'Xun ', 'Qian ', 'Hui ', 'Zhan ', 'Ru ', 'Hong ', 'Bin ', 'Xian ',
+'Pin ', 'Lu ', 'Lan ', 'Nie ', 'Quan ', 'Ye ', 'Ding ', 'Qing ', 'Han ', 'Xiang ', 'Shun ', 'Xu ', 'Xu ', 'Wan ', 'Gu ', 'Dun ',
+'Qi ', 'Ban ', 'Song ', 'Hang ', 'Yu ', 'Lu ', 'Ling ', 'Po ', 'Jing ', 'Jie ', 'Jia ', 'Tian ', 'Han ', 'Ying ', 'Jiong ', 'Hai ',
+'Yi ', 'Pin ', 'Hui ', 'Tui ', 'Han ', 'Ying ', 'Ying ', 'Ke ', 'Ti ', 'Yong ', 'E ', 'Zhuan ', 'Yan ', 'E ', 'Nie ', 'Man ',
+'Dian ', 'Sang ', 'Hao ', 'Lei ', 'Zhan ', 'Ru ', 'Pin ', 'Quan ', 'Feng ', 'Biao ', 'Oroshi ', 'Fu ', 'Xia ', 'Zhan ', 'Biao ', 'Sa ',
+'Ba ', 'Tai ', 'Lie ', 'Gua ', 'Xuan ', 'Shao ', 'Ju ', 'Bi ', 'Si ', 'Wei ', 'Yang ', 'Yao ', 'Sou ', 'Kai ', 'Sao ', 'Fan ',
+'Liu ', 'Xi ', 'Liao ', 'Piao ', 'Piao ', 'Liu ', 'Biao ', 'Biao ', 'Biao ', 'Liao ', qq{[?] }, 'Se ', 'Feng ', 'Biao ', 'Feng ', 'Yang ',
+'Zhan ', 'Biao ', 'Sa ', 'Ju ', 'Si ', 'Sou ', 'Yao ', 'Liu ', 'Piao ', 'Biao ', 'Biao ', 'Fei ', 'Fan ', 'Fei ', 'Fei ', 'Shi ',
+'Shi ', 'Can ', 'Ji ', 'Ding ', 'Si ', 'Tuo ', 'Zhan ', 'Sun ', 'Xiang ', 'Tun ', 'Ren ', 'Yu ', 'Juan ', 'Chi ', 'Yin ', 'Fan ',
+'Fan ', 'Sun ', 'Yin ', 'Zhu ', 'Yi ', 'Zhai ', 'Bi ', 'Jie ', 'Tao ', 'Liu ', 'Ci ', 'Tie ', 'Si ', 'Bao ', 'Shi ', 'Duo ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x99.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x99.pm
new file mode 100644
index 0000000..7c1a614
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x99.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x99] = [
+'Hai ', 'Ren ', 'Tian ', 'Jiao ', 'Jia ', 'Bing ', 'Yao ', 'Tong ', 'Ci ', 'Xiang ', 'Yang ', 'Yang ', 'Er ', 'Yan ', 'Le ', 'Yi ',
+'Can ', 'Bo ', 'Nei ', 'E ', 'Bu ', 'Jun ', 'Dou ', 'Su ', 'Yu ', 'Shi ', 'Yao ', 'Hun ', 'Guo ', 'Shi ', 'Jian ', 'Zhui ',
+'Bing ', 'Xian ', 'Bu ', 'Ye ', 'Tan ', 'Fei ', 'Zhang ', 'Wei ', 'Guan ', 'E ', 'Nuan ', 'Hun ', 'Hu ', 'Huang ', 'Tie ', 'Hui ',
+'Jian ', 'Hou ', 'He ', 'Xing ', 'Fen ', 'Wei ', 'Gu ', 'Cha ', 'Song ', 'Tang ', 'Bo ', 'Gao ', 'Xi ', 'Kui ', 'Liu ', 'Sou ',
+'Tao ', 'Ye ', 'Yun ', 'Mo ', 'Tang ', 'Man ', 'Bi ', 'Yu ', 'Xiu ', 'Jin ', 'San ', 'Kui ', 'Zhuan ', 'Shan ', 'Chi ', 'Dan ',
+'Yi ', 'Ji ', 'Rao ', 'Cheng ', 'Yong ', 'Tao ', 'Hui ', 'Xiang ', 'Zhan ', 'Fen ', 'Hai ', 'Meng ', 'Yan ', 'Mo ', 'Chan ', 'Xiang ',
+'Luo ', 'Zuan ', 'Nang ', 'Shi ', 'Ding ', 'Ji ', 'Tuo ', 'Xing ', 'Tun ', 'Xi ', 'Ren ', 'Yu ', 'Chi ', 'Fan ', 'Yin ', 'Jian ',
+'Shi ', 'Bao ', 'Si ', 'Duo ', 'Yi ', 'Er ', 'Rao ', 'Xiang ', 'Jia ', 'Le ', 'Jiao ', 'Yi ', 'Bing ', 'Bo ', 'Dou ', 'E ',
+'Yu ', 'Nei ', 'Jun ', 'Guo ', 'Hun ', 'Xian ', 'Guan ', 'Cha ', 'Kui ', 'Gu ', 'Sou ', 'Chan ', 'Ye ', 'Mo ', 'Bo ', 'Liu ',
+'Xiu ', 'Jin ', 'Man ', 'San ', 'Zhuan ', 'Nang ', 'Shou ', 'Kui ', 'Guo ', 'Xiang ', 'Fen ', 'Ba ', 'Ni ', 'Bi ', 'Bo ', 'Tu ',
+'Han ', 'Fei ', 'Jian ', 'An ', 'Ai ', 'Fu ', 'Xian ', 'Wen ', 'Xin ', 'Fen ', 'Bin ', 'Xing ', 'Ma ', 'Yu ', 'Feng ', 'Han ',
+'Di ', 'Tuo ', 'Tuo ', 'Chi ', 'Xun ', 'Zhu ', 'Zhi ', 'Pei ', 'Xin ', 'Ri ', 'Sa ', 'Yin ', 'Wen ', 'Zhi ', 'Dan ', 'Lu ',
+'You ', 'Bo ', 'Bao ', 'Kuai ', 'Tuo ', 'Yi ', 'Qu ', qq{[?] }, 'Qu ', 'Jiong ', 'Bo ', 'Zhao ', 'Yuan ', 'Peng ', 'Zhou ', 'Ju ',
+'Zhu ', 'Nu ', 'Ju ', 'Pi ', 'Zang ', 'Jia ', 'Ling ', 'Zhen ', 'Tai ', 'Fu ', 'Yang ', 'Shi ', 'Bi ', 'Tuo ', 'Tuo ', 'Si ',
+'Liu ', 'Ma ', 'Pian ', 'Tao ', 'Zhi ', 'Rong ', 'Teng ', 'Dong ', 'Xun ', 'Quan ', 'Shen ', 'Jiong ', 'Er ', 'Hai ', 'Bo ', 'Zhu ',
+'Yin ', 'Luo ', 'Shuu ', 'Dan ', 'Xie ', 'Liu ', 'Ju ', 'Song ', 'Qin ', 'Mang ', 'Liang ', 'Han ', 'Tu ', 'Xuan ', 'Tui ', 'Jun ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9a.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9a.pm
new file mode 100644
index 0000000..8a759ce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9a.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:35 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9a] = [
+'E ', 'Cheng ', 'Xin ', 'Ai ', 'Lu ', 'Zhui ', 'Zhou ', 'She ', 'Pian ', 'Kun ', 'Tao ', 'Lai ', 'Zong ', 'Ke ', 'Qi ', 'Qi ',
+'Yan ', 'Fei ', 'Sao ', 'Yan ', 'Jie ', 'Yao ', 'Wu ', 'Pian ', 'Cong ', 'Pian ', 'Qian ', 'Fei ', 'Huang ', 'Jian ', 'Huo ', 'Yu ',
+'Ti ', 'Quan ', 'Xia ', 'Zong ', 'Kui ', 'Rou ', 'Si ', 'Gua ', 'Tuo ', 'Kui ', 'Sou ', 'Qian ', 'Cheng ', 'Zhi ', 'Liu ', 'Pang ',
+'Teng ', 'Xi ', 'Cao ', 'Du ', 'Yan ', 'Yuan ', 'Zou ', 'Sao ', 'Shan ', 'Li ', 'Zhi ', 'Shuang ', 'Lu ', 'Xi ', 'Luo ', 'Zhang ',
+'Mo ', 'Ao ', 'Can ', 'Piao ', 'Cong ', 'Qu ', 'Bi ', 'Zhi ', 'Yu ', 'Xu ', 'Hua ', 'Bo ', 'Su ', 'Xiao ', 'Lin ', 'Chan ',
+'Dun ', 'Liu ', 'Tuo ', 'Zeng ', 'Tan ', 'Jiao ', 'Tie ', 'Yan ', 'Luo ', 'Zhan ', 'Jing ', 'Yi ', 'Ye ', 'Tuo ', 'Bin ', 'Zou ',
+'Yan ', 'Peng ', 'Lu ', 'Teng ', 'Xiang ', 'Ji ', 'Shuang ', 'Ju ', 'Xi ', 'Huan ', 'Li ', 'Biao ', 'Ma ', 'Yu ', 'Tuo ', 'Xun ',
+'Chi ', 'Qu ', 'Ri ', 'Bo ', 'Lu ', 'Zang ', 'Shi ', 'Si ', 'Fu ', 'Ju ', 'Zou ', 'Zhu ', 'Tuo ', 'Nu ', 'Jia ', 'Yi ',
+'Tai ', 'Xiao ', 'Ma ', 'Yin ', 'Jiao ', 'Hua ', 'Luo ', 'Hai ', 'Pian ', 'Biao ', 'Li ', 'Cheng ', 'Yan ', 'Xin ', 'Qin ', 'Jun ',
+'Qi ', 'Qi ', 'Ke ', 'Zhui ', 'Zong ', 'Su ', 'Can ', 'Pian ', 'Zhi ', 'Kui ', 'Sao ', 'Wu ', 'Ao ', 'Liu ', 'Qian ', 'Shan ',
+'Piao ', 'Luo ', 'Cong ', 'Chan ', 'Zou ', 'Ji ', 'Shuang ', 'Xiang ', 'Gu ', 'Wei ', 'Wei ', 'Wei ', 'Yu ', 'Gan ', 'Yi ', 'Ang ',
+'Tou ', 'Xie ', 'Bao ', 'Bi ', 'Chi ', 'Ti ', 'Di ', 'Ku ', 'Hai ', 'Qiao ', 'Gou ', 'Kua ', 'Ge ', 'Tui ', 'Geng ', 'Pian ',
+'Bi ', 'Ke ', 'Ka ', 'Yu ', 'Sui ', 'Lou ', 'Bo ', 'Xiao ', 'Pang ', 'Bo ', 'Ci ', 'Kuan ', 'Bin ', 'Mo ', 'Liao ', 'Lou ',
+'Nao ', 'Du ', 'Zang ', 'Sui ', 'Ti ', 'Bin ', 'Kuan ', 'Lu ', 'Gao ', 'Gao ', 'Qiao ', 'Kao ', 'Qiao ', 'Lao ', 'Zao ', 'Biao ',
+'Kun ', 'Kun ', 'Ti ', 'Fang ', 'Xiu ', 'Ran ', 'Mao ', 'Dan ', 'Kun ', 'Bin ', 'Fa ', 'Tiao ', 'Peng ', 'Zi ', 'Fa ', 'Ran ',
+'Ti ', 'Pao ', 'Pi ', 'Mao ', 'Fu ', 'Er ', 'Rong ', 'Qu ', 'Gong ', 'Xiu ', 'Gua ', 'Ji ', 'Peng ', 'Zhua ', 'Shao ', 'Sha ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9b.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9b.pm
new file mode 100644
index 0000000..d1be183
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9b.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9b] = [
+'Ti ', 'Li ', 'Bin ', 'Zong ', 'Ti ', 'Peng ', 'Song ', 'Zheng ', 'Quan ', 'Zong ', 'Shun ', 'Jian ', 'Duo ', 'Hu ', 'La ', 'Jiu ',
+'Qi ', 'Lian ', 'Zhen ', 'Bin ', 'Peng ', 'Mo ', 'San ', 'Man ', 'Man ', 'Seng ', 'Xu ', 'Lie ', 'Qian ', 'Qian ', 'Nong ', 'Huan ',
+'Kuai ', 'Ning ', 'Bin ', 'Lie ', 'Rang ', 'Dou ', 'Dou ', 'Nao ', 'Hong ', 'Xi ', 'Dou ', 'Han ', 'Dou ', 'Dou ', 'Jiu ', 'Chang ',
+'Yu ', 'Yu ', 'Li ', 'Juan ', 'Fu ', 'Qian ', 'Gui ', 'Zong ', 'Liu ', 'Gui ', 'Shang ', 'Yu ', 'Gui ', 'Mei ', 'Ji ', 'Qi ',
+'Jie ', 'Kui ', 'Hun ', 'Ba ', 'Po ', 'Mei ', 'Xu ', 'Yan ', 'Xiao ', 'Liang ', 'Yu ', 'Tui ', 'Qi ', 'Wang ', 'Liang ', 'Wei ',
+'Jian ', 'Chi ', 'Piao ', 'Bi ', 'Mo ', 'Ji ', 'Xu ', 'Chou ', 'Yan ', 'Zhan ', 'Yu ', 'Dao ', 'Ren ', 'Ji ', 'Eri ', 'Gong ',
+'Tuo ', 'Diao ', 'Ji ', 'Xu ', 'E ', 'E ', 'Sha ', 'Hang ', 'Tun ', 'Mo ', 'Jie ', 'Shen ', 'Fan ', 'Yuan ', 'Bi ', 'Lu ',
+'Wen ', 'Hu ', 'Lu ', 'Za ', 'Fang ', 'Fen ', 'Na ', 'You ', 'Namazu ', 'Todo ', 'He ', 'Xia ', 'Qu ', 'Han ', 'Pi ', 'Ling ',
+'Tuo ', 'Bo ', 'Qiu ', 'Ping ', 'Fu ', 'Bi ', 'Ji ', 'Wei ', 'Ju ', 'Diao ', 'Bo ', 'You ', 'Gun ', 'Pi ', 'Nian ', 'Xing ',
+'Tai ', 'Bao ', 'Fu ', 'Zha ', 'Ju ', 'Gu ', 'Kajika ', 'Tong ', qq{[?] }, 'Ta ', 'Jie ', 'Shu ', 'Hou ', 'Xiang ', 'Er ', 'An ',
+'Wei ', 'Tiao ', 'Zhu ', 'Yin ', 'Lie ', 'Luo ', 'Tong ', 'Yi ', 'Qi ', 'Bing ', 'Wei ', 'Jiao ', 'Bu ', 'Gui ', 'Xian ', 'Ge ',
+'Hui ', 'Bora ', 'Mate ', 'Kao ', 'Gori ', 'Duo ', 'Jun ', 'Ti ', 'Man ', 'Xiao ', 'Za ', 'Sha ', 'Qin ', 'Yu ', 'Nei ', 'Zhe ',
+'Gun ', 'Geng ', 'Su ', 'Wu ', 'Qiu ', 'Ting ', 'Fu ', 'Wan ', 'You ', 'Li ', 'Sha ', 'Sha ', 'Gao ', 'Meng ', 'Ugui ', 'Asari ',
+'Subashiri ', 'Kazunoko ', 'Yong ', 'Ni ', 'Zi ', 'Qi ', 'Qing ', 'Xiang ', 'Nei ', 'Chun ', 'Ji ', 'Diao ', 'Qie ', 'Gu ', 'Zhou ', 'Dong ',
+'Lai ', 'Fei ', 'Ni ', 'Yi ', 'Kun ', 'Lu ', 'Jiu ', 'Chang ', 'Jing ', 'Lun ', 'Ling ', 'Zou ', 'Li ', 'Meng ', 'Zong ', 'Zhi ',
+'Nian ', 'Shachi ', 'Dojou ', 'Sukesou ', 'Shi ', 'Shen ', 'Hun ', 'Shi ', 'Hou ', 'Xing ', 'Zhu ', 'La ', 'Zong ', 'Ji ', 'Bian ', 'Bian ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9c.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9c.pm
new file mode 100644
index 0000000..a033e76
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9c.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9c] = [
+'Huan ', 'Quan ', 'Ze ', 'Wei ', 'Wei ', 'Yu ', 'Qun ', 'Rou ', 'Die ', 'Huang ', 'Lian ', 'Yan ', 'Qiu ', 'Qiu ', 'Jian ', 'Bi ',
+'E ', 'Yang ', 'Fu ', 'Sai ', 'Jian ', 'Xia ', 'Tuo ', 'Hu ', 'Muroaji ', 'Ruo ', 'Haraka ', 'Wen ', 'Jian ', 'Hao ', 'Wu ', 'Fang ',
+'Sao ', 'Liu ', 'Ma ', 'Shi ', 'Shi ', 'Yin ', 'Z ', 'Teng ', 'Ta ', 'Yao ', 'Ge ', 'Rong ', 'Qian ', 'Qi ', 'Wen ', 'Ruo ',
+'Hatahata ', 'Lian ', 'Ao ', 'Le ', 'Hui ', 'Min ', 'Ji ', 'Tiao ', 'Qu ', 'Jian ', 'Sao ', 'Man ', 'Xi ', 'Qiu ', 'Biao ', 'Ji ',
+'Ji ', 'Zhu ', 'Jiang ', 'Qiu ', 'Zhuan ', 'Yong ', 'Zhang ', 'Kang ', 'Xue ', 'Bie ', 'Jue ', 'Qu ', 'Xiang ', 'Bo ', 'Jiao ', 'Xun ',
+'Su ', 'Huang ', 'Zun ', 'Shan ', 'Shan ', 'Fan ', 'Jue ', 'Lin ', 'Xun ', 'Miao ', 'Xi ', 'Eso ', 'Kyou ', 'Fen ', 'Guan ', 'Hou ',
+'Kuai ', 'Zei ', 'Sao ', 'Zhan ', 'Gan ', 'Gui ', 'Sheng ', 'Li ', 'Chang ', 'Hatahata ', 'Shiira ', 'Mutsu ', 'Ru ', 'Ji ', 'Xu ', 'Huo ',
+'Shiira ', 'Li ', 'Lie ', 'Li ', 'Mie ', 'Zhen ', 'Xiang ', 'E ', 'Lu ', 'Guan ', 'Li ', 'Xian ', 'Yu ', 'Dao ', 'Ji ', 'You ',
+'Tun ', 'Lu ', 'Fang ', 'Ba ', 'He ', 'Bo ', 'Ping ', 'Nian ', 'Lu ', 'You ', 'Zha ', 'Fu ', 'Bo ', 'Bao ', 'Hou ', 'Pi ',
+'Tai ', 'Gui ', 'Jie ', 'Kao ', 'Wei ', 'Er ', 'Tong ', 'Ze ', 'Hou ', 'Kuai ', 'Ji ', 'Jiao ', 'Xian ', 'Za ', 'Xiang ', 'Xun ',
+'Geng ', 'Li ', 'Lian ', 'Jian ', 'Li ', 'Shi ', 'Tiao ', 'Gun ', 'Sha ', 'Wan ', 'Jun ', 'Ji ', 'Yong ', 'Qing ', 'Ling ', 'Qi ',
+'Zou ', 'Fei ', 'Kun ', 'Chang ', 'Gu ', 'Ni ', 'Nian ', 'Diao ', 'Jing ', 'Shen ', 'Shi ', 'Zi ', 'Fen ', 'Die ', 'Bi ', 'Chang ',
+'Shi ', 'Wen ', 'Wei ', 'Sai ', 'E ', 'Qiu ', 'Fu ', 'Huang ', 'Quan ', 'Jiang ', 'Bian ', 'Sao ', 'Ao ', 'Qi ', 'Ta ', 'Yin ',
+'Yao ', 'Fang ', 'Jian ', 'Le ', 'Biao ', 'Xue ', 'Bie ', 'Man ', 'Min ', 'Yong ', 'Wei ', 'Xi ', 'Jue ', 'Shan ', 'Lin ', 'Zun ',
+'Huo ', 'Gan ', 'Li ', 'Zhan ', 'Guan ', 'Niao ', 'Yi ', 'Fu ', 'Li ', 'Jiu ', 'Bu ', 'Yan ', 'Fu ', 'Diao ', 'Ji ', 'Feng ',
+'Nio ', 'Gan ', 'Shi ', 'Feng ', 'Ming ', 'Bao ', 'Yuan ', 'Zhi ', 'Hu ', 'Qin ', 'Fu ', 'Fen ', 'Wen ', 'Jian ', 'Shi ', 'Yu ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9d.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9d.pm
new file mode 100644
index 0000000..6e3af5d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9d.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9d] = [
+'Fou ', 'Yiao ', 'Jue ', 'Jue ', 'Pi ', 'Huan ', 'Zhen ', 'Bao ', 'Yan ', 'Ya ', 'Zheng ', 'Fang ', 'Feng ', 'Wen ', 'Ou ', 'Te ',
+'Jia ', 'Nu ', 'Ling ', 'Mie ', 'Fu ', 'Tuo ', 'Wen ', 'Li ', 'Bian ', 'Zhi ', 'Ge ', 'Yuan ', 'Zi ', 'Qu ', 'Xiao ', 'Zhi ',
+'Dan ', 'Ju ', 'You ', 'Gu ', 'Zhong ', 'Yu ', 'Yang ', 'Rong ', 'Ya ', 'Tie ', 'Yu ', 'Shigi ', 'Ying ', 'Zhui ', 'Wu ', 'Er ',
+'Gua ', 'Ai ', 'Zhi ', 'Yan ', 'Heng ', 'Jiao ', 'Ji ', 'Lie ', 'Zhu ', 'Ren ', 'Yi ', 'Hong ', 'Luo ', 'Ru ', 'Mou ', 'Ge ',
+'Ren ', 'Jiao ', 'Xiu ', 'Zhou ', 'Zhi ', 'Luo ', 'Chidori ', 'Toki ', 'Ten ', 'Luan ', 'Jia ', 'Ji ', 'Yu ', 'Huan ', 'Tuo ', 'Bu ',
+'Wu ', 'Juan ', 'Yu ', 'Bo ', 'Xun ', 'Xun ', 'Bi ', 'Xi ', 'Jun ', 'Ju ', 'Tu ', 'Jing ', 'Ti ', 'E ', 'E ', 'Kuang ',
+'Hu ', 'Wu ', 'Shen ', 'Lai ', 'Ikaruga ', 'Kakesu ', 'Lu ', 'Ping ', 'Shu ', 'Fu ', 'An ', 'Zhao ', 'Peng ', 'Qin ', 'Qian ', 'Bei ',
+'Diao ', 'Lu ', 'Que ', 'Jian ', 'Ju ', 'Tu ', 'Ya ', 'Yuan ', 'Qi ', 'Li ', 'Ye ', 'Zhui ', 'Kong ', 'Zhui ', 'Kun ', 'Sheng ',
+'Qi ', 'Jing ', 'Yi ', 'Yi ', 'Jing ', 'Zi ', 'Lai ', 'Dong ', 'Qi ', 'Chun ', 'Geng ', 'Ju ', 'Qu ', 'Isuka ', 'Kikuitadaki ', 'Ji ',
+'Shu ', qq{[?] }, 'Chi ', 'Miao ', 'Rou ', 'An ', 'Qiu ', 'Ti ', 'Hu ', 'Ti ', 'E ', 'Jie ', 'Mao ', 'Fu ', 'Chun ', 'Tu ',
+'Yan ', 'He ', 'Yuan ', 'Pian ', 'Yun ', 'Mei ', 'Hu ', 'Ying ', 'Dun ', 'Mu ', 'Ju ', 'Tsugumi ', 'Cang ', 'Fang ', 'Gu ', 'Ying ',
+'Yuan ', 'Xuan ', 'Weng ', 'Shi ', 'He ', 'Chu ', 'Tang ', 'Xia ', 'Ruo ', 'Liu ', 'Ji ', 'Gu ', 'Jian ', 'Zhun ', 'Han ', 'Zi ',
+'Zi ', 'Ni ', 'Yao ', 'Yan ', 'Ji ', 'Li ', 'Tian ', 'Kou ', 'Ti ', 'Ti ', 'Ni ', 'Tu ', 'Ma ', 'Jiao ', 'Gao ', 'Tian ',
+'Chen ', 'Li ', 'Zhuan ', 'Zhe ', 'Ao ', 'Yao ', 'Yi ', 'Ou ', 'Chi ', 'Zhi ', 'Liao ', 'Rong ', 'Lou ', 'Bi ', 'Shuang ', 'Zhuo ',
+'Yu ', 'Wu ', 'Jue ', 'Yin ', 'Quan ', 'Si ', 'Jiao ', 'Yi ', 'Hua ', 'Bi ', 'Ying ', 'Su ', 'Huang ', 'Fan ', 'Jiao ', 'Liao ',
+'Yan ', 'Kao ', 'Jiu ', 'Xian ', 'Xian ', 'Tu ', 'Mai ', 'Zun ', 'Yu ', 'Ying ', 'Lu ', 'Tuan ', 'Xian ', 'Xue ', 'Yi ', 'Pi ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9e.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9e.pm
new file mode 100644
index 0000000..9be4f99
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9e.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9e] = [
+'Shu ', 'Luo ', 'Qi ', 'Yi ', 'Ji ', 'Zhe ', 'Yu ', 'Zhan ', 'Ye ', 'Yang ', 'Pi ', 'Ning ', 'Huo ', 'Mi ', 'Ying ', 'Meng ',
+'Di ', 'Yue ', 'Yu ', 'Lei ', 'Bao ', 'Lu ', 'He ', 'Long ', 'Shuang ', 'Yue ', 'Ying ', 'Guan ', 'Qu ', 'Li ', 'Luan ', 'Niao ',
+'Jiu ', 'Ji ', 'Yuan ', 'Ming ', 'Shi ', 'Ou ', 'Ya ', 'Cang ', 'Bao ', 'Zhen ', 'Gu ', 'Dong ', 'Lu ', 'Ya ', 'Xiao ', 'Yang ',
+'Ling ', 'Zhi ', 'Qu ', 'Yuan ', 'Xue ', 'Tuo ', 'Si ', 'Zhi ', 'Er ', 'Gua ', 'Xiu ', 'Heng ', 'Zhou ', 'Ge ', 'Luan ', 'Hong ',
+'Wu ', 'Bo ', 'Li ', 'Juan ', 'Hu ', 'E ', 'Yu ', 'Xian ', 'Ti ', 'Wu ', 'Que ', 'Miao ', 'An ', 'Kun ', 'Bei ', 'Peng ',
+'Qian ', 'Chun ', 'Geng ', 'Yuan ', 'Su ', 'Hu ', 'He ', 'E ', 'Gu ', 'Qiu ', 'Zi ', 'Mei ', 'Mu ', 'Ni ', 'Yao ', 'Weng ',
+'Liu ', 'Ji ', 'Ni ', 'Jian ', 'He ', 'Yi ', 'Ying ', 'Zhe ', 'Liao ', 'Liao ', 'Jiao ', 'Jiu ', 'Yu ', 'Lu ', 'Xuan ', 'Zhan ',
+'Ying ', 'Huo ', 'Meng ', 'Guan ', 'Shuang ', 'Lu ', 'Jin ', 'Ling ', 'Jian ', 'Xian ', 'Cuo ', 'Jian ', 'Jian ', 'Yan ', 'Cuo ', 'Lu ',
+'You ', 'Cu ', 'Ji ', 'Biao ', 'Cu ', 'Biao ', 'Zhu ', 'Jun ', 'Zhu ', 'Jian ', 'Mi ', 'Mi ', 'Wu ', 'Liu ', 'Chen ', 'Jun ',
+'Lin ', 'Ni ', 'Qi ', 'Lu ', 'Jiu ', 'Jun ', 'Jing ', 'Li ', 'Xiang ', 'Yan ', 'Jia ', 'Mi ', 'Li ', 'She ', 'Zhang ', 'Lin ',
+'Jing ', 'Ji ', 'Ling ', 'Yan ', 'Cu ', 'Mai ', 'Mai ', 'Ge ', 'Chao ', 'Fu ', 'Mian ', 'Mian ', 'Fu ', 'Pao ', 'Qu ', 'Qu ',
+'Mou ', 'Fu ', 'Xian ', 'Lai ', 'Qu ', 'Mian ', qq{[?] }, 'Feng ', 'Fu ', 'Qu ', 'Mian ', 'Ma ', 'Mo ', 'Mo ', 'Hui ', 'Ma ',
+'Zou ', 'Nen ', 'Fen ', 'Huang ', 'Huang ', 'Jin ', 'Guang ', 'Tian ', 'Tou ', 'Heng ', 'Xi ', 'Kuang ', 'Heng ', 'Shu ', 'Li ', 'Nian ',
+'Chi ', 'Hei ', 'Hei ', 'Yi ', 'Qian ', 'Dan ', 'Xi ', 'Tuan ', 'Mo ', 'Mo ', 'Qian ', 'Dai ', 'Chu ', 'You ', 'Dian ', 'Yi ',
+'Xia ', 'Yan ', 'Qu ', 'Mei ', 'Yan ', 'Jing ', 'Yu ', 'Li ', 'Dang ', 'Du ', 'Can ', 'Yin ', 'An ', 'Yan ', 'Tan ', 'An ',
+'Zhen ', 'Dai ', 'Can ', 'Yi ', 'Mei ', 'Dan ', 'Yan ', 'Du ', 'Lu ', 'Zhi ', 'Fen ', 'Fu ', 'Fu ', 'Min ', 'Min ', 'Yuan ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9f.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9f.pm
new file mode 100644
index 0000000..d34c281
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/x9f.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0x9f] = [
+'Cu ', 'Qu ', 'Chao ', 'Wa ', 'Zhu ', 'Zhi ', 'Mang ', 'Ao ', 'Bie ', 'Tuo ', 'Bi ', 'Yuan ', 'Chao ', 'Tuo ', 'Ding ', 'Mi ',
+'Nai ', 'Ding ', 'Zi ', 'Gu ', 'Gu ', 'Dong ', 'Fen ', 'Tao ', 'Yuan ', 'Pi ', 'Chang ', 'Gao ', 'Qi ', 'Yuan ', 'Tang ', 'Teng ',
+'Shu ', 'Shu ', 'Fen ', 'Fei ', 'Wen ', 'Ba ', 'Diao ', 'Tuo ', 'Tong ', 'Qu ', 'Sheng ', 'Shi ', 'You ', 'Shi ', 'Ting ', 'Wu ',
+'Nian ', 'Jing ', 'Hun ', 'Ju ', 'Yan ', 'Tu ', 'Ti ', 'Xi ', 'Xian ', 'Yan ', 'Lei ', 'Bi ', 'Yao ', 'Qiu ', 'Han ', 'Wu ',
+'Wu ', 'Hou ', 'Xi ', 'Ge ', 'Zha ', 'Xiu ', 'Weng ', 'Zha ', 'Nong ', 'Nang ', 'Qi ', 'Zhai ', 'Ji ', 'Zi ', 'Ji ', 'Ji ',
+'Qi ', 'Ji ', 'Chi ', 'Chen ', 'Chen ', 'He ', 'Ya ', 'Ken ', 'Xie ', 'Pao ', 'Cuo ', 'Shi ', 'Zi ', 'Chi ', 'Nian ', 'Ju ',
+'Tiao ', 'Ling ', 'Ling ', 'Chu ', 'Quan ', 'Xie ', 'Ken ', 'Nie ', 'Jiu ', 'Yao ', 'Chuo ', 'Kun ', 'Yu ', 'Chu ', 'Yi ', 'Ni ',
+'Cuo ', 'Zou ', 'Qu ', 'Nen ', 'Xian ', 'Ou ', 'E ', 'Wo ', 'Yi ', 'Chuo ', 'Zou ', 'Dian ', 'Chu ', 'Jin ', 'Ya ', 'Chi ',
+'Chen ', 'He ', 'Ken ', 'Ju ', 'Ling ', 'Pao ', 'Tiao ', 'Zi ', 'Ken ', 'Yu ', 'Chuo ', 'Qu ', 'Wo ', 'Long ', 'Pang ', 'Gong ',
+'Pang ', 'Yan ', 'Long ', 'Long ', 'Gong ', 'Kan ', 'Ta ', 'Ling ', 'Ta ', 'Long ', 'Gong ', 'Kan ', 'Gui ', 'Qiu ', 'Bie ', 'Gui ',
+'Yue ', 'Chui ', 'He ', 'Jue ', 'Xie ', 'Yu ', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa0.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa0.pm
new file mode 100644
index 0000000..b0d4638
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa0.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xa0] = [
+'it', 'ix', 'i', 'ip', 'iet', 'iex', 'ie', 'iep', 'at', 'ax', 'a', 'ap', 'uox', 'uo', 'uop', 'ot',
+'ox', 'o', 'op', 'ex', 'e', 'wu', 'bit', 'bix', 'bi', 'bip', 'biet', 'biex', 'bie', 'biep', 'bat', 'bax',
+'ba', 'bap', 'buox', 'buo', 'buop', 'bot', 'box', 'bo', 'bop', 'bex', 'be', 'bep', 'but', 'bux', 'bu', 'bup',
+'burx', 'bur', 'byt', 'byx', 'by', 'byp', 'byrx', 'byr', 'pit', 'pix', 'pi', 'pip', 'piex', 'pie', 'piep', 'pat',
+'pax', 'pa', 'pap', 'puox', 'puo', 'puop', 'pot', 'pox', 'po', 'pop', 'put', 'pux', 'pu', 'pup', 'purx', 'pur',
+'pyt', 'pyx', 'py', 'pyp', 'pyrx', 'pyr', 'bbit', 'bbix', 'bbi', 'bbip', 'bbiet', 'bbiex', 'bbie', 'bbiep', 'bbat', 'bbax',
+'bba', 'bbap', 'bbuox', 'bbuo', 'bbuop', 'bbot', 'bbox', 'bbo', 'bbop', 'bbex', 'bbe', 'bbep', 'bbut', 'bbux', 'bbu', 'bbup',
+'bburx', 'bbur', 'bbyt', 'bbyx', 'bby', 'bbyp', 'nbit', 'nbix', 'nbi', 'nbip', 'nbiex', 'nbie', 'nbiep', 'nbat', 'nbax', 'nba',
+'nbap', 'nbot', 'nbox', 'nbo', 'nbop', 'nbut', 'nbux', 'nbu', 'nbup', 'nburx', 'nbur', 'nbyt', 'nbyx', 'nby', 'nbyp', 'nbyrx',
+'nbyr', 'hmit', 'hmix', 'hmi', 'hmip', 'hmiex', 'hmie', 'hmiep', 'hmat', 'hmax', 'hma', 'hmap', 'hmuox', 'hmuo', 'hmuop', 'hmot',
+'hmox', 'hmo', 'hmop', 'hmut', 'hmux', 'hmu', 'hmup', 'hmurx', 'hmur', 'hmyx', 'hmy', 'hmyp', 'hmyrx', 'hmyr', 'mit', 'mix',
+'mi', 'mip', 'miex', 'mie', 'miep', 'mat', 'max', 'ma', 'map', 'muot', 'muox', 'muo', 'muop', 'mot', 'mox', 'mo',
+'mop', 'mex', 'me', 'mut', 'mux', 'mu', 'mup', 'murx', 'mur', 'myt', 'myx', 'my', 'myp', 'fit', 'fix', 'fi',
+'fip', 'fat', 'fax', 'fa', 'fap', 'fox', 'fo', 'fop', 'fut', 'fux', 'fu', 'fup', 'furx', 'fur', 'fyt', 'fyx',
+'fy', 'fyp', 'vit', 'vix', 'vi', 'vip', 'viet', 'viex', 'vie', 'viep', 'vat', 'vax', 'va', 'vap', 'vot', 'vox',
+'vo', 'vop', 'vex', 'vep', 'vut', 'vux', 'vu', 'vup', 'vurx', 'vur', 'vyt', 'vyx', 'vy', 'vyp', 'vyrx', 'vyr',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa1.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa1.pm
new file mode 100644
index 0000000..d645fc4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa1.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xa1] = [
+'dit', 'dix', 'di', 'dip', 'diex', 'die', 'diep', 'dat', 'dax', 'da', 'dap', 'duox', 'duo', 'dot', 'dox', 'do',
+'dop', 'dex', 'de', 'dep', 'dut', 'dux', 'du', 'dup', 'durx', 'dur', 'tit', 'tix', 'ti', 'tip', 'tiex', 'tie',
+'tiep', 'tat', 'tax', 'ta', 'tap', 'tuot', 'tuox', 'tuo', 'tuop', 'tot', 'tox', 'to', 'top', 'tex', 'te', 'tep',
+'tut', 'tux', 'tu', 'tup', 'turx', 'tur', 'ddit', 'ddix', 'ddi', 'ddip', 'ddiex', 'ddie', 'ddiep', 'ddat', 'ddax', 'dda',
+'ddap', 'dduox', 'dduo', 'dduop', 'ddot', 'ddox', 'ddo', 'ddop', 'ddex', 'dde', 'ddep', 'ddut', 'ddux', 'ddu', 'ddup', 'ddurx',
+'ddur', 'ndit', 'ndix', 'ndi', 'ndip', 'ndiex', 'ndie', 'ndat', 'ndax', 'nda', 'ndap', 'ndot', 'ndox', 'ndo', 'ndop', 'ndex',
+'nde', 'ndep', 'ndut', 'ndux', 'ndu', 'ndup', 'ndurx', 'ndur', 'hnit', 'hnix', 'hni', 'hnip', 'hniet', 'hniex', 'hnie', 'hniep',
+'hnat', 'hnax', 'hna', 'hnap', 'hnuox', 'hnuo', 'hnot', 'hnox', 'hnop', 'hnex', 'hne', 'hnep', 'hnut', 'nit', 'nix', 'ni',
+'nip', 'niex', 'nie', 'niep', 'nax', 'na', 'nap', 'nuox', 'nuo', 'nuop', 'not', 'nox', 'no', 'nop', 'nex', 'ne',
+'nep', 'nut', 'nux', 'nu', 'nup', 'nurx', 'nur', 'hlit', 'hlix', 'hli', 'hlip', 'hliex', 'hlie', 'hliep', 'hlat', 'hlax',
+'hla', 'hlap', 'hluox', 'hluo', 'hluop', 'hlox', 'hlo', 'hlop', 'hlex', 'hle', 'hlep', 'hlut', 'hlux', 'hlu', 'hlup', 'hlurx',
+'hlur', 'hlyt', 'hlyx', 'hly', 'hlyp', 'hlyrx', 'hlyr', 'lit', 'lix', 'li', 'lip', 'liet', 'liex', 'lie', 'liep', 'lat',
+'lax', 'la', 'lap', 'luot', 'luox', 'luo', 'luop', 'lot', 'lox', 'lo', 'lop', 'lex', 'le', 'lep', 'lut', 'lux',
+'lu', 'lup', 'lurx', 'lur', 'lyt', 'lyx', 'ly', 'lyp', 'lyrx', 'lyr', 'git', 'gix', 'gi', 'gip', 'giet', 'giex',
+'gie', 'giep', 'gat', 'gax', 'ga', 'gap', 'guot', 'guox', 'guo', 'guop', 'got', 'gox', 'go', 'gop', 'get', 'gex',
+'ge', 'gep', 'gut', 'gux', 'gu', 'gup', 'gurx', 'gur', 'kit', 'kix', 'ki', 'kip', 'kiex', 'kie', 'kiep', 'kat',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa2.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa2.pm
new file mode 100644
index 0000000..f331a03
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa2.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xa2] = [
+'kax', 'ka', 'kap', 'kuox', 'kuo', 'kuop', 'kot', 'kox', 'ko', 'kop', 'ket', 'kex', 'ke', 'kep', 'kut', 'kux',
+'ku', 'kup', 'kurx', 'kur', 'ggit', 'ggix', 'ggi', 'ggiex', 'ggie', 'ggiep', 'ggat', 'ggax', 'gga', 'ggap', 'gguot', 'gguox',
+'gguo', 'gguop', 'ggot', 'ggox', 'ggo', 'ggop', 'gget', 'ggex', 'gge', 'ggep', 'ggut', 'ggux', 'ggu', 'ggup', 'ggurx', 'ggur',
+'mgiex', 'mgie', 'mgat', 'mgax', 'mga', 'mgap', 'mguox', 'mguo', 'mguop', 'mgot', 'mgox', 'mgo', 'mgop', 'mgex', 'mge', 'mgep',
+'mgut', 'mgux', 'mgu', 'mgup', 'mgurx', 'mgur', 'hxit', 'hxix', 'hxi', 'hxip', 'hxiet', 'hxiex', 'hxie', 'hxiep', 'hxat', 'hxax',
+'hxa', 'hxap', 'hxuot', 'hxuox', 'hxuo', 'hxuop', 'hxot', 'hxox', 'hxo', 'hxop', 'hxex', 'hxe', 'hxep', 'ngiex', 'ngie', 'ngiep',
+'ngat', 'ngax', 'nga', 'ngap', 'nguot', 'nguox', 'nguo', 'ngot', 'ngox', 'ngo', 'ngop', 'ngex', 'nge', 'ngep', 'hit', 'hiex',
+'hie', 'hat', 'hax', 'ha', 'hap', 'huot', 'huox', 'huo', 'huop', 'hot', 'hox', 'ho', 'hop', 'hex', 'he', 'hep',
+'wat', 'wax', 'wa', 'wap', 'wuox', 'wuo', 'wuop', 'wox', 'wo', 'wop', 'wex', 'we', 'wep', 'zit', 'zix', 'zi',
+'zip', 'ziex', 'zie', 'ziep', 'zat', 'zax', 'za', 'zap', 'zuox', 'zuo', 'zuop', 'zot', 'zox', 'zo', 'zop', 'zex',
+'ze', 'zep', 'zut', 'zux', 'zu', 'zup', 'zurx', 'zur', 'zyt', 'zyx', 'zy', 'zyp', 'zyrx', 'zyr', 'cit', 'cix',
+'ci', 'cip', 'ciet', 'ciex', 'cie', 'ciep', 'cat', 'cax', 'ca', 'cap', 'cuox', 'cuo', 'cuop', 'cot', 'cox', 'co',
+'cop', 'cex', 'ce', 'cep', 'cut', 'cux', 'cu', 'cup', 'curx', 'cur', 'cyt', 'cyx', 'cy', 'cyp', 'cyrx', 'cyr',
+'zzit', 'zzix', 'zzi', 'zzip', 'zziet', 'zziex', 'zzie', 'zziep', 'zzat', 'zzax', 'zza', 'zzap', 'zzox', 'zzo', 'zzop', 'zzex',
+'zze', 'zzep', 'zzux', 'zzu', 'zzup', 'zzurx', 'zzur', 'zzyt', 'zzyx', 'zzy', 'zzyp', 'zzyrx', 'zzyr', 'nzit', 'nzix', 'nzi',
+'nzip', 'nziex', 'nzie', 'nziep', 'nzat', 'nzax', 'nza', 'nzap', 'nzuox', 'nzuo', 'nzox', 'nzop', 'nzex', 'nze', 'nzux', 'nzu',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa3.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa3.pm
new file mode 100644
index 0000000..e5b25f5
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa3.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:36 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xa3] = [
+'nzup', 'nzurx', 'nzur', 'nzyt', 'nzyx', 'nzy', 'nzyp', 'nzyrx', 'nzyr', 'sit', 'six', 'si', 'sip', 'siex', 'sie', 'siep',
+'sat', 'sax', 'sa', 'sap', 'suox', 'suo', 'suop', 'sot', 'sox', 'so', 'sop', 'sex', 'se', 'sep', 'sut', 'sux',
+'su', 'sup', 'surx', 'sur', 'syt', 'syx', 'sy', 'syp', 'syrx', 'syr', 'ssit', 'ssix', 'ssi', 'ssip', 'ssiex', 'ssie',
+'ssiep', 'ssat', 'ssax', 'ssa', 'ssap', 'ssot', 'ssox', 'sso', 'ssop', 'ssex', 'sse', 'ssep', 'ssut', 'ssux', 'ssu', 'ssup',
+'ssyt', 'ssyx', 'ssy', 'ssyp', 'ssyrx', 'ssyr', 'zhat', 'zhax', 'zha', 'zhap', 'zhuox', 'zhuo', 'zhuop', 'zhot', 'zhox', 'zho',
+'zhop', 'zhet', 'zhex', 'zhe', 'zhep', 'zhut', 'zhux', 'zhu', 'zhup', 'zhurx', 'zhur', 'zhyt', 'zhyx', 'zhy', 'zhyp', 'zhyrx',
+'zhyr', 'chat', 'chax', 'cha', 'chap', 'chuot', 'chuox', 'chuo', 'chuop', 'chot', 'chox', 'cho', 'chop', 'chet', 'chex', 'che',
+'chep', 'chux', 'chu', 'chup', 'churx', 'chur', 'chyt', 'chyx', 'chy', 'chyp', 'chyrx', 'chyr', 'rrax', 'rra', 'rruox', 'rruo',
+'rrot', 'rrox', 'rro', 'rrop', 'rret', 'rrex', 'rre', 'rrep', 'rrut', 'rrux', 'rru', 'rrup', 'rrurx', 'rrur', 'rryt', 'rryx',
+'rry', 'rryp', 'rryrx', 'rryr', 'nrat', 'nrax', 'nra', 'nrap', 'nrox', 'nro', 'nrop', 'nret', 'nrex', 'nre', 'nrep', 'nrut',
+'nrux', 'nru', 'nrup', 'nrurx', 'nrur', 'nryt', 'nryx', 'nry', 'nryp', 'nryrx', 'nryr', 'shat', 'shax', 'sha', 'shap', 'shuox',
+'shuo', 'shuop', 'shot', 'shox', 'sho', 'shop', 'shet', 'shex', 'she', 'shep', 'shut', 'shux', 'shu', 'shup', 'shurx', 'shur',
+'shyt', 'shyx', 'shy', 'shyp', 'shyrx', 'shyr', 'rat', 'rax', 'ra', 'rap', 'ruox', 'ruo', 'ruop', 'rot', 'rox', 'ro',
+'rop', 'rex', 're', 'rep', 'rut', 'rux', 'ru', 'rup', 'rurx', 'rur', 'ryt', 'ryx', 'ry', 'ryp', 'ryrx', 'ryr',
+'jit', 'jix', 'ji', 'jip', 'jiet', 'jiex', 'jie', 'jiep', 'juot', 'juox', 'juo', 'juop', 'jot', 'jox', 'jo', 'jop',
+'jut', 'jux', 'ju', 'jup', 'jurx', 'jur', 'jyt', 'jyx', 'jy', 'jyp', 'jyrx', 'jyr', 'qit', 'qix', 'qi', 'qip',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa4.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa4.pm
new file mode 100644
index 0000000..11624b1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xa4.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xa4] = [
+'qiet', 'qiex', 'qie', 'qiep', 'quot', 'quox', 'quo', 'quop', 'qot', 'qox', 'qo', 'qop', 'qut', 'qux', 'qu', 'qup',
+'qurx', 'qur', 'qyt', 'qyx', 'qy', 'qyp', 'qyrx', 'qyr', 'jjit', 'jjix', 'jji', 'jjip', 'jjiet', 'jjiex', 'jjie', 'jjiep',
+'jjuox', 'jjuo', 'jjuop', 'jjot', 'jjox', 'jjo', 'jjop', 'jjut', 'jjux', 'jju', 'jjup', 'jjurx', 'jjur', 'jjyt', 'jjyx', 'jjy',
+'jjyp', 'njit', 'njix', 'nji', 'njip', 'njiet', 'njiex', 'njie', 'njiep', 'njuox', 'njuo', 'njot', 'njox', 'njo', 'njop', 'njux',
+'nju', 'njup', 'njurx', 'njur', 'njyt', 'njyx', 'njy', 'njyp', 'njyrx', 'njyr', 'nyit', 'nyix', 'nyi', 'nyip', 'nyiet', 'nyiex',
+'nyie', 'nyiep', 'nyuox', 'nyuo', 'nyuop', 'nyot', 'nyox', 'nyo', 'nyop', 'nyut', 'nyux', 'nyu', 'nyup', 'xit', 'xix', 'xi',
+'xip', 'xiet', 'xiex', 'xie', 'xiep', 'xuox', 'xuo', 'xot', 'xox', 'xo', 'xop', 'xyt', 'xyx', 'xy', 'xyp', 'xyrx',
+'xyr', 'yit', 'yix', 'yi', 'yip', 'yiet', 'yiex', 'yie', 'yiep', 'yuot', 'yuox', 'yuo', 'yuop', 'yot', 'yox', 'yo',
+'yop', 'yut', 'yux', 'yu', 'yup', 'yurx', 'yur', 'yyt', 'yyx', 'yy', 'yyp', 'yyrx', 'yyr', '[?]', '[?]', '[?]',
+'Qot', 'Li', 'Kit', 'Nyip', 'Cyp', 'Ssi', 'Ggop', 'Gep', 'Mi', 'Hxit', 'Lyr', 'Bbut', 'Mop', 'Yo', 'Put', 'Hxuo',
+'Tat', 'Ga', '[?]', '[?]', 'Ddur', 'Bur', 'Gguo', 'Nyop', 'Tu', 'Op', 'Jjut', 'Zot', 'Pyt', 'Hmo', 'Yit', 'Vur',
+'Shy', 'Vep', 'Za', 'Jo', '[?]', 'Jjy', 'Got', 'Jjie', 'Wo', 'Du', 'Shur', 'Lie', 'Cy', 'Cuop', 'Cip', 'Hxop',
+'Shat', '[?]', 'Shop', 'Che', 'Zziet', '[?]', 'Ke', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xac.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xac.pm
new file mode 100644
index 0000000..0ed142a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xac.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xac] = [
+'ga', 'gag', 'gagg', 'gags', 'gan', 'ganj', 'ganh', 'gad', 'gal', 'galg', 'galm', 'galb', 'gals', 'galt', 'galp', 'galh',
+'gam', 'gab', 'gabs', 'gas', 'gass', 'gang', 'gaj', 'gac', 'gak', 'gat', 'gap', 'gah', 'gae', 'gaeg', 'gaegg', 'gaegs',
+'gaen', 'gaenj', 'gaenh', 'gaed', 'gael', 'gaelg', 'gaelm', 'gaelb', 'gaels', 'gaelt', 'gaelp', 'gaelh', 'gaem', 'gaeb', 'gaebs', 'gaes',
+'gaess', 'gaeng', 'gaej', 'gaec', 'gaek', 'gaet', 'gaep', 'gaeh', 'gya', 'gyag', 'gyagg', 'gyags', 'gyan', 'gyanj', 'gyanh', 'gyad',
+'gyal', 'gyalg', 'gyalm', 'gyalb', 'gyals', 'gyalt', 'gyalp', 'gyalh', 'gyam', 'gyab', 'gyabs', 'gyas', 'gyass', 'gyang', 'gyaj', 'gyac',
+'gyak', 'gyat', 'gyap', 'gyah', 'gyae', 'gyaeg', 'gyaegg', 'gyaegs', 'gyaen', 'gyaenj', 'gyaenh', 'gyaed', 'gyael', 'gyaelg', 'gyaelm', 'gyaelb',
+'gyaels', 'gyaelt', 'gyaelp', 'gyaelh', 'gyaem', 'gyaeb', 'gyaebs', 'gyaes', 'gyaess', 'gyaeng', 'gyaej', 'gyaec', 'gyaek', 'gyaet', 'gyaep', 'gyaeh',
+'geo', 'geog', 'geogg', 'geogs', 'geon', 'geonj', 'geonh', 'geod', 'geol', 'geolg', 'geolm', 'geolb', 'geols', 'geolt', 'geolp', 'geolh',
+'geom', 'geob', 'geobs', 'geos', 'geoss', 'geong', 'geoj', 'geoc', 'geok', 'geot', 'geop', 'geoh', 'ge', 'geg', 'gegg', 'gegs',
+'gen', 'genj', 'genh', 'ged', 'gel', 'gelg', 'gelm', 'gelb', 'gels', 'gelt', 'gelp', 'gelh', 'gem', 'geb', 'gebs', 'ges',
+'gess', 'geng', 'gej', 'gec', 'gek', 'get', 'gep', 'geh', 'gyeo', 'gyeog', 'gyeogg', 'gyeogs', 'gyeon', 'gyeonj', 'gyeonh', 'gyeod',
+'gyeol', 'gyeolg', 'gyeolm', 'gyeolb', 'gyeols', 'gyeolt', 'gyeolp', 'gyeolh', 'gyeom', 'gyeob', 'gyeobs', 'gyeos', 'gyeoss', 'gyeong', 'gyeoj', 'gyeoc',
+'gyeok', 'gyeot', 'gyeop', 'gyeoh', 'gye', 'gyeg', 'gyegg', 'gyegs', 'gyen', 'gyenj', 'gyenh', 'gyed', 'gyel', 'gyelg', 'gyelm', 'gyelb',
+'gyels', 'gyelt', 'gyelp', 'gyelh', 'gyem', 'gyeb', 'gyebs', 'gyes', 'gyess', 'gyeng', 'gyej', 'gyec', 'gyek', 'gyet', 'gyep', 'gyeh',
+'go', 'gog', 'gogg', 'gogs', 'gon', 'gonj', 'gonh', 'god', 'gol', 'golg', 'golm', 'golb', 'gols', 'golt', 'golp', 'golh',
+'gom', 'gob', 'gobs', 'gos', 'goss', 'gong', 'goj', 'goc', 'gok', 'got', 'gop', 'goh', 'gwa', 'gwag', 'gwagg', 'gwags',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xad.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xad.pm
new file mode 100644
index 0000000..46db21b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xad.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xad] = [
+'gwan', 'gwanj', 'gwanh', 'gwad', 'gwal', 'gwalg', 'gwalm', 'gwalb', 'gwals', 'gwalt', 'gwalp', 'gwalh', 'gwam', 'gwab', 'gwabs', 'gwas',
+'gwass', 'gwang', 'gwaj', 'gwac', 'gwak', 'gwat', 'gwap', 'gwah', 'gwae', 'gwaeg', 'gwaegg', 'gwaegs', 'gwaen', 'gwaenj', 'gwaenh', 'gwaed',
+'gwael', 'gwaelg', 'gwaelm', 'gwaelb', 'gwaels', 'gwaelt', 'gwaelp', 'gwaelh', 'gwaem', 'gwaeb', 'gwaebs', 'gwaes', 'gwaess', 'gwaeng', 'gwaej', 'gwaec',
+'gwaek', 'gwaet', 'gwaep', 'gwaeh', 'goe', 'goeg', 'goegg', 'goegs', 'goen', 'goenj', 'goenh', 'goed', 'goel', 'goelg', 'goelm', 'goelb',
+'goels', 'goelt', 'goelp', 'goelh', 'goem', 'goeb', 'goebs', 'goes', 'goess', 'goeng', 'goej', 'goec', 'goek', 'goet', 'goep', 'goeh',
+'gyo', 'gyog', 'gyogg', 'gyogs', 'gyon', 'gyonj', 'gyonh', 'gyod', 'gyol', 'gyolg', 'gyolm', 'gyolb', 'gyols', 'gyolt', 'gyolp', 'gyolh',
+'gyom', 'gyob', 'gyobs', 'gyos', 'gyoss', 'gyong', 'gyoj', 'gyoc', 'gyok', 'gyot', 'gyop', 'gyoh', 'gu', 'gug', 'gugg', 'gugs',
+'gun', 'gunj', 'gunh', 'gud', 'gul', 'gulg', 'gulm', 'gulb', 'guls', 'gult', 'gulp', 'gulh', 'gum', 'gub', 'gubs', 'gus',
+'guss', 'gung', 'guj', 'guc', 'guk', 'gut', 'gup', 'guh', 'gweo', 'gweog', 'gweogg', 'gweogs', 'gweon', 'gweonj', 'gweonh', 'gweod',
+'gweol', 'gweolg', 'gweolm', 'gweolb', 'gweols', 'gweolt', 'gweolp', 'gweolh', 'gweom', 'gweob', 'gweobs', 'gweos', 'gweoss', 'gweong', 'gweoj', 'gweoc',
+'gweok', 'gweot', 'gweop', 'gweoh', 'gwe', 'gweg', 'gwegg', 'gwegs', 'gwen', 'gwenj', 'gwenh', 'gwed', 'gwel', 'gwelg', 'gwelm', 'gwelb',
+'gwels', 'gwelt', 'gwelp', 'gwelh', 'gwem', 'gweb', 'gwebs', 'gwes', 'gwess', 'gweng', 'gwej', 'gwec', 'gwek', 'gwet', 'gwep', 'gweh',
+'gwi', 'gwig', 'gwigg', 'gwigs', 'gwin', 'gwinj', 'gwinh', 'gwid', 'gwil', 'gwilg', 'gwilm', 'gwilb', 'gwils', 'gwilt', 'gwilp', 'gwilh',
+'gwim', 'gwib', 'gwibs', 'gwis', 'gwiss', 'gwing', 'gwij', 'gwic', 'gwik', 'gwit', 'gwip', 'gwih', 'gyu', 'gyug', 'gyugg', 'gyugs',
+'gyun', 'gyunj', 'gyunh', 'gyud', 'gyul', 'gyulg', 'gyulm', 'gyulb', 'gyuls', 'gyult', 'gyulp', 'gyulh', 'gyum', 'gyub', 'gyubs', 'gyus',
+'gyuss', 'gyung', 'gyuj', 'gyuc', 'gyuk', 'gyut', 'gyup', 'gyuh', 'geu', 'geug', 'geugg', 'geugs', 'geun', 'geunj', 'geunh', 'geud',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xae.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xae.pm
new file mode 100644
index 0000000..46a369c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xae.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xae] = [
+'geul', 'geulg', 'geulm', 'geulb', 'geuls', 'geult', 'geulp', 'geulh', 'geum', 'geub', 'geubs', 'geus', 'geuss', 'geung', 'geuj', 'geuc',
+'geuk', 'geut', 'geup', 'geuh', 'gyi', 'gyig', 'gyigg', 'gyigs', 'gyin', 'gyinj', 'gyinh', 'gyid', 'gyil', 'gyilg', 'gyilm', 'gyilb',
+'gyils', 'gyilt', 'gyilp', 'gyilh', 'gyim', 'gyib', 'gyibs', 'gyis', 'gyiss', 'gying', 'gyij', 'gyic', 'gyik', 'gyit', 'gyip', 'gyih',
+'gi', 'gig', 'gigg', 'gigs', 'gin', 'ginj', 'ginh', 'gid', 'gil', 'gilg', 'gilm', 'gilb', 'gils', 'gilt', 'gilp', 'gilh',
+'gim', 'gib', 'gibs', 'gis', 'giss', 'ging', 'gij', 'gic', 'gik', 'git', 'gip', 'gih', 'gga', 'ggag', 'ggagg', 'ggags',
+'ggan', 'gganj', 'gganh', 'ggad', 'ggal', 'ggalg', 'ggalm', 'ggalb', 'ggals', 'ggalt', 'ggalp', 'ggalh', 'ggam', 'ggab', 'ggabs', 'ggas',
+'ggass', 'ggang', 'ggaj', 'ggac', 'ggak', 'ggat', 'ggap', 'ggah', 'ggae', 'ggaeg', 'ggaegg', 'ggaegs', 'ggaen', 'ggaenj', 'ggaenh', 'ggaed',
+'ggael', 'ggaelg', 'ggaelm', 'ggaelb', 'ggaels', 'ggaelt', 'ggaelp', 'ggaelh', 'ggaem', 'ggaeb', 'ggaebs', 'ggaes', 'ggaess', 'ggaeng', 'ggaej', 'ggaec',
+'ggaek', 'ggaet', 'ggaep', 'ggaeh', 'ggya', 'ggyag', 'ggyagg', 'ggyags', 'ggyan', 'ggyanj', 'ggyanh', 'ggyad', 'ggyal', 'ggyalg', 'ggyalm', 'ggyalb',
+'ggyals', 'ggyalt', 'ggyalp', 'ggyalh', 'ggyam', 'ggyab', 'ggyabs', 'ggyas', 'ggyass', 'ggyang', 'ggyaj', 'ggyac', 'ggyak', 'ggyat', 'ggyap', 'ggyah',
+'ggyae', 'ggyaeg', 'ggyaegg', 'ggyaegs', 'ggyaen', 'ggyaenj', 'ggyaenh', 'ggyaed', 'ggyael', 'ggyaelg', 'ggyaelm', 'ggyaelb', 'ggyaels', 'ggyaelt', 'ggyaelp', 'ggyaelh',
+'ggyaem', 'ggyaeb', 'ggyaebs', 'ggyaes', 'ggyaess', 'ggyaeng', 'ggyaej', 'ggyaec', 'ggyaek', 'ggyaet', 'ggyaep', 'ggyaeh', 'ggeo', 'ggeog', 'ggeogg', 'ggeogs',
+'ggeon', 'ggeonj', 'ggeonh', 'ggeod', 'ggeol', 'ggeolg', 'ggeolm', 'ggeolb', 'ggeols', 'ggeolt', 'ggeolp', 'ggeolh', 'ggeom', 'ggeob', 'ggeobs', 'ggeos',
+'ggeoss', 'ggeong', 'ggeoj', 'ggeoc', 'ggeok', 'ggeot', 'ggeop', 'ggeoh', 'gge', 'ggeg', 'ggegg', 'ggegs', 'ggen', 'ggenj', 'ggenh', 'gged',
+'ggel', 'ggelg', 'ggelm', 'ggelb', 'ggels', 'ggelt', 'ggelp', 'ggelh', 'ggem', 'ggeb', 'ggebs', 'gges', 'ggess', 'ggeng', 'ggej', 'ggec',
+'ggek', 'gget', 'ggep', 'ggeh', 'ggyeo', 'ggyeog', 'ggyeogg', 'ggyeogs', 'ggyeon', 'ggyeonj', 'ggyeonh', 'ggyeod', 'ggyeol', 'ggyeolg', 'ggyeolm', 'ggyeolb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xaf.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xaf.pm
new file mode 100644
index 0000000..45629d4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xaf.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xaf] = [
+'ggyeols', 'ggyeolt', 'ggyeolp', 'ggyeolh', 'ggyeom', 'ggyeob', 'ggyeobs', 'ggyeos', 'ggyeoss', 'ggyeong', 'ggyeoj', 'ggyeoc', 'ggyeok', 'ggyeot', 'ggyeop', 'ggyeoh',
+'ggye', 'ggyeg', 'ggyegg', 'ggyegs', 'ggyen', 'ggyenj', 'ggyenh', 'ggyed', 'ggyel', 'ggyelg', 'ggyelm', 'ggyelb', 'ggyels', 'ggyelt', 'ggyelp', 'ggyelh',
+'ggyem', 'ggyeb', 'ggyebs', 'ggyes', 'ggyess', 'ggyeng', 'ggyej', 'ggyec', 'ggyek', 'ggyet', 'ggyep', 'ggyeh', 'ggo', 'ggog', 'ggogg', 'ggogs',
+'ggon', 'ggonj', 'ggonh', 'ggod', 'ggol', 'ggolg', 'ggolm', 'ggolb', 'ggols', 'ggolt', 'ggolp', 'ggolh', 'ggom', 'ggob', 'ggobs', 'ggos',
+'ggoss', 'ggong', 'ggoj', 'ggoc', 'ggok', 'ggot', 'ggop', 'ggoh', 'ggwa', 'ggwag', 'ggwagg', 'ggwags', 'ggwan', 'ggwanj', 'ggwanh', 'ggwad',
+'ggwal', 'ggwalg', 'ggwalm', 'ggwalb', 'ggwals', 'ggwalt', 'ggwalp', 'ggwalh', 'ggwam', 'ggwab', 'ggwabs', 'ggwas', 'ggwass', 'ggwang', 'ggwaj', 'ggwac',
+'ggwak', 'ggwat', 'ggwap', 'ggwah', 'ggwae', 'ggwaeg', 'ggwaegg', 'ggwaegs', 'ggwaen', 'ggwaenj', 'ggwaenh', 'ggwaed', 'ggwael', 'ggwaelg', 'ggwaelm', 'ggwaelb',
+'ggwaels', 'ggwaelt', 'ggwaelp', 'ggwaelh', 'ggwaem', 'ggwaeb', 'ggwaebs', 'ggwaes', 'ggwaess', 'ggwaeng', 'ggwaej', 'ggwaec', 'ggwaek', 'ggwaet', 'ggwaep', 'ggwaeh',
+'ggoe', 'ggoeg', 'ggoegg', 'ggoegs', 'ggoen', 'ggoenj', 'ggoenh', 'ggoed', 'ggoel', 'ggoelg', 'ggoelm', 'ggoelb', 'ggoels', 'ggoelt', 'ggoelp', 'ggoelh',
+'ggoem', 'ggoeb', 'ggoebs', 'ggoes', 'ggoess', 'ggoeng', 'ggoej', 'ggoec', 'ggoek', 'ggoet', 'ggoep', 'ggoeh', 'ggyo', 'ggyog', 'ggyogg', 'ggyogs',
+'ggyon', 'ggyonj', 'ggyonh', 'ggyod', 'ggyol', 'ggyolg', 'ggyolm', 'ggyolb', 'ggyols', 'ggyolt', 'ggyolp', 'ggyolh', 'ggyom', 'ggyob', 'ggyobs', 'ggyos',
+'ggyoss', 'ggyong', 'ggyoj', 'ggyoc', 'ggyok', 'ggyot', 'ggyop', 'ggyoh', 'ggu', 'ggug', 'ggugg', 'ggugs', 'ggun', 'ggunj', 'ggunh', 'ggud',
+'ggul', 'ggulg', 'ggulm', 'ggulb', 'gguls', 'ggult', 'ggulp', 'ggulh', 'ggum', 'ggub', 'ggubs', 'ggus', 'gguss', 'ggung', 'gguj', 'gguc',
+'gguk', 'ggut', 'ggup', 'gguh', 'ggweo', 'ggweog', 'ggweogg', 'ggweogs', 'ggweon', 'ggweonj', 'ggweonh', 'ggweod', 'ggweol', 'ggweolg', 'ggweolm', 'ggweolb',
+'ggweols', 'ggweolt', 'ggweolp', 'ggweolh', 'ggweom', 'ggweob', 'ggweobs', 'ggweos', 'ggweoss', 'ggweong', 'ggweoj', 'ggweoc', 'ggweok', 'ggweot', 'ggweop', 'ggweoh',
+'ggwe', 'ggweg', 'ggwegg', 'ggwegs', 'ggwen', 'ggwenj', 'ggwenh', 'ggwed', 'ggwel', 'ggwelg', 'ggwelm', 'ggwelb', 'ggwels', 'ggwelt', 'ggwelp', 'ggwelh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb0.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb0.pm
new file mode 100644
index 0000000..094cd87
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb0.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb0] = [
+'ggwem', 'ggweb', 'ggwebs', 'ggwes', 'ggwess', 'ggweng', 'ggwej', 'ggwec', 'ggwek', 'ggwet', 'ggwep', 'ggweh', 'ggwi', 'ggwig', 'ggwigg', 'ggwigs',
+'ggwin', 'ggwinj', 'ggwinh', 'ggwid', 'ggwil', 'ggwilg', 'ggwilm', 'ggwilb', 'ggwils', 'ggwilt', 'ggwilp', 'ggwilh', 'ggwim', 'ggwib', 'ggwibs', 'ggwis',
+'ggwiss', 'ggwing', 'ggwij', 'ggwic', 'ggwik', 'ggwit', 'ggwip', 'ggwih', 'ggyu', 'ggyug', 'ggyugg', 'ggyugs', 'ggyun', 'ggyunj', 'ggyunh', 'ggyud',
+'ggyul', 'ggyulg', 'ggyulm', 'ggyulb', 'ggyuls', 'ggyult', 'ggyulp', 'ggyulh', 'ggyum', 'ggyub', 'ggyubs', 'ggyus', 'ggyuss', 'ggyung', 'ggyuj', 'ggyuc',
+'ggyuk', 'ggyut', 'ggyup', 'ggyuh', 'ggeu', 'ggeug', 'ggeugg', 'ggeugs', 'ggeun', 'ggeunj', 'ggeunh', 'ggeud', 'ggeul', 'ggeulg', 'ggeulm', 'ggeulb',
+'ggeuls', 'ggeult', 'ggeulp', 'ggeulh', 'ggeum', 'ggeub', 'ggeubs', 'ggeus', 'ggeuss', 'ggeung', 'ggeuj', 'ggeuc', 'ggeuk', 'ggeut', 'ggeup', 'ggeuh',
+'ggyi', 'ggyig', 'ggyigg', 'ggyigs', 'ggyin', 'ggyinj', 'ggyinh', 'ggyid', 'ggyil', 'ggyilg', 'ggyilm', 'ggyilb', 'ggyils', 'ggyilt', 'ggyilp', 'ggyilh',
+'ggyim', 'ggyib', 'ggyibs', 'ggyis', 'ggyiss', 'ggying', 'ggyij', 'ggyic', 'ggyik', 'ggyit', 'ggyip', 'ggyih', 'ggi', 'ggig', 'ggigg', 'ggigs',
+'ggin', 'gginj', 'gginh', 'ggid', 'ggil', 'ggilg', 'ggilm', 'ggilb', 'ggils', 'ggilt', 'ggilp', 'ggilh', 'ggim', 'ggib', 'ggibs', 'ggis',
+'ggiss', 'gging', 'ggij', 'ggic', 'ggik', 'ggit', 'ggip', 'ggih', 'na', 'nag', 'nagg', 'nags', 'nan', 'nanj', 'nanh', 'nad',
+'nal', 'nalg', 'nalm', 'nalb', 'nals', 'nalt', 'nalp', 'nalh', 'nam', 'nab', 'nabs', 'nas', 'nass', 'nang', 'naj', 'nac',
+'nak', 'nat', 'nap', 'nah', 'nae', 'naeg', 'naegg', 'naegs', 'naen', 'naenj', 'naenh', 'naed', 'nael', 'naelg', 'naelm', 'naelb',
+'naels', 'naelt', 'naelp', 'naelh', 'naem', 'naeb', 'naebs', 'naes', 'naess', 'naeng', 'naej', 'naec', 'naek', 'naet', 'naep', 'naeh',
+'nya', 'nyag', 'nyagg', 'nyags', 'nyan', 'nyanj', 'nyanh', 'nyad', 'nyal', 'nyalg', 'nyalm', 'nyalb', 'nyals', 'nyalt', 'nyalp', 'nyalh',
+'nyam', 'nyab', 'nyabs', 'nyas', 'nyass', 'nyang', 'nyaj', 'nyac', 'nyak', 'nyat', 'nyap', 'nyah', 'nyae', 'nyaeg', 'nyaegg', 'nyaegs',
+'nyaen', 'nyaenj', 'nyaenh', 'nyaed', 'nyael', 'nyaelg', 'nyaelm', 'nyaelb', 'nyaels', 'nyaelt', 'nyaelp', 'nyaelh', 'nyaem', 'nyaeb', 'nyaebs', 'nyaes',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb1.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb1.pm
new file mode 100644
index 0000000..f9f431c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb1.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb1] = [
+'nyaess', 'nyaeng', 'nyaej', 'nyaec', 'nyaek', 'nyaet', 'nyaep', 'nyaeh', 'neo', 'neog', 'neogg', 'neogs', 'neon', 'neonj', 'neonh', 'neod',
+'neol', 'neolg', 'neolm', 'neolb', 'neols', 'neolt', 'neolp', 'neolh', 'neom', 'neob', 'neobs', 'neos', 'neoss', 'neong', 'neoj', 'neoc',
+'neok', 'neot', 'neop', 'neoh', 'ne', 'neg', 'negg', 'negs', 'nen', 'nenj', 'nenh', 'ned', 'nel', 'nelg', 'nelm', 'nelb',
+'nels', 'nelt', 'nelp', 'nelh', 'nem', 'neb', 'nebs', 'nes', 'ness', 'neng', 'nej', 'nec', 'nek', 'net', 'nep', 'neh',
+'nyeo', 'nyeog', 'nyeogg', 'nyeogs', 'nyeon', 'nyeonj', 'nyeonh', 'nyeod', 'nyeol', 'nyeolg', 'nyeolm', 'nyeolb', 'nyeols', 'nyeolt', 'nyeolp', 'nyeolh',
+'nyeom', 'nyeob', 'nyeobs', 'nyeos', 'nyeoss', 'nyeong', 'nyeoj', 'nyeoc', 'nyeok', 'nyeot', 'nyeop', 'nyeoh', 'nye', 'nyeg', 'nyegg', 'nyegs',
+'nyen', 'nyenj', 'nyenh', 'nyed', 'nyel', 'nyelg', 'nyelm', 'nyelb', 'nyels', 'nyelt', 'nyelp', 'nyelh', 'nyem', 'nyeb', 'nyebs', 'nyes',
+'nyess', 'nyeng', 'nyej', 'nyec', 'nyek', 'nyet', 'nyep', 'nyeh', 'no', 'nog', 'nogg', 'nogs', 'non', 'nonj', 'nonh', 'nod',
+'nol', 'nolg', 'nolm', 'nolb', 'nols', 'nolt', 'nolp', 'nolh', 'nom', 'nob', 'nobs', 'nos', 'noss', 'nong', 'noj', 'noc',
+'nok', 'not', 'nop', 'noh', 'nwa', 'nwag', 'nwagg', 'nwags', 'nwan', 'nwanj', 'nwanh', 'nwad', 'nwal', 'nwalg', 'nwalm', 'nwalb',
+'nwals', 'nwalt', 'nwalp', 'nwalh', 'nwam', 'nwab', 'nwabs', 'nwas', 'nwass', 'nwang', 'nwaj', 'nwac', 'nwak', 'nwat', 'nwap', 'nwah',
+'nwae', 'nwaeg', 'nwaegg', 'nwaegs', 'nwaen', 'nwaenj', 'nwaenh', 'nwaed', 'nwael', 'nwaelg', 'nwaelm', 'nwaelb', 'nwaels', 'nwaelt', 'nwaelp', 'nwaelh',
+'nwaem', 'nwaeb', 'nwaebs', 'nwaes', 'nwaess', 'nwaeng', 'nwaej', 'nwaec', 'nwaek', 'nwaet', 'nwaep', 'nwaeh', 'noe', 'noeg', 'noegg', 'noegs',
+'noen', 'noenj', 'noenh', 'noed', 'noel', 'noelg', 'noelm', 'noelb', 'noels', 'noelt', 'noelp', 'noelh', 'noem', 'noeb', 'noebs', 'noes',
+'noess', 'noeng', 'noej', 'noec', 'noek', 'noet', 'noep', 'noeh', 'nyo', 'nyog', 'nyogg', 'nyogs', 'nyon', 'nyonj', 'nyonh', 'nyod',
+'nyol', 'nyolg', 'nyolm', 'nyolb', 'nyols', 'nyolt', 'nyolp', 'nyolh', 'nyom', 'nyob', 'nyobs', 'nyos', 'nyoss', 'nyong', 'nyoj', 'nyoc',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb2.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb2.pm
new file mode 100644
index 0000000..90c064b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb2.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb2] = [
+'nyok', 'nyot', 'nyop', 'nyoh', 'nu', 'nug', 'nugg', 'nugs', 'nun', 'nunj', 'nunh', 'nud', 'nul', 'nulg', 'nulm', 'nulb',
+'nuls', 'nult', 'nulp', 'nulh', 'num', 'nub', 'nubs', 'nus', 'nuss', 'nung', 'nuj', 'nuc', 'nuk', 'nut', 'nup', 'nuh',
+'nweo', 'nweog', 'nweogg', 'nweogs', 'nweon', 'nweonj', 'nweonh', 'nweod', 'nweol', 'nweolg', 'nweolm', 'nweolb', 'nweols', 'nweolt', 'nweolp', 'nweolh',
+'nweom', 'nweob', 'nweobs', 'nweos', 'nweoss', 'nweong', 'nweoj', 'nweoc', 'nweok', 'nweot', 'nweop', 'nweoh', 'nwe', 'nweg', 'nwegg', 'nwegs',
+'nwen', 'nwenj', 'nwenh', 'nwed', 'nwel', 'nwelg', 'nwelm', 'nwelb', 'nwels', 'nwelt', 'nwelp', 'nwelh', 'nwem', 'nweb', 'nwebs', 'nwes',
+'nwess', 'nweng', 'nwej', 'nwec', 'nwek', 'nwet', 'nwep', 'nweh', 'nwi', 'nwig', 'nwigg', 'nwigs', 'nwin', 'nwinj', 'nwinh', 'nwid',
+'nwil', 'nwilg', 'nwilm', 'nwilb', 'nwils', 'nwilt', 'nwilp', 'nwilh', 'nwim', 'nwib', 'nwibs', 'nwis', 'nwiss', 'nwing', 'nwij', 'nwic',
+'nwik', 'nwit', 'nwip', 'nwih', 'nyu', 'nyug', 'nyugg', 'nyugs', 'nyun', 'nyunj', 'nyunh', 'nyud', 'nyul', 'nyulg', 'nyulm', 'nyulb',
+'nyuls', 'nyult', 'nyulp', 'nyulh', 'nyum', 'nyub', 'nyubs', 'nyus', 'nyuss', 'nyung', 'nyuj', 'nyuc', 'nyuk', 'nyut', 'nyup', 'nyuh',
+'neu', 'neug', 'neugg', 'neugs', 'neun', 'neunj', 'neunh', 'neud', 'neul', 'neulg', 'neulm', 'neulb', 'neuls', 'neult', 'neulp', 'neulh',
+'neum', 'neub', 'neubs', 'neus', 'neuss', 'neung', 'neuj', 'neuc', 'neuk', 'neut', 'neup', 'neuh', 'nyi', 'nyig', 'nyigg', 'nyigs',
+'nyin', 'nyinj', 'nyinh', 'nyid', 'nyil', 'nyilg', 'nyilm', 'nyilb', 'nyils', 'nyilt', 'nyilp', 'nyilh', 'nyim', 'nyib', 'nyibs', 'nyis',
+'nyiss', 'nying', 'nyij', 'nyic', 'nyik', 'nyit', 'nyip', 'nyih', 'ni', 'nig', 'nigg', 'nigs', 'nin', 'ninj', 'ninh', 'nid',
+'nil', 'nilg', 'nilm', 'nilb', 'nils', 'nilt', 'nilp', 'nilh', 'nim', 'nib', 'nibs', 'nis', 'niss', 'ning', 'nij', 'nic',
+'nik', 'nit', 'nip', 'nih', 'da', 'dag', 'dagg', 'dags', 'dan', 'danj', 'danh', 'dad', 'dal', 'dalg', 'dalm', 'dalb',
+'dals', 'dalt', 'dalp', 'dalh', 'dam', 'dab', 'dabs', 'das', 'dass', 'dang', 'daj', 'dac', 'dak', 'dat', 'dap', 'dah',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb3.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb3.pm
new file mode 100644
index 0000000..f8d3ff8
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb3.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb3] = [
+'dae', 'daeg', 'daegg', 'daegs', 'daen', 'daenj', 'daenh', 'daed', 'dael', 'daelg', 'daelm', 'daelb', 'daels', 'daelt', 'daelp', 'daelh',
+'daem', 'daeb', 'daebs', 'daes', 'daess', 'daeng', 'daej', 'daec', 'daek', 'daet', 'daep', 'daeh', 'dya', 'dyag', 'dyagg', 'dyags',
+'dyan', 'dyanj', 'dyanh', 'dyad', 'dyal', 'dyalg', 'dyalm', 'dyalb', 'dyals', 'dyalt', 'dyalp', 'dyalh', 'dyam', 'dyab', 'dyabs', 'dyas',
+'dyass', 'dyang', 'dyaj', 'dyac', 'dyak', 'dyat', 'dyap', 'dyah', 'dyae', 'dyaeg', 'dyaegg', 'dyaegs', 'dyaen', 'dyaenj', 'dyaenh', 'dyaed',
+'dyael', 'dyaelg', 'dyaelm', 'dyaelb', 'dyaels', 'dyaelt', 'dyaelp', 'dyaelh', 'dyaem', 'dyaeb', 'dyaebs', 'dyaes', 'dyaess', 'dyaeng', 'dyaej', 'dyaec',
+'dyaek', 'dyaet', 'dyaep', 'dyaeh', 'deo', 'deog', 'deogg', 'deogs', 'deon', 'deonj', 'deonh', 'deod', 'deol', 'deolg', 'deolm', 'deolb',
+'deols', 'deolt', 'deolp', 'deolh', 'deom', 'deob', 'deobs', 'deos', 'deoss', 'deong', 'deoj', 'deoc', 'deok', 'deot', 'deop', 'deoh',
+'de', 'deg', 'degg', 'degs', 'den', 'denj', 'denh', 'ded', 'del', 'delg', 'delm', 'delb', 'dels', 'delt', 'delp', 'delh',
+'dem', 'deb', 'debs', 'des', 'dess', 'deng', 'dej', 'dec', 'dek', 'det', 'dep', 'deh', 'dyeo', 'dyeog', 'dyeogg', 'dyeogs',
+'dyeon', 'dyeonj', 'dyeonh', 'dyeod', 'dyeol', 'dyeolg', 'dyeolm', 'dyeolb', 'dyeols', 'dyeolt', 'dyeolp', 'dyeolh', 'dyeom', 'dyeob', 'dyeobs', 'dyeos',
+'dyeoss', 'dyeong', 'dyeoj', 'dyeoc', 'dyeok', 'dyeot', 'dyeop', 'dyeoh', 'dye', 'dyeg', 'dyegg', 'dyegs', 'dyen', 'dyenj', 'dyenh', 'dyed',
+'dyel', 'dyelg', 'dyelm', 'dyelb', 'dyels', 'dyelt', 'dyelp', 'dyelh', 'dyem', 'dyeb', 'dyebs', 'dyes', 'dyess', 'dyeng', 'dyej', 'dyec',
+'dyek', 'dyet', 'dyep', 'dyeh', 'do', 'dog', 'dogg', 'dogs', 'don', 'donj', 'donh', 'dod', 'dol', 'dolg', 'dolm', 'dolb',
+'dols', 'dolt', 'dolp', 'dolh', 'dom', 'dob', 'dobs', 'dos', 'doss', 'dong', 'doj', 'doc', 'dok', 'dot', 'dop', 'doh',
+'dwa', 'dwag', 'dwagg', 'dwags', 'dwan', 'dwanj', 'dwanh', 'dwad', 'dwal', 'dwalg', 'dwalm', 'dwalb', 'dwals', 'dwalt', 'dwalp', 'dwalh',
+'dwam', 'dwab', 'dwabs', 'dwas', 'dwass', 'dwang', 'dwaj', 'dwac', 'dwak', 'dwat', 'dwap', 'dwah', 'dwae', 'dwaeg', 'dwaegg', 'dwaegs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb4.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb4.pm
new file mode 100644
index 0000000..9f19259
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb4.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:37 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb4] = [
+'dwaen', 'dwaenj', 'dwaenh', 'dwaed', 'dwael', 'dwaelg', 'dwaelm', 'dwaelb', 'dwaels', 'dwaelt', 'dwaelp', 'dwaelh', 'dwaem', 'dwaeb', 'dwaebs', 'dwaes',
+'dwaess', 'dwaeng', 'dwaej', 'dwaec', 'dwaek', 'dwaet', 'dwaep', 'dwaeh', 'doe', 'doeg', 'doegg', 'doegs', 'doen', 'doenj', 'doenh', 'doed',
+'doel', 'doelg', 'doelm', 'doelb', 'doels', 'doelt', 'doelp', 'doelh', 'doem', 'doeb', 'doebs', 'does', 'doess', 'doeng', 'doej', 'doec',
+'doek', 'doet', 'doep', 'doeh', 'dyo', 'dyog', 'dyogg', 'dyogs', 'dyon', 'dyonj', 'dyonh', 'dyod', 'dyol', 'dyolg', 'dyolm', 'dyolb',
+'dyols', 'dyolt', 'dyolp', 'dyolh', 'dyom', 'dyob', 'dyobs', 'dyos', 'dyoss', 'dyong', 'dyoj', 'dyoc', 'dyok', 'dyot', 'dyop', 'dyoh',
+'du', 'dug', 'dugg', 'dugs', 'dun', 'dunj', 'dunh', 'dud', 'dul', 'dulg', 'dulm', 'dulb', 'duls', 'dult', 'dulp', 'dulh',
+'dum', 'dub', 'dubs', 'dus', 'duss', 'dung', 'duj', 'duc', 'duk', 'dut', 'dup', 'duh', 'dweo', 'dweog', 'dweogg', 'dweogs',
+'dweon', 'dweonj', 'dweonh', 'dweod', 'dweol', 'dweolg', 'dweolm', 'dweolb', 'dweols', 'dweolt', 'dweolp', 'dweolh', 'dweom', 'dweob', 'dweobs', 'dweos',
+'dweoss', 'dweong', 'dweoj', 'dweoc', 'dweok', 'dweot', 'dweop', 'dweoh', 'dwe', 'dweg', 'dwegg', 'dwegs', 'dwen', 'dwenj', 'dwenh', 'dwed',
+'dwel', 'dwelg', 'dwelm', 'dwelb', 'dwels', 'dwelt', 'dwelp', 'dwelh', 'dwem', 'dweb', 'dwebs', 'dwes', 'dwess', 'dweng', 'dwej', 'dwec',
+'dwek', 'dwet', 'dwep', 'dweh', 'dwi', 'dwig', 'dwigg', 'dwigs', 'dwin', 'dwinj', 'dwinh', 'dwid', 'dwil', 'dwilg', 'dwilm', 'dwilb',
+'dwils', 'dwilt', 'dwilp', 'dwilh', 'dwim', 'dwib', 'dwibs', 'dwis', 'dwiss', 'dwing', 'dwij', 'dwic', 'dwik', 'dwit', 'dwip', 'dwih',
+'dyu', 'dyug', 'dyugg', 'dyugs', 'dyun', 'dyunj', 'dyunh', 'dyud', 'dyul', 'dyulg', 'dyulm', 'dyulb', 'dyuls', 'dyult', 'dyulp', 'dyulh',
+'dyum', 'dyub', 'dyubs', 'dyus', 'dyuss', 'dyung', 'dyuj', 'dyuc', 'dyuk', 'dyut', 'dyup', 'dyuh', 'deu', 'deug', 'deugg', 'deugs',
+'deun', 'deunj', 'deunh', 'deud', 'deul', 'deulg', 'deulm', 'deulb', 'deuls', 'deult', 'deulp', 'deulh', 'deum', 'deub', 'deubs', 'deus',
+'deuss', 'deung', 'deuj', 'deuc', 'deuk', 'deut', 'deup', 'deuh', 'dyi', 'dyig', 'dyigg', 'dyigs', 'dyin', 'dyinj', 'dyinh', 'dyid',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb5.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb5.pm
new file mode 100644
index 0000000..67b2e9d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb5.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:38 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb5] = [
+'dyil', 'dyilg', 'dyilm', 'dyilb', 'dyils', 'dyilt', 'dyilp', 'dyilh', 'dyim', 'dyib', 'dyibs', 'dyis', 'dyiss', 'dying', 'dyij', 'dyic',
+'dyik', 'dyit', 'dyip', 'dyih', 'di', 'dig', 'digg', 'digs', 'din', 'dinj', 'dinh', 'did', 'dil', 'dilg', 'dilm', 'dilb',
+'dils', 'dilt', 'dilp', 'dilh', 'dim', 'dib', 'dibs', 'dis', 'diss', 'ding', 'dij', 'dic', 'dik', 'dit', 'dip', 'dih',
+'dda', 'ddag', 'ddagg', 'ddags', 'ddan', 'ddanj', 'ddanh', 'ddad', 'ddal', 'ddalg', 'ddalm', 'ddalb', 'ddals', 'ddalt', 'ddalp', 'ddalh',
+'ddam', 'ddab', 'ddabs', 'ddas', 'ddass', 'ddang', 'ddaj', 'ddac', 'ddak', 'ddat', 'ddap', 'ddah', 'ddae', 'ddaeg', 'ddaegg', 'ddaegs',
+'ddaen', 'ddaenj', 'ddaenh', 'ddaed', 'ddael', 'ddaelg', 'ddaelm', 'ddaelb', 'ddaels', 'ddaelt', 'ddaelp', 'ddaelh', 'ddaem', 'ddaeb', 'ddaebs', 'ddaes',
+'ddaess', 'ddaeng', 'ddaej', 'ddaec', 'ddaek', 'ddaet', 'ddaep', 'ddaeh', 'ddya', 'ddyag', 'ddyagg', 'ddyags', 'ddyan', 'ddyanj', 'ddyanh', 'ddyad',
+'ddyal', 'ddyalg', 'ddyalm', 'ddyalb', 'ddyals', 'ddyalt', 'ddyalp', 'ddyalh', 'ddyam', 'ddyab', 'ddyabs', 'ddyas', 'ddyass', 'ddyang', 'ddyaj', 'ddyac',
+'ddyak', 'ddyat', 'ddyap', 'ddyah', 'ddyae', 'ddyaeg', 'ddyaegg', 'ddyaegs', 'ddyaen', 'ddyaenj', 'ddyaenh', 'ddyaed', 'ddyael', 'ddyaelg', 'ddyaelm', 'ddyaelb',
+'ddyaels', 'ddyaelt', 'ddyaelp', 'ddyaelh', 'ddyaem', 'ddyaeb', 'ddyaebs', 'ddyaes', 'ddyaess', 'ddyaeng', 'ddyaej', 'ddyaec', 'ddyaek', 'ddyaet', 'ddyaep', 'ddyaeh',
+'ddeo', 'ddeog', 'ddeogg', 'ddeogs', 'ddeon', 'ddeonj', 'ddeonh', 'ddeod', 'ddeol', 'ddeolg', 'ddeolm', 'ddeolb', 'ddeols', 'ddeolt', 'ddeolp', 'ddeolh',
+'ddeom', 'ddeob', 'ddeobs', 'ddeos', 'ddeoss', 'ddeong', 'ddeoj', 'ddeoc', 'ddeok', 'ddeot', 'ddeop', 'ddeoh', 'dde', 'ddeg', 'ddegg', 'ddegs',
+'dden', 'ddenj', 'ddenh', 'dded', 'ddel', 'ddelg', 'ddelm', 'ddelb', 'ddels', 'ddelt', 'ddelp', 'ddelh', 'ddem', 'ddeb', 'ddebs', 'ddes',
+'ddess', 'ddeng', 'ddej', 'ddec', 'ddek', 'ddet', 'ddep', 'ddeh', 'ddyeo', 'ddyeog', 'ddyeogg', 'ddyeogs', 'ddyeon', 'ddyeonj', 'ddyeonh', 'ddyeod',
+'ddyeol', 'ddyeolg', 'ddyeolm', 'ddyeolb', 'ddyeols', 'ddyeolt', 'ddyeolp', 'ddyeolh', 'ddyeom', 'ddyeob', 'ddyeobs', 'ddyeos', 'ddyeoss', 'ddyeong', 'ddyeoj', 'ddyeoc',
+'ddyeok', 'ddyeot', 'ddyeop', 'ddyeoh', 'ddye', 'ddyeg', 'ddyegg', 'ddyegs', 'ddyen', 'ddyenj', 'ddyenh', 'ddyed', 'ddyel', 'ddyelg', 'ddyelm', 'ddyelb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb6.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb6.pm
new file mode 100644
index 0000000..d1fd068
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb6.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:38 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb6] = [
+'ddyels', 'ddyelt', 'ddyelp', 'ddyelh', 'ddyem', 'ddyeb', 'ddyebs', 'ddyes', 'ddyess', 'ddyeng', 'ddyej', 'ddyec', 'ddyek', 'ddyet', 'ddyep', 'ddyeh',
+'ddo', 'ddog', 'ddogg', 'ddogs', 'ddon', 'ddonj', 'ddonh', 'ddod', 'ddol', 'ddolg', 'ddolm', 'ddolb', 'ddols', 'ddolt', 'ddolp', 'ddolh',
+'ddom', 'ddob', 'ddobs', 'ddos', 'ddoss', 'ddong', 'ddoj', 'ddoc', 'ddok', 'ddot', 'ddop', 'ddoh', 'ddwa', 'ddwag', 'ddwagg', 'ddwags',
+'ddwan', 'ddwanj', 'ddwanh', 'ddwad', 'ddwal', 'ddwalg', 'ddwalm', 'ddwalb', 'ddwals', 'ddwalt', 'ddwalp', 'ddwalh', 'ddwam', 'ddwab', 'ddwabs', 'ddwas',
+'ddwass', 'ddwang', 'ddwaj', 'ddwac', 'ddwak', 'ddwat', 'ddwap', 'ddwah', 'ddwae', 'ddwaeg', 'ddwaegg', 'ddwaegs', 'ddwaen', 'ddwaenj', 'ddwaenh', 'ddwaed',
+'ddwael', 'ddwaelg', 'ddwaelm', 'ddwaelb', 'ddwaels', 'ddwaelt', 'ddwaelp', 'ddwaelh', 'ddwaem', 'ddwaeb', 'ddwaebs', 'ddwaes', 'ddwaess', 'ddwaeng', 'ddwaej', 'ddwaec',
+'ddwaek', 'ddwaet', 'ddwaep', 'ddwaeh', 'ddoe', 'ddoeg', 'ddoegg', 'ddoegs', 'ddoen', 'ddoenj', 'ddoenh', 'ddoed', 'ddoel', 'ddoelg', 'ddoelm', 'ddoelb',
+'ddoels', 'ddoelt', 'ddoelp', 'ddoelh', 'ddoem', 'ddoeb', 'ddoebs', 'ddoes', 'ddoess', 'ddoeng', 'ddoej', 'ddoec', 'ddoek', 'ddoet', 'ddoep', 'ddoeh',
+'ddyo', 'ddyog', 'ddyogg', 'ddyogs', 'ddyon', 'ddyonj', 'ddyonh', 'ddyod', 'ddyol', 'ddyolg', 'ddyolm', 'ddyolb', 'ddyols', 'ddyolt', 'ddyolp', 'ddyolh',
+'ddyom', 'ddyob', 'ddyobs', 'ddyos', 'ddyoss', 'ddyong', 'ddyoj', 'ddyoc', 'ddyok', 'ddyot', 'ddyop', 'ddyoh', 'ddu', 'ddug', 'ddugg', 'ddugs',
+'ddun', 'ddunj', 'ddunh', 'ddud', 'ddul', 'ddulg', 'ddulm', 'ddulb', 'dduls', 'ddult', 'ddulp', 'ddulh', 'ddum', 'ddub', 'ddubs', 'ddus',
+'dduss', 'ddung', 'dduj', 'dduc', 'dduk', 'ddut', 'ddup', 'dduh', 'ddweo', 'ddweog', 'ddweogg', 'ddweogs', 'ddweon', 'ddweonj', 'ddweonh', 'ddweod',
+'ddweol', 'ddweolg', 'ddweolm', 'ddweolb', 'ddweols', 'ddweolt', 'ddweolp', 'ddweolh', 'ddweom', 'ddweob', 'ddweobs', 'ddweos', 'ddweoss', 'ddweong', 'ddweoj', 'ddweoc',
+'ddweok', 'ddweot', 'ddweop', 'ddweoh', 'ddwe', 'ddweg', 'ddwegg', 'ddwegs', 'ddwen', 'ddwenj', 'ddwenh', 'ddwed', 'ddwel', 'ddwelg', 'ddwelm', 'ddwelb',
+'ddwels', 'ddwelt', 'ddwelp', 'ddwelh', 'ddwem', 'ddweb', 'ddwebs', 'ddwes', 'ddwess', 'ddweng', 'ddwej', 'ddwec', 'ddwek', 'ddwet', 'ddwep', 'ddweh',
+'ddwi', 'ddwig', 'ddwigg', 'ddwigs', 'ddwin', 'ddwinj', 'ddwinh', 'ddwid', 'ddwil', 'ddwilg', 'ddwilm', 'ddwilb', 'ddwils', 'ddwilt', 'ddwilp', 'ddwilh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb7.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb7.pm
new file mode 100644
index 0000000..798a81c
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb7.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb7] = [
+'ddwim', 'ddwib', 'ddwibs', 'ddwis', 'ddwiss', 'ddwing', 'ddwij', 'ddwic', 'ddwik', 'ddwit', 'ddwip', 'ddwih', 'ddyu', 'ddyug', 'ddyugg', 'ddyugs',
+'ddyun', 'ddyunj', 'ddyunh', 'ddyud', 'ddyul', 'ddyulg', 'ddyulm', 'ddyulb', 'ddyuls', 'ddyult', 'ddyulp', 'ddyulh', 'ddyum', 'ddyub', 'ddyubs', 'ddyus',
+'ddyuss', 'ddyung', 'ddyuj', 'ddyuc', 'ddyuk', 'ddyut', 'ddyup', 'ddyuh', 'ddeu', 'ddeug', 'ddeugg', 'ddeugs', 'ddeun', 'ddeunj', 'ddeunh', 'ddeud',
+'ddeul', 'ddeulg', 'ddeulm', 'ddeulb', 'ddeuls', 'ddeult', 'ddeulp', 'ddeulh', 'ddeum', 'ddeub', 'ddeubs', 'ddeus', 'ddeuss', 'ddeung', 'ddeuj', 'ddeuc',
+'ddeuk', 'ddeut', 'ddeup', 'ddeuh', 'ddyi', 'ddyig', 'ddyigg', 'ddyigs', 'ddyin', 'ddyinj', 'ddyinh', 'ddyid', 'ddyil', 'ddyilg', 'ddyilm', 'ddyilb',
+'ddyils', 'ddyilt', 'ddyilp', 'ddyilh', 'ddyim', 'ddyib', 'ddyibs', 'ddyis', 'ddyiss', 'ddying', 'ddyij', 'ddyic', 'ddyik', 'ddyit', 'ddyip', 'ddyih',
+'ddi', 'ddig', 'ddigg', 'ddigs', 'ddin', 'ddinj', 'ddinh', 'ddid', 'ddil', 'ddilg', 'ddilm', 'ddilb', 'ddils', 'ddilt', 'ddilp', 'ddilh',
+'ddim', 'ddib', 'ddibs', 'ddis', 'ddiss', 'dding', 'ddij', 'ddic', 'ddik', 'ddit', 'ddip', 'ddih', 'ra', 'rag', 'ragg', 'rags',
+'ran', 'ranj', 'ranh', 'rad', 'ral', 'ralg', 'ralm', 'ralb', 'rals', 'ralt', 'ralp', 'ralh', 'ram', 'rab', 'rabs', 'ras',
+'rass', 'rang', 'raj', 'rac', 'rak', 'rat', 'rap', 'rah', 'rae', 'raeg', 'raegg', 'raegs', 'raen', 'raenj', 'raenh', 'raed',
+'rael', 'raelg', 'raelm', 'raelb', 'raels', 'raelt', 'raelp', 'raelh', 'raem', 'raeb', 'raebs', 'raes', 'raess', 'raeng', 'raej', 'raec',
+'raek', 'raet', 'raep', 'raeh', 'rya', 'ryag', 'ryagg', 'ryags', 'ryan', 'ryanj', 'ryanh', 'ryad', 'ryal', 'ryalg', 'ryalm', 'ryalb',
+'ryals', 'ryalt', 'ryalp', 'ryalh', 'ryam', 'ryab', 'ryabs', 'ryas', 'ryass', 'ryang', 'ryaj', 'ryac', 'ryak', 'ryat', 'ryap', 'ryah',
+'ryae', 'ryaeg', 'ryaegg', 'ryaegs', 'ryaen', 'ryaenj', 'ryaenh', 'ryaed', 'ryael', 'ryaelg', 'ryaelm', 'ryaelb', 'ryaels', 'ryaelt', 'ryaelp', 'ryaelh',
+'ryaem', 'ryaeb', 'ryaebs', 'ryaes', 'ryaess', 'ryaeng', 'ryaej', 'ryaec', 'ryaek', 'ryaet', 'ryaep', 'ryaeh', 'reo', 'reog', 'reogg', 'reogs',
+'reon', 'reonj', 'reonh', 'reod', 'reol', 'reolg', 'reolm', 'reolb', 'reols', 'reolt', 'reolp', 'reolh', 'reom', 'reob', 'reobs', 'reos',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb8.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb8.pm
new file mode 100644
index 0000000..afd5be4
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb8.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb8] = [
+'reoss', 'reong', 'reoj', 'reoc', 'reok', 'reot', 'reop', 'reoh', 're', 'reg', 'regg', 'regs', 'ren', 'renj', 'renh', 'red',
+'rel', 'relg', 'relm', 'relb', 'rels', 'relt', 'relp', 'relh', 'rem', 'reb', 'rebs', 'res', 'ress', 'reng', 'rej', 'rec',
+'rek', 'ret', 'rep', 'reh', 'ryeo', 'ryeog', 'ryeogg', 'ryeogs', 'ryeon', 'ryeonj', 'ryeonh', 'ryeod', 'ryeol', 'ryeolg', 'ryeolm', 'ryeolb',
+'ryeols', 'ryeolt', 'ryeolp', 'ryeolh', 'ryeom', 'ryeob', 'ryeobs', 'ryeos', 'ryeoss', 'ryeong', 'ryeoj', 'ryeoc', 'ryeok', 'ryeot', 'ryeop', 'ryeoh',
+'rye', 'ryeg', 'ryegg', 'ryegs', 'ryen', 'ryenj', 'ryenh', 'ryed', 'ryel', 'ryelg', 'ryelm', 'ryelb', 'ryels', 'ryelt', 'ryelp', 'ryelh',
+'ryem', 'ryeb', 'ryebs', 'ryes', 'ryess', 'ryeng', 'ryej', 'ryec', 'ryek', 'ryet', 'ryep', 'ryeh', 'ro', 'rog', 'rogg', 'rogs',
+'ron', 'ronj', 'ronh', 'rod', 'rol', 'rolg', 'rolm', 'rolb', 'rols', 'rolt', 'rolp', 'rolh', 'rom', 'rob', 'robs', 'ros',
+'ross', 'rong', 'roj', 'roc', 'rok', 'rot', 'rop', 'roh', 'rwa', 'rwag', 'rwagg', 'rwags', 'rwan', 'rwanj', 'rwanh', 'rwad',
+'rwal', 'rwalg', 'rwalm', 'rwalb', 'rwals', 'rwalt', 'rwalp', 'rwalh', 'rwam', 'rwab', 'rwabs', 'rwas', 'rwass', 'rwang', 'rwaj', 'rwac',
+'rwak', 'rwat', 'rwap', 'rwah', 'rwae', 'rwaeg', 'rwaegg', 'rwaegs', 'rwaen', 'rwaenj', 'rwaenh', 'rwaed', 'rwael', 'rwaelg', 'rwaelm', 'rwaelb',
+'rwaels', 'rwaelt', 'rwaelp', 'rwaelh', 'rwaem', 'rwaeb', 'rwaebs', 'rwaes', 'rwaess', 'rwaeng', 'rwaej', 'rwaec', 'rwaek', 'rwaet', 'rwaep', 'rwaeh',
+'roe', 'roeg', 'roegg', 'roegs', 'roen', 'roenj', 'roenh', 'roed', 'roel', 'roelg', 'roelm', 'roelb', 'roels', 'roelt', 'roelp', 'roelh',
+'roem', 'roeb', 'roebs', 'roes', 'roess', 'roeng', 'roej', 'roec', 'roek', 'roet', 'roep', 'roeh', 'ryo', 'ryog', 'ryogg', 'ryogs',
+'ryon', 'ryonj', 'ryonh', 'ryod', 'ryol', 'ryolg', 'ryolm', 'ryolb', 'ryols', 'ryolt', 'ryolp', 'ryolh', 'ryom', 'ryob', 'ryobs', 'ryos',
+'ryoss', 'ryong', 'ryoj', 'ryoc', 'ryok', 'ryot', 'ryop', 'ryoh', 'ru', 'rug', 'rugg', 'rugs', 'run', 'runj', 'runh', 'rud',
+'rul', 'rulg', 'rulm', 'rulb', 'ruls', 'rult', 'rulp', 'rulh', 'rum', 'rub', 'rubs', 'rus', 'russ', 'rung', 'ruj', 'ruc',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb9.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb9.pm
new file mode 100644
index 0000000..1890e15
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xb9.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xb9] = [
+'ruk', 'rut', 'rup', 'ruh', 'rweo', 'rweog', 'rweogg', 'rweogs', 'rweon', 'rweonj', 'rweonh', 'rweod', 'rweol', 'rweolg', 'rweolm', 'rweolb',
+'rweols', 'rweolt', 'rweolp', 'rweolh', 'rweom', 'rweob', 'rweobs', 'rweos', 'rweoss', 'rweong', 'rweoj', 'rweoc', 'rweok', 'rweot', 'rweop', 'rweoh',
+'rwe', 'rweg', 'rwegg', 'rwegs', 'rwen', 'rwenj', 'rwenh', 'rwed', 'rwel', 'rwelg', 'rwelm', 'rwelb', 'rwels', 'rwelt', 'rwelp', 'rwelh',
+'rwem', 'rweb', 'rwebs', 'rwes', 'rwess', 'rweng', 'rwej', 'rwec', 'rwek', 'rwet', 'rwep', 'rweh', 'rwi', 'rwig', 'rwigg', 'rwigs',
+'rwin', 'rwinj', 'rwinh', 'rwid', 'rwil', 'rwilg', 'rwilm', 'rwilb', 'rwils', 'rwilt', 'rwilp', 'rwilh', 'rwim', 'rwib', 'rwibs', 'rwis',
+'rwiss', 'rwing', 'rwij', 'rwic', 'rwik', 'rwit', 'rwip', 'rwih', 'ryu', 'ryug', 'ryugg', 'ryugs', 'ryun', 'ryunj', 'ryunh', 'ryud',
+'ryul', 'ryulg', 'ryulm', 'ryulb', 'ryuls', 'ryult', 'ryulp', 'ryulh', 'ryum', 'ryub', 'ryubs', 'ryus', 'ryuss', 'ryung', 'ryuj', 'ryuc',
+'ryuk', 'ryut', 'ryup', 'ryuh', 'reu', 'reug', 'reugg', 'reugs', 'reun', 'reunj', 'reunh', 'reud', 'reul', 'reulg', 'reulm', 'reulb',
+'reuls', 'reult', 'reulp', 'reulh', 'reum', 'reub', 'reubs', 'reus', 'reuss', 'reung', 'reuj', 'reuc', 'reuk', 'reut', 'reup', 'reuh',
+'ryi', 'ryig', 'ryigg', 'ryigs', 'ryin', 'ryinj', 'ryinh', 'ryid', 'ryil', 'ryilg', 'ryilm', 'ryilb', 'ryils', 'ryilt', 'ryilp', 'ryilh',
+'ryim', 'ryib', 'ryibs', 'ryis', 'ryiss', 'rying', 'ryij', 'ryic', 'ryik', 'ryit', 'ryip', 'ryih', 'ri', 'rig', 'rigg', 'rigs',
+'rin', 'rinj', 'rinh', 'rid', 'ril', 'rilg', 'rilm', 'rilb', 'rils', 'rilt', 'rilp', 'rilh', 'rim', 'rib', 'ribs', 'ris',
+'riss', 'ring', 'rij', 'ric', 'rik', 'rit', 'rip', 'rih', 'ma', 'mag', 'magg', 'mags', 'man', 'manj', 'manh', 'mad',
+'mal', 'malg', 'malm', 'malb', 'mals', 'malt', 'malp', 'malh', 'mam', 'mab', 'mabs', 'mas', 'mass', 'mang', 'maj', 'mac',
+'mak', 'mat', 'map', 'mah', 'mae', 'maeg', 'maegg', 'maegs', 'maen', 'maenj', 'maenh', 'maed', 'mael', 'maelg', 'maelm', 'maelb',
+'maels', 'maelt', 'maelp', 'maelh', 'maem', 'maeb', 'maebs', 'maes', 'maess', 'maeng', 'maej', 'maec', 'maek', 'maet', 'maep', 'maeh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xba.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xba.pm
new file mode 100644
index 0000000..46dfe26
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xba.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xba] = [
+'mya', 'myag', 'myagg', 'myags', 'myan', 'myanj', 'myanh', 'myad', 'myal', 'myalg', 'myalm', 'myalb', 'myals', 'myalt', 'myalp', 'myalh',
+'myam', 'myab', 'myabs', 'myas', 'myass', 'myang', 'myaj', 'myac', 'myak', 'myat', 'myap', 'myah', 'myae', 'myaeg', 'myaegg', 'myaegs',
+'myaen', 'myaenj', 'myaenh', 'myaed', 'myael', 'myaelg', 'myaelm', 'myaelb', 'myaels', 'myaelt', 'myaelp', 'myaelh', 'myaem', 'myaeb', 'myaebs', 'myaes',
+'myaess', 'myaeng', 'myaej', 'myaec', 'myaek', 'myaet', 'myaep', 'myaeh', 'meo', 'meog', 'meogg', 'meogs', 'meon', 'meonj', 'meonh', 'meod',
+'meol', 'meolg', 'meolm', 'meolb', 'meols', 'meolt', 'meolp', 'meolh', 'meom', 'meob', 'meobs', 'meos', 'meoss', 'meong', 'meoj', 'meoc',
+'meok', 'meot', 'meop', 'meoh', 'me', 'meg', 'megg', 'megs', 'men', 'menj', 'menh', 'med', 'mel', 'melg', 'melm', 'melb',
+'mels', 'melt', 'melp', 'melh', 'mem', 'meb', 'mebs', 'mes', 'mess', 'meng', 'mej', 'mec', 'mek', 'met', 'mep', 'meh',
+'myeo', 'myeog', 'myeogg', 'myeogs', 'myeon', 'myeonj', 'myeonh', 'myeod', 'myeol', 'myeolg', 'myeolm', 'myeolb', 'myeols', 'myeolt', 'myeolp', 'myeolh',
+'myeom', 'myeob', 'myeobs', 'myeos', 'myeoss', 'myeong', 'myeoj', 'myeoc', 'myeok', 'myeot', 'myeop', 'myeoh', 'mye', 'myeg', 'myegg', 'myegs',
+'myen', 'myenj', 'myenh', 'myed', 'myel', 'myelg', 'myelm', 'myelb', 'myels', 'myelt', 'myelp', 'myelh', 'myem', 'myeb', 'myebs', 'myes',
+'myess', 'myeng', 'myej', 'myec', 'myek', 'myet', 'myep', 'myeh', 'mo', 'mog', 'mogg', 'mogs', 'mon', 'monj', 'monh', 'mod',
+'mol', 'molg', 'molm', 'molb', 'mols', 'molt', 'molp', 'molh', 'mom', 'mob', 'mobs', 'mos', 'moss', 'mong', 'moj', 'moc',
+'mok', 'mot', 'mop', 'moh', 'mwa', 'mwag', 'mwagg', 'mwags', 'mwan', 'mwanj', 'mwanh', 'mwad', 'mwal', 'mwalg', 'mwalm', 'mwalb',
+'mwals', 'mwalt', 'mwalp', 'mwalh', 'mwam', 'mwab', 'mwabs', 'mwas', 'mwass', 'mwang', 'mwaj', 'mwac', 'mwak', 'mwat', 'mwap', 'mwah',
+'mwae', 'mwaeg', 'mwaegg', 'mwaegs', 'mwaen', 'mwaenj', 'mwaenh', 'mwaed', 'mwael', 'mwaelg', 'mwaelm', 'mwaelb', 'mwaels', 'mwaelt', 'mwaelp', 'mwaelh',
+'mwaem', 'mwaeb', 'mwaebs', 'mwaes', 'mwaess', 'mwaeng', 'mwaej', 'mwaec', 'mwaek', 'mwaet', 'mwaep', 'mwaeh', 'moe', 'moeg', 'moegg', 'moegs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbb.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbb.pm
new file mode 100644
index 0000000..651833b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbb.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xbb] = [
+'moen', 'moenj', 'moenh', 'moed', 'moel', 'moelg', 'moelm', 'moelb', 'moels', 'moelt', 'moelp', 'moelh', 'moem', 'moeb', 'moebs', 'moes',
+'moess', 'moeng', 'moej', 'moec', 'moek', 'moet', 'moep', 'moeh', 'myo', 'myog', 'myogg', 'myogs', 'myon', 'myonj', 'myonh', 'myod',
+'myol', 'myolg', 'myolm', 'myolb', 'myols', 'myolt', 'myolp', 'myolh', 'myom', 'myob', 'myobs', 'myos', 'myoss', 'myong', 'myoj', 'myoc',
+'myok', 'myot', 'myop', 'myoh', 'mu', 'mug', 'mugg', 'mugs', 'mun', 'munj', 'munh', 'mud', 'mul', 'mulg', 'mulm', 'mulb',
+'muls', 'mult', 'mulp', 'mulh', 'mum', 'mub', 'mubs', 'mus', 'muss', 'mung', 'muj', 'muc', 'muk', 'mut', 'mup', 'muh',
+'mweo', 'mweog', 'mweogg', 'mweogs', 'mweon', 'mweonj', 'mweonh', 'mweod', 'mweol', 'mweolg', 'mweolm', 'mweolb', 'mweols', 'mweolt', 'mweolp', 'mweolh',
+'mweom', 'mweob', 'mweobs', 'mweos', 'mweoss', 'mweong', 'mweoj', 'mweoc', 'mweok', 'mweot', 'mweop', 'mweoh', 'mwe', 'mweg', 'mwegg', 'mwegs',
+'mwen', 'mwenj', 'mwenh', 'mwed', 'mwel', 'mwelg', 'mwelm', 'mwelb', 'mwels', 'mwelt', 'mwelp', 'mwelh', 'mwem', 'mweb', 'mwebs', 'mwes',
+'mwess', 'mweng', 'mwej', 'mwec', 'mwek', 'mwet', 'mwep', 'mweh', 'mwi', 'mwig', 'mwigg', 'mwigs', 'mwin', 'mwinj', 'mwinh', 'mwid',
+'mwil', 'mwilg', 'mwilm', 'mwilb', 'mwils', 'mwilt', 'mwilp', 'mwilh', 'mwim', 'mwib', 'mwibs', 'mwis', 'mwiss', 'mwing', 'mwij', 'mwic',
+'mwik', 'mwit', 'mwip', 'mwih', 'myu', 'myug', 'myugg', 'myugs', 'myun', 'myunj', 'myunh', 'myud', 'myul', 'myulg', 'myulm', 'myulb',
+'myuls', 'myult', 'myulp', 'myulh', 'myum', 'myub', 'myubs', 'myus', 'myuss', 'myung', 'myuj', 'myuc', 'myuk', 'myut', 'myup', 'myuh',
+'meu', 'meug', 'meugg', 'meugs', 'meun', 'meunj', 'meunh', 'meud', 'meul', 'meulg', 'meulm', 'meulb', 'meuls', 'meult', 'meulp', 'meulh',
+'meum', 'meub', 'meubs', 'meus', 'meuss', 'meung', 'meuj', 'meuc', 'meuk', 'meut', 'meup', 'meuh', 'myi', 'myig', 'myigg', 'myigs',
+'myin', 'myinj', 'myinh', 'myid', 'myil', 'myilg', 'myilm', 'myilb', 'myils', 'myilt', 'myilp', 'myilh', 'myim', 'myib', 'myibs', 'myis',
+'myiss', 'mying', 'myij', 'myic', 'myik', 'myit', 'myip', 'myih', 'mi', 'mig', 'migg', 'migs', 'min', 'minj', 'minh', 'mid',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbc.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbc.pm
new file mode 100644
index 0000000..610b072
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbc.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xbc] = [
+'mil', 'milg', 'milm', 'milb', 'mils', 'milt', 'milp', 'milh', 'mim', 'mib', 'mibs', 'mis', 'miss', 'ming', 'mij', 'mic',
+'mik', 'mit', 'mip', 'mih', 'ba', 'bag', 'bagg', 'bags', 'ban', 'banj', 'banh', 'bad', 'bal', 'balg', 'balm', 'balb',
+'bals', 'balt', 'balp', 'balh', 'bam', 'bab', 'babs', 'bas', 'bass', 'bang', 'baj', 'bac', 'bak', 'bat', 'bap', 'bah',
+'bae', 'baeg', 'baegg', 'baegs', 'baen', 'baenj', 'baenh', 'baed', 'bael', 'baelg', 'baelm', 'baelb', 'baels', 'baelt', 'baelp', 'baelh',
+'baem', 'baeb', 'baebs', 'baes', 'baess', 'baeng', 'baej', 'baec', 'baek', 'baet', 'baep', 'baeh', 'bya', 'byag', 'byagg', 'byags',
+'byan', 'byanj', 'byanh', 'byad', 'byal', 'byalg', 'byalm', 'byalb', 'byals', 'byalt', 'byalp', 'byalh', 'byam', 'byab', 'byabs', 'byas',
+'byass', 'byang', 'byaj', 'byac', 'byak', 'byat', 'byap', 'byah', 'byae', 'byaeg', 'byaegg', 'byaegs', 'byaen', 'byaenj', 'byaenh', 'byaed',
+'byael', 'byaelg', 'byaelm', 'byaelb', 'byaels', 'byaelt', 'byaelp', 'byaelh', 'byaem', 'byaeb', 'byaebs', 'byaes', 'byaess', 'byaeng', 'byaej', 'byaec',
+'byaek', 'byaet', 'byaep', 'byaeh', 'beo', 'beog', 'beogg', 'beogs', 'beon', 'beonj', 'beonh', 'beod', 'beol', 'beolg', 'beolm', 'beolb',
+'beols', 'beolt', 'beolp', 'beolh', 'beom', 'beob', 'beobs', 'beos', 'beoss', 'beong', 'beoj', 'beoc', 'beok', 'beot', 'beop', 'beoh',
+'be', 'beg', 'begg', 'begs', 'ben', 'benj', 'benh', 'bed', 'bel', 'belg', 'belm', 'belb', 'bels', 'belt', 'belp', 'belh',
+'bem', 'beb', 'bebs', 'bes', 'bess', 'beng', 'bej', 'bec', 'bek', 'bet', 'bep', 'beh', 'byeo', 'byeog', 'byeogg', 'byeogs',
+'byeon', 'byeonj', 'byeonh', 'byeod', 'byeol', 'byeolg', 'byeolm', 'byeolb', 'byeols', 'byeolt', 'byeolp', 'byeolh', 'byeom', 'byeob', 'byeobs', 'byeos',
+'byeoss', 'byeong', 'byeoj', 'byeoc', 'byeok', 'byeot', 'byeop', 'byeoh', 'bye', 'byeg', 'byegg', 'byegs', 'byen', 'byenj', 'byenh', 'byed',
+'byel', 'byelg', 'byelm', 'byelb', 'byels', 'byelt', 'byelp', 'byelh', 'byem', 'byeb', 'byebs', 'byes', 'byess', 'byeng', 'byej', 'byec',
+'byek', 'byet', 'byep', 'byeh', 'bo', 'bog', 'bogg', 'bogs', 'bon', 'bonj', 'bonh', 'bod', 'bol', 'bolg', 'bolm', 'bolb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbd.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbd.pm
new file mode 100644
index 0000000..bb172be
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbd.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xbd] = [
+'bols', 'bolt', 'bolp', 'bolh', 'bom', 'bob', 'bobs', 'bos', 'boss', 'bong', 'boj', 'boc', 'bok', 'bot', 'bop', 'boh',
+'bwa', 'bwag', 'bwagg', 'bwags', 'bwan', 'bwanj', 'bwanh', 'bwad', 'bwal', 'bwalg', 'bwalm', 'bwalb', 'bwals', 'bwalt', 'bwalp', 'bwalh',
+'bwam', 'bwab', 'bwabs', 'bwas', 'bwass', 'bwang', 'bwaj', 'bwac', 'bwak', 'bwat', 'bwap', 'bwah', 'bwae', 'bwaeg', 'bwaegg', 'bwaegs',
+'bwaen', 'bwaenj', 'bwaenh', 'bwaed', 'bwael', 'bwaelg', 'bwaelm', 'bwaelb', 'bwaels', 'bwaelt', 'bwaelp', 'bwaelh', 'bwaem', 'bwaeb', 'bwaebs', 'bwaes',
+'bwaess', 'bwaeng', 'bwaej', 'bwaec', 'bwaek', 'bwaet', 'bwaep', 'bwaeh', 'boe', 'boeg', 'boegg', 'boegs', 'boen', 'boenj', 'boenh', 'boed',
+'boel', 'boelg', 'boelm', 'boelb', 'boels', 'boelt', 'boelp', 'boelh', 'boem', 'boeb', 'boebs', 'boes', 'boess', 'boeng', 'boej', 'boec',
+'boek', 'boet', 'boep', 'boeh', 'byo', 'byog', 'byogg', 'byogs', 'byon', 'byonj', 'byonh', 'byod', 'byol', 'byolg', 'byolm', 'byolb',
+'byols', 'byolt', 'byolp', 'byolh', 'byom', 'byob', 'byobs', 'byos', 'byoss', 'byong', 'byoj', 'byoc', 'byok', 'byot', 'byop', 'byoh',
+'bu', 'bug', 'bugg', 'bugs', 'bun', 'bunj', 'bunh', 'bud', 'bul', 'bulg', 'bulm', 'bulb', 'buls', 'bult', 'bulp', 'bulh',
+'bum', 'bub', 'bubs', 'bus', 'buss', 'bung', 'buj', 'buc', 'buk', 'but', 'bup', 'buh', 'bweo', 'bweog', 'bweogg', 'bweogs',
+'bweon', 'bweonj', 'bweonh', 'bweod', 'bweol', 'bweolg', 'bweolm', 'bweolb', 'bweols', 'bweolt', 'bweolp', 'bweolh', 'bweom', 'bweob', 'bweobs', 'bweos',
+'bweoss', 'bweong', 'bweoj', 'bweoc', 'bweok', 'bweot', 'bweop', 'bweoh', 'bwe', 'bweg', 'bwegg', 'bwegs', 'bwen', 'bwenj', 'bwenh', 'bwed',
+'bwel', 'bwelg', 'bwelm', 'bwelb', 'bwels', 'bwelt', 'bwelp', 'bwelh', 'bwem', 'bweb', 'bwebs', 'bwes', 'bwess', 'bweng', 'bwej', 'bwec',
+'bwek', 'bwet', 'bwep', 'bweh', 'bwi', 'bwig', 'bwigg', 'bwigs', 'bwin', 'bwinj', 'bwinh', 'bwid', 'bwil', 'bwilg', 'bwilm', 'bwilb',
+'bwils', 'bwilt', 'bwilp', 'bwilh', 'bwim', 'bwib', 'bwibs', 'bwis', 'bwiss', 'bwing', 'bwij', 'bwic', 'bwik', 'bwit', 'bwip', 'bwih',
+'byu', 'byug', 'byugg', 'byugs', 'byun', 'byunj', 'byunh', 'byud', 'byul', 'byulg', 'byulm', 'byulb', 'byuls', 'byult', 'byulp', 'byulh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbe.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbe.pm
new file mode 100644
index 0000000..e94bb84
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbe.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xbe] = [
+'byum', 'byub', 'byubs', 'byus', 'byuss', 'byung', 'byuj', 'byuc', 'byuk', 'byut', 'byup', 'byuh', 'beu', 'beug', 'beugg', 'beugs',
+'beun', 'beunj', 'beunh', 'beud', 'beul', 'beulg', 'beulm', 'beulb', 'beuls', 'beult', 'beulp', 'beulh', 'beum', 'beub', 'beubs', 'beus',
+'beuss', 'beung', 'beuj', 'beuc', 'beuk', 'beut', 'beup', 'beuh', 'byi', 'byig', 'byigg', 'byigs', 'byin', 'byinj', 'byinh', 'byid',
+'byil', 'byilg', 'byilm', 'byilb', 'byils', 'byilt', 'byilp', 'byilh', 'byim', 'byib', 'byibs', 'byis', 'byiss', 'bying', 'byij', 'byic',
+'byik', 'byit', 'byip', 'byih', 'bi', 'big', 'bigg', 'bigs', 'bin', 'binj', 'binh', 'bid', 'bil', 'bilg', 'bilm', 'bilb',
+'bils', 'bilt', 'bilp', 'bilh', 'bim', 'bib', 'bibs', 'bis', 'biss', 'bing', 'bij', 'bic', 'bik', 'bit', 'bip', 'bih',
+'bba', 'bbag', 'bbagg', 'bbags', 'bban', 'bbanj', 'bbanh', 'bbad', 'bbal', 'bbalg', 'bbalm', 'bbalb', 'bbals', 'bbalt', 'bbalp', 'bbalh',
+'bbam', 'bbab', 'bbabs', 'bbas', 'bbass', 'bbang', 'bbaj', 'bbac', 'bbak', 'bbat', 'bbap', 'bbah', 'bbae', 'bbaeg', 'bbaegg', 'bbaegs',
+'bbaen', 'bbaenj', 'bbaenh', 'bbaed', 'bbael', 'bbaelg', 'bbaelm', 'bbaelb', 'bbaels', 'bbaelt', 'bbaelp', 'bbaelh', 'bbaem', 'bbaeb', 'bbaebs', 'bbaes',
+'bbaess', 'bbaeng', 'bbaej', 'bbaec', 'bbaek', 'bbaet', 'bbaep', 'bbaeh', 'bbya', 'bbyag', 'bbyagg', 'bbyags', 'bbyan', 'bbyanj', 'bbyanh', 'bbyad',
+'bbyal', 'bbyalg', 'bbyalm', 'bbyalb', 'bbyals', 'bbyalt', 'bbyalp', 'bbyalh', 'bbyam', 'bbyab', 'bbyabs', 'bbyas', 'bbyass', 'bbyang', 'bbyaj', 'bbyac',
+'bbyak', 'bbyat', 'bbyap', 'bbyah', 'bbyae', 'bbyaeg', 'bbyaegg', 'bbyaegs', 'bbyaen', 'bbyaenj', 'bbyaenh', 'bbyaed', 'bbyael', 'bbyaelg', 'bbyaelm', 'bbyaelb',
+'bbyaels', 'bbyaelt', 'bbyaelp', 'bbyaelh', 'bbyaem', 'bbyaeb', 'bbyaebs', 'bbyaes', 'bbyaess', 'bbyaeng', 'bbyaej', 'bbyaec', 'bbyaek', 'bbyaet', 'bbyaep', 'bbyaeh',
+'bbeo', 'bbeog', 'bbeogg', 'bbeogs', 'bbeon', 'bbeonj', 'bbeonh', 'bbeod', 'bbeol', 'bbeolg', 'bbeolm', 'bbeolb', 'bbeols', 'bbeolt', 'bbeolp', 'bbeolh',
+'bbeom', 'bbeob', 'bbeobs', 'bbeos', 'bbeoss', 'bbeong', 'bbeoj', 'bbeoc', 'bbeok', 'bbeot', 'bbeop', 'bbeoh', 'bbe', 'bbeg', 'bbegg', 'bbegs',
+'bben', 'bbenj', 'bbenh', 'bbed', 'bbel', 'bbelg', 'bbelm', 'bbelb', 'bbels', 'bbelt', 'bbelp', 'bbelh', 'bbem', 'bbeb', 'bbebs', 'bbes',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbf.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbf.pm
new file mode 100644
index 0000000..ac88664
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xbf.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xbf] = [
+'bbess', 'bbeng', 'bbej', 'bbec', 'bbek', 'bbet', 'bbep', 'bbeh', 'bbyeo', 'bbyeog', 'bbyeogg', 'bbyeogs', 'bbyeon', 'bbyeonj', 'bbyeonh', 'bbyeod',
+'bbyeol', 'bbyeolg', 'bbyeolm', 'bbyeolb', 'bbyeols', 'bbyeolt', 'bbyeolp', 'bbyeolh', 'bbyeom', 'bbyeob', 'bbyeobs', 'bbyeos', 'bbyeoss', 'bbyeong', 'bbyeoj', 'bbyeoc',
+'bbyeok', 'bbyeot', 'bbyeop', 'bbyeoh', 'bbye', 'bbyeg', 'bbyegg', 'bbyegs', 'bbyen', 'bbyenj', 'bbyenh', 'bbyed', 'bbyel', 'bbyelg', 'bbyelm', 'bbyelb',
+'bbyels', 'bbyelt', 'bbyelp', 'bbyelh', 'bbyem', 'bbyeb', 'bbyebs', 'bbyes', 'bbyess', 'bbyeng', 'bbyej', 'bbyec', 'bbyek', 'bbyet', 'bbyep', 'bbyeh',
+'bbo', 'bbog', 'bbogg', 'bbogs', 'bbon', 'bbonj', 'bbonh', 'bbod', 'bbol', 'bbolg', 'bbolm', 'bbolb', 'bbols', 'bbolt', 'bbolp', 'bbolh',
+'bbom', 'bbob', 'bbobs', 'bbos', 'bboss', 'bbong', 'bboj', 'bboc', 'bbok', 'bbot', 'bbop', 'bboh', 'bbwa', 'bbwag', 'bbwagg', 'bbwags',
+'bbwan', 'bbwanj', 'bbwanh', 'bbwad', 'bbwal', 'bbwalg', 'bbwalm', 'bbwalb', 'bbwals', 'bbwalt', 'bbwalp', 'bbwalh', 'bbwam', 'bbwab', 'bbwabs', 'bbwas',
+'bbwass', 'bbwang', 'bbwaj', 'bbwac', 'bbwak', 'bbwat', 'bbwap', 'bbwah', 'bbwae', 'bbwaeg', 'bbwaegg', 'bbwaegs', 'bbwaen', 'bbwaenj', 'bbwaenh', 'bbwaed',
+'bbwael', 'bbwaelg', 'bbwaelm', 'bbwaelb', 'bbwaels', 'bbwaelt', 'bbwaelp', 'bbwaelh', 'bbwaem', 'bbwaeb', 'bbwaebs', 'bbwaes', 'bbwaess', 'bbwaeng', 'bbwaej', 'bbwaec',
+'bbwaek', 'bbwaet', 'bbwaep', 'bbwaeh', 'bboe', 'bboeg', 'bboegg', 'bboegs', 'bboen', 'bboenj', 'bboenh', 'bboed', 'bboel', 'bboelg', 'bboelm', 'bboelb',
+'bboels', 'bboelt', 'bboelp', 'bboelh', 'bboem', 'bboeb', 'bboebs', 'bboes', 'bboess', 'bboeng', 'bboej', 'bboec', 'bboek', 'bboet', 'bboep', 'bboeh',
+'bbyo', 'bbyog', 'bbyogg', 'bbyogs', 'bbyon', 'bbyonj', 'bbyonh', 'bbyod', 'bbyol', 'bbyolg', 'bbyolm', 'bbyolb', 'bbyols', 'bbyolt', 'bbyolp', 'bbyolh',
+'bbyom', 'bbyob', 'bbyobs', 'bbyos', 'bbyoss', 'bbyong', 'bbyoj', 'bbyoc', 'bbyok', 'bbyot', 'bbyop', 'bbyoh', 'bbu', 'bbug', 'bbugg', 'bbugs',
+'bbun', 'bbunj', 'bbunh', 'bbud', 'bbul', 'bbulg', 'bbulm', 'bbulb', 'bbuls', 'bbult', 'bbulp', 'bbulh', 'bbum', 'bbub', 'bbubs', 'bbus',
+'bbuss', 'bbung', 'bbuj', 'bbuc', 'bbuk', 'bbut', 'bbup', 'bbuh', 'bbweo', 'bbweog', 'bbweogg', 'bbweogs', 'bbweon', 'bbweonj', 'bbweonh', 'bbweod',
+'bbweol', 'bbweolg', 'bbweolm', 'bbweolb', 'bbweols', 'bbweolt', 'bbweolp', 'bbweolh', 'bbweom', 'bbweob', 'bbweobs', 'bbweos', 'bbweoss', 'bbweong', 'bbweoj', 'bbweoc',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc0.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc0.pm
new file mode 100644
index 0000000..64466c2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc0.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:39 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc0] = [
+'bbweok', 'bbweot', 'bbweop', 'bbweoh', 'bbwe', 'bbweg', 'bbwegg', 'bbwegs', 'bbwen', 'bbwenj', 'bbwenh', 'bbwed', 'bbwel', 'bbwelg', 'bbwelm', 'bbwelb',
+'bbwels', 'bbwelt', 'bbwelp', 'bbwelh', 'bbwem', 'bbweb', 'bbwebs', 'bbwes', 'bbwess', 'bbweng', 'bbwej', 'bbwec', 'bbwek', 'bbwet', 'bbwep', 'bbweh',
+'bbwi', 'bbwig', 'bbwigg', 'bbwigs', 'bbwin', 'bbwinj', 'bbwinh', 'bbwid', 'bbwil', 'bbwilg', 'bbwilm', 'bbwilb', 'bbwils', 'bbwilt', 'bbwilp', 'bbwilh',
+'bbwim', 'bbwib', 'bbwibs', 'bbwis', 'bbwiss', 'bbwing', 'bbwij', 'bbwic', 'bbwik', 'bbwit', 'bbwip', 'bbwih', 'bbyu', 'bbyug', 'bbyugg', 'bbyugs',
+'bbyun', 'bbyunj', 'bbyunh', 'bbyud', 'bbyul', 'bbyulg', 'bbyulm', 'bbyulb', 'bbyuls', 'bbyult', 'bbyulp', 'bbyulh', 'bbyum', 'bbyub', 'bbyubs', 'bbyus',
+'bbyuss', 'bbyung', 'bbyuj', 'bbyuc', 'bbyuk', 'bbyut', 'bbyup', 'bbyuh', 'bbeu', 'bbeug', 'bbeugg', 'bbeugs', 'bbeun', 'bbeunj', 'bbeunh', 'bbeud',
+'bbeul', 'bbeulg', 'bbeulm', 'bbeulb', 'bbeuls', 'bbeult', 'bbeulp', 'bbeulh', 'bbeum', 'bbeub', 'bbeubs', 'bbeus', 'bbeuss', 'bbeung', 'bbeuj', 'bbeuc',
+'bbeuk', 'bbeut', 'bbeup', 'bbeuh', 'bbyi', 'bbyig', 'bbyigg', 'bbyigs', 'bbyin', 'bbyinj', 'bbyinh', 'bbyid', 'bbyil', 'bbyilg', 'bbyilm', 'bbyilb',
+'bbyils', 'bbyilt', 'bbyilp', 'bbyilh', 'bbyim', 'bbyib', 'bbyibs', 'bbyis', 'bbyiss', 'bbying', 'bbyij', 'bbyic', 'bbyik', 'bbyit', 'bbyip', 'bbyih',
+'bbi', 'bbig', 'bbigg', 'bbigs', 'bbin', 'bbinj', 'bbinh', 'bbid', 'bbil', 'bbilg', 'bbilm', 'bbilb', 'bbils', 'bbilt', 'bbilp', 'bbilh',
+'bbim', 'bbib', 'bbibs', 'bbis', 'bbiss', 'bbing', 'bbij', 'bbic', 'bbik', 'bbit', 'bbip', 'bbih', 'sa', 'sag', 'sagg', 'sags',
+'san', 'sanj', 'sanh', 'sad', 'sal', 'salg', 'salm', 'salb', 'sals', 'salt', 'salp', 'salh', 'sam', 'sab', 'sabs', 'sas',
+'sass', 'sang', 'saj', 'sac', 'sak', 'sat', 'sap', 'sah', 'sae', 'saeg', 'saegg', 'saegs', 'saen', 'saenj', 'saenh', 'saed',
+'sael', 'saelg', 'saelm', 'saelb', 'saels', 'saelt', 'saelp', 'saelh', 'saem', 'saeb', 'saebs', 'saes', 'saess', 'saeng', 'saej', 'saec',
+'saek', 'saet', 'saep', 'saeh', 'sya', 'syag', 'syagg', 'syags', 'syan', 'syanj', 'syanh', 'syad', 'syal', 'syalg', 'syalm', 'syalb',
+'syals', 'syalt', 'syalp', 'syalh', 'syam', 'syab', 'syabs', 'syas', 'syass', 'syang', 'syaj', 'syac', 'syak', 'syat', 'syap', 'syah',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc1.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc1.pm
new file mode 100644
index 0000000..8f89d9d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc1.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc1] = [
+'syae', 'syaeg', 'syaegg', 'syaegs', 'syaen', 'syaenj', 'syaenh', 'syaed', 'syael', 'syaelg', 'syaelm', 'syaelb', 'syaels', 'syaelt', 'syaelp', 'syaelh',
+'syaem', 'syaeb', 'syaebs', 'syaes', 'syaess', 'syaeng', 'syaej', 'syaec', 'syaek', 'syaet', 'syaep', 'syaeh', 'seo', 'seog', 'seogg', 'seogs',
+'seon', 'seonj', 'seonh', 'seod', 'seol', 'seolg', 'seolm', 'seolb', 'seols', 'seolt', 'seolp', 'seolh', 'seom', 'seob', 'seobs', 'seos',
+'seoss', 'seong', 'seoj', 'seoc', 'seok', 'seot', 'seop', 'seoh', 'se', 'seg', 'segg', 'segs', 'sen', 'senj', 'senh', 'sed',
+'sel', 'selg', 'selm', 'selb', 'sels', 'selt', 'selp', 'selh', 'sem', 'seb', 'sebs', 'ses', 'sess', 'seng', 'sej', 'sec',
+'sek', 'set', 'sep', 'seh', 'syeo', 'syeog', 'syeogg', 'syeogs', 'syeon', 'syeonj', 'syeonh', 'syeod', 'syeol', 'syeolg', 'syeolm', 'syeolb',
+'syeols', 'syeolt', 'syeolp', 'syeolh', 'syeom', 'syeob', 'syeobs', 'syeos', 'syeoss', 'syeong', 'syeoj', 'syeoc', 'syeok', 'syeot', 'syeop', 'syeoh',
+'sye', 'syeg', 'syegg', 'syegs', 'syen', 'syenj', 'syenh', 'syed', 'syel', 'syelg', 'syelm', 'syelb', 'syels', 'syelt', 'syelp', 'syelh',
+'syem', 'syeb', 'syebs', 'syes', 'syess', 'syeng', 'syej', 'syec', 'syek', 'syet', 'syep', 'syeh', 'so', 'sog', 'sogg', 'sogs',
+'son', 'sonj', 'sonh', 'sod', 'sol', 'solg', 'solm', 'solb', 'sols', 'solt', 'solp', 'solh', 'som', 'sob', 'sobs', 'sos',
+'soss', 'song', 'soj', 'soc', 'sok', 'sot', 'sop', 'soh', 'swa', 'swag', 'swagg', 'swags', 'swan', 'swanj', 'swanh', 'swad',
+'swal', 'swalg', 'swalm', 'swalb', 'swals', 'swalt', 'swalp', 'swalh', 'swam', 'swab', 'swabs', 'swas', 'swass', 'swang', 'swaj', 'swac',
+'swak', 'swat', 'swap', 'swah', 'swae', 'swaeg', 'swaegg', 'swaegs', 'swaen', 'swaenj', 'swaenh', 'swaed', 'swael', 'swaelg', 'swaelm', 'swaelb',
+'swaels', 'swaelt', 'swaelp', 'swaelh', 'swaem', 'swaeb', 'swaebs', 'swaes', 'swaess', 'swaeng', 'swaej', 'swaec', 'swaek', 'swaet', 'swaep', 'swaeh',
+'soe', 'soeg', 'soegg', 'soegs', 'soen', 'soenj', 'soenh', 'soed', 'soel', 'soelg', 'soelm', 'soelb', 'soels', 'soelt', 'soelp', 'soelh',
+'soem', 'soeb', 'soebs', 'soes', 'soess', 'soeng', 'soej', 'soec', 'soek', 'soet', 'soep', 'soeh', 'syo', 'syog', 'syogg', 'syogs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc2.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc2.pm
new file mode 100644
index 0000000..165507f
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc2.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc2] = [
+'syon', 'syonj', 'syonh', 'syod', 'syol', 'syolg', 'syolm', 'syolb', 'syols', 'syolt', 'syolp', 'syolh', 'syom', 'syob', 'syobs', 'syos',
+'syoss', 'syong', 'syoj', 'syoc', 'syok', 'syot', 'syop', 'syoh', 'su', 'sug', 'sugg', 'sugs', 'sun', 'sunj', 'sunh', 'sud',
+'sul', 'sulg', 'sulm', 'sulb', 'suls', 'sult', 'sulp', 'sulh', 'sum', 'sub', 'subs', 'sus', 'suss', 'sung', 'suj', 'suc',
+'suk', 'sut', 'sup', 'suh', 'sweo', 'sweog', 'sweogg', 'sweogs', 'sweon', 'sweonj', 'sweonh', 'sweod', 'sweol', 'sweolg', 'sweolm', 'sweolb',
+'sweols', 'sweolt', 'sweolp', 'sweolh', 'sweom', 'sweob', 'sweobs', 'sweos', 'sweoss', 'sweong', 'sweoj', 'sweoc', 'sweok', 'sweot', 'sweop', 'sweoh',
+'swe', 'sweg', 'swegg', 'swegs', 'swen', 'swenj', 'swenh', 'swed', 'swel', 'swelg', 'swelm', 'swelb', 'swels', 'swelt', 'swelp', 'swelh',
+'swem', 'sweb', 'swebs', 'swes', 'swess', 'sweng', 'swej', 'swec', 'swek', 'swet', 'swep', 'sweh', 'swi', 'swig', 'swigg', 'swigs',
+'swin', 'swinj', 'swinh', 'swid', 'swil', 'swilg', 'swilm', 'swilb', 'swils', 'swilt', 'swilp', 'swilh', 'swim', 'swib', 'swibs', 'swis',
+'swiss', 'swing', 'swij', 'swic', 'swik', 'swit', 'swip', 'swih', 'syu', 'syug', 'syugg', 'syugs', 'syun', 'syunj', 'syunh', 'syud',
+'syul', 'syulg', 'syulm', 'syulb', 'syuls', 'syult', 'syulp', 'syulh', 'syum', 'syub', 'syubs', 'syus', 'syuss', 'syung', 'syuj', 'syuc',
+'syuk', 'syut', 'syup', 'syuh', 'seu', 'seug', 'seugg', 'seugs', 'seun', 'seunj', 'seunh', 'seud', 'seul', 'seulg', 'seulm', 'seulb',
+'seuls', 'seult', 'seulp', 'seulh', 'seum', 'seub', 'seubs', 'seus', 'seuss', 'seung', 'seuj', 'seuc', 'seuk', 'seut', 'seup', 'seuh',
+'syi', 'syig', 'syigg', 'syigs', 'syin', 'syinj', 'syinh', 'syid', 'syil', 'syilg', 'syilm', 'syilb', 'syils', 'syilt', 'syilp', 'syilh',
+'syim', 'syib', 'syibs', 'syis', 'syiss', 'sying', 'syij', 'syic', 'syik', 'syit', 'syip', 'syih', 'si', 'sig', 'sigg', 'sigs',
+'sin', 'sinj', 'sinh', 'sid', 'sil', 'silg', 'silm', 'silb', 'sils', 'silt', 'silp', 'silh', 'sim', 'sib', 'sibs', 'sis',
+'siss', 'sing', 'sij', 'sic', 'sik', 'sit', 'sip', 'sih', 'ssa', 'ssag', 'ssagg', 'ssags', 'ssan', 'ssanj', 'ssanh', 'ssad',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc3.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc3.pm
new file mode 100644
index 0000000..4bb1fdb
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc3.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc3] = [
+'ssal', 'ssalg', 'ssalm', 'ssalb', 'ssals', 'ssalt', 'ssalp', 'ssalh', 'ssam', 'ssab', 'ssabs', 'ssas', 'ssass', 'ssang', 'ssaj', 'ssac',
+'ssak', 'ssat', 'ssap', 'ssah', 'ssae', 'ssaeg', 'ssaegg', 'ssaegs', 'ssaen', 'ssaenj', 'ssaenh', 'ssaed', 'ssael', 'ssaelg', 'ssaelm', 'ssaelb',
+'ssaels', 'ssaelt', 'ssaelp', 'ssaelh', 'ssaem', 'ssaeb', 'ssaebs', 'ssaes', 'ssaess', 'ssaeng', 'ssaej', 'ssaec', 'ssaek', 'ssaet', 'ssaep', 'ssaeh',
+'ssya', 'ssyag', 'ssyagg', 'ssyags', 'ssyan', 'ssyanj', 'ssyanh', 'ssyad', 'ssyal', 'ssyalg', 'ssyalm', 'ssyalb', 'ssyals', 'ssyalt', 'ssyalp', 'ssyalh',
+'ssyam', 'ssyab', 'ssyabs', 'ssyas', 'ssyass', 'ssyang', 'ssyaj', 'ssyac', 'ssyak', 'ssyat', 'ssyap', 'ssyah', 'ssyae', 'ssyaeg', 'ssyaegg', 'ssyaegs',
+'ssyaen', 'ssyaenj', 'ssyaenh', 'ssyaed', 'ssyael', 'ssyaelg', 'ssyaelm', 'ssyaelb', 'ssyaels', 'ssyaelt', 'ssyaelp', 'ssyaelh', 'ssyaem', 'ssyaeb', 'ssyaebs', 'ssyaes',
+'ssyaess', 'ssyaeng', 'ssyaej', 'ssyaec', 'ssyaek', 'ssyaet', 'ssyaep', 'ssyaeh', 'sseo', 'sseog', 'sseogg', 'sseogs', 'sseon', 'sseonj', 'sseonh', 'sseod',
+'sseol', 'sseolg', 'sseolm', 'sseolb', 'sseols', 'sseolt', 'sseolp', 'sseolh', 'sseom', 'sseob', 'sseobs', 'sseos', 'sseoss', 'sseong', 'sseoj', 'sseoc',
+'sseok', 'sseot', 'sseop', 'sseoh', 'sse', 'sseg', 'ssegg', 'ssegs', 'ssen', 'ssenj', 'ssenh', 'ssed', 'ssel', 'sselg', 'sselm', 'sselb',
+'ssels', 'sselt', 'sselp', 'sselh', 'ssem', 'sseb', 'ssebs', 'sses', 'ssess', 'sseng', 'ssej', 'ssec', 'ssek', 'sset', 'ssep', 'sseh',
+'ssyeo', 'ssyeog', 'ssyeogg', 'ssyeogs', 'ssyeon', 'ssyeonj', 'ssyeonh', 'ssyeod', 'ssyeol', 'ssyeolg', 'ssyeolm', 'ssyeolb', 'ssyeols', 'ssyeolt', 'ssyeolp', 'ssyeolh',
+'ssyeom', 'ssyeob', 'ssyeobs', 'ssyeos', 'ssyeoss', 'ssyeong', 'ssyeoj', 'ssyeoc', 'ssyeok', 'ssyeot', 'ssyeop', 'ssyeoh', 'ssye', 'ssyeg', 'ssyegg', 'ssyegs',
+'ssyen', 'ssyenj', 'ssyenh', 'ssyed', 'ssyel', 'ssyelg', 'ssyelm', 'ssyelb', 'ssyels', 'ssyelt', 'ssyelp', 'ssyelh', 'ssyem', 'ssyeb', 'ssyebs', 'ssyes',
+'ssyess', 'ssyeng', 'ssyej', 'ssyec', 'ssyek', 'ssyet', 'ssyep', 'ssyeh', 'sso', 'ssog', 'ssogg', 'ssogs', 'sson', 'ssonj', 'ssonh', 'ssod',
+'ssol', 'ssolg', 'ssolm', 'ssolb', 'ssols', 'ssolt', 'ssolp', 'ssolh', 'ssom', 'ssob', 'ssobs', 'ssos', 'ssoss', 'ssong', 'ssoj', 'ssoc',
+'ssok', 'ssot', 'ssop', 'ssoh', 'sswa', 'sswag', 'sswagg', 'sswags', 'sswan', 'sswanj', 'sswanh', 'sswad', 'sswal', 'sswalg', 'sswalm', 'sswalb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc4.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc4.pm
new file mode 100644
index 0000000..bb05a40
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc4.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc4] = [
+'sswals', 'sswalt', 'sswalp', 'sswalh', 'sswam', 'sswab', 'sswabs', 'sswas', 'sswass', 'sswang', 'sswaj', 'sswac', 'sswak', 'sswat', 'sswap', 'sswah',
+'sswae', 'sswaeg', 'sswaegg', 'sswaegs', 'sswaen', 'sswaenj', 'sswaenh', 'sswaed', 'sswael', 'sswaelg', 'sswaelm', 'sswaelb', 'sswaels', 'sswaelt', 'sswaelp', 'sswaelh',
+'sswaem', 'sswaeb', 'sswaebs', 'sswaes', 'sswaess', 'sswaeng', 'sswaej', 'sswaec', 'sswaek', 'sswaet', 'sswaep', 'sswaeh', 'ssoe', 'ssoeg', 'ssoegg', 'ssoegs',
+'ssoen', 'ssoenj', 'ssoenh', 'ssoed', 'ssoel', 'ssoelg', 'ssoelm', 'ssoelb', 'ssoels', 'ssoelt', 'ssoelp', 'ssoelh', 'ssoem', 'ssoeb', 'ssoebs', 'ssoes',
+'ssoess', 'ssoeng', 'ssoej', 'ssoec', 'ssoek', 'ssoet', 'ssoep', 'ssoeh', 'ssyo', 'ssyog', 'ssyogg', 'ssyogs', 'ssyon', 'ssyonj', 'ssyonh', 'ssyod',
+'ssyol', 'ssyolg', 'ssyolm', 'ssyolb', 'ssyols', 'ssyolt', 'ssyolp', 'ssyolh', 'ssyom', 'ssyob', 'ssyobs', 'ssyos', 'ssyoss', 'ssyong', 'ssyoj', 'ssyoc',
+'ssyok', 'ssyot', 'ssyop', 'ssyoh', 'ssu', 'ssug', 'ssugg', 'ssugs', 'ssun', 'ssunj', 'ssunh', 'ssud', 'ssul', 'ssulg', 'ssulm', 'ssulb',
+'ssuls', 'ssult', 'ssulp', 'ssulh', 'ssum', 'ssub', 'ssubs', 'ssus', 'ssuss', 'ssung', 'ssuj', 'ssuc', 'ssuk', 'ssut', 'ssup', 'ssuh',
+'ssweo', 'ssweog', 'ssweogg', 'ssweogs', 'ssweon', 'ssweonj', 'ssweonh', 'ssweod', 'ssweol', 'ssweolg', 'ssweolm', 'ssweolb', 'ssweols', 'ssweolt', 'ssweolp', 'ssweolh',
+'ssweom', 'ssweob', 'ssweobs', 'ssweos', 'ssweoss', 'ssweong', 'ssweoj', 'ssweoc', 'ssweok', 'ssweot', 'ssweop', 'ssweoh', 'sswe', 'ssweg', 'sswegg', 'sswegs',
+'sswen', 'sswenj', 'sswenh', 'sswed', 'sswel', 'sswelg', 'sswelm', 'sswelb', 'sswels', 'sswelt', 'sswelp', 'sswelh', 'sswem', 'ssweb', 'sswebs', 'sswes',
+'sswess', 'ssweng', 'sswej', 'sswec', 'sswek', 'sswet', 'sswep', 'ssweh', 'sswi', 'sswig', 'sswigg', 'sswigs', 'sswin', 'sswinj', 'sswinh', 'sswid',
+'sswil', 'sswilg', 'sswilm', 'sswilb', 'sswils', 'sswilt', 'sswilp', 'sswilh', 'sswim', 'sswib', 'sswibs', 'sswis', 'sswiss', 'sswing', 'sswij', 'sswic',
+'sswik', 'sswit', 'sswip', 'sswih', 'ssyu', 'ssyug', 'ssyugg', 'ssyugs', 'ssyun', 'ssyunj', 'ssyunh', 'ssyud', 'ssyul', 'ssyulg', 'ssyulm', 'ssyulb',
+'ssyuls', 'ssyult', 'ssyulp', 'ssyulh', 'ssyum', 'ssyub', 'ssyubs', 'ssyus', 'ssyuss', 'ssyung', 'ssyuj', 'ssyuc', 'ssyuk', 'ssyut', 'ssyup', 'ssyuh',
+'sseu', 'sseug', 'sseugg', 'sseugs', 'sseun', 'sseunj', 'sseunh', 'sseud', 'sseul', 'sseulg', 'sseulm', 'sseulb', 'sseuls', 'sseult', 'sseulp', 'sseulh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc5.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc5.pm
new file mode 100644
index 0000000..23ad7d6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc5.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc5] = [
+'sseum', 'sseub', 'sseubs', 'sseus', 'sseuss', 'sseung', 'sseuj', 'sseuc', 'sseuk', 'sseut', 'sseup', 'sseuh', 'ssyi', 'ssyig', 'ssyigg', 'ssyigs',
+'ssyin', 'ssyinj', 'ssyinh', 'ssyid', 'ssyil', 'ssyilg', 'ssyilm', 'ssyilb', 'ssyils', 'ssyilt', 'ssyilp', 'ssyilh', 'ssyim', 'ssyib', 'ssyibs', 'ssyis',
+'ssyiss', 'ssying', 'ssyij', 'ssyic', 'ssyik', 'ssyit', 'ssyip', 'ssyih', 'ssi', 'ssig', 'ssigg', 'ssigs', 'ssin', 'ssinj', 'ssinh', 'ssid',
+'ssil', 'ssilg', 'ssilm', 'ssilb', 'ssils', 'ssilt', 'ssilp', 'ssilh', 'ssim', 'ssib', 'ssibs', 'ssis', 'ssiss', 'ssing', 'ssij', 'ssic',
+'ssik', 'ssit', 'ssip', 'ssih', 'a', 'ag', 'agg', 'ags', 'an', 'anj', 'anh', 'ad', 'al', 'alg', 'alm', 'alb',
+'als', 'alt', 'alp', 'alh', 'am', 'ab', 'abs', 'as', 'ass', 'ang', 'aj', 'ac', 'ak', 'at', 'ap', 'ah',
+'ae', 'aeg', 'aegg', 'aegs', 'aen', 'aenj', 'aenh', 'aed', 'ael', 'aelg', 'aelm', 'aelb', 'aels', 'aelt', 'aelp', 'aelh',
+'aem', 'aeb', 'aebs', 'aes', 'aess', 'aeng', 'aej', 'aec', 'aek', 'aet', 'aep', 'aeh', 'ya', 'yag', 'yagg', 'yags',
+'yan', 'yanj', 'yanh', 'yad', 'yal', 'yalg', 'yalm', 'yalb', 'yals', 'yalt', 'yalp', 'yalh', 'yam', 'yab', 'yabs', 'yas',
+'yass', 'yang', 'yaj', 'yac', 'yak', 'yat', 'yap', 'yah', 'yae', 'yaeg', 'yaegg', 'yaegs', 'yaen', 'yaenj', 'yaenh', 'yaed',
+'yael', 'yaelg', 'yaelm', 'yaelb', 'yaels', 'yaelt', 'yaelp', 'yaelh', 'yaem', 'yaeb', 'yaebs', 'yaes', 'yaess', 'yaeng', 'yaej', 'yaec',
+'yaek', 'yaet', 'yaep', 'yaeh', 'eo', 'eog', 'eogg', 'eogs', 'eon', 'eonj', 'eonh', 'eod', 'eol', 'eolg', 'eolm', 'eolb',
+'eols', 'eolt', 'eolp', 'eolh', 'eom', 'eob', 'eobs', 'eos', 'eoss', 'eong', 'eoj', 'eoc', 'eok', 'eot', 'eop', 'eoh',
+'e', 'eg', 'egg', 'egs', 'en', 'enj', 'enh', 'ed', 'el', 'elg', 'elm', 'elb', 'els', 'elt', 'elp', 'elh',
+'em', 'eb', 'ebs', 'es', 'ess', 'eng', 'ej', 'ec', 'ek', 'et', 'ep', 'eh', 'yeo', 'yeog', 'yeogg', 'yeogs',
+'yeon', 'yeonj', 'yeonh', 'yeod', 'yeol', 'yeolg', 'yeolm', 'yeolb', 'yeols', 'yeolt', 'yeolp', 'yeolh', 'yeom', 'yeob', 'yeobs', 'yeos',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc6.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc6.pm
new file mode 100644
index 0000000..aaf2db0
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc6.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:40 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc6] = [
+'yeoss', 'yeong', 'yeoj', 'yeoc', 'yeok', 'yeot', 'yeop', 'yeoh', 'ye', 'yeg', 'yegg', 'yegs', 'yen', 'yenj', 'yenh', 'yed',
+'yel', 'yelg', 'yelm', 'yelb', 'yels', 'yelt', 'yelp', 'yelh', 'yem', 'yeb', 'yebs', 'yes', 'yess', 'yeng', 'yej', 'yec',
+'yek', 'yet', 'yep', 'yeh', 'o', 'og', 'ogg', 'ogs', 'on', 'onj', 'onh', 'od', 'ol', 'olg', 'olm', 'olb',
+'ols', 'olt', 'olp', 'olh', 'om', 'ob', 'obs', 'os', 'oss', 'ong', 'oj', 'oc', 'ok', 'ot', 'op', 'oh',
+'wa', 'wag', 'wagg', 'wags', 'wan', 'wanj', 'wanh', 'wad', 'wal', 'walg', 'walm', 'walb', 'wals', 'walt', 'walp', 'walh',
+'wam', 'wab', 'wabs', 'was', 'wass', 'wang', 'waj', 'wac', 'wak', 'wat', 'wap', 'wah', 'wae', 'waeg', 'waegg', 'waegs',
+'waen', 'waenj', 'waenh', 'waed', 'wael', 'waelg', 'waelm', 'waelb', 'waels', 'waelt', 'waelp', 'waelh', 'waem', 'waeb', 'waebs', 'waes',
+'waess', 'waeng', 'waej', 'waec', 'waek', 'waet', 'waep', 'waeh', 'oe', 'oeg', 'oegg', 'oegs', 'oen', 'oenj', 'oenh', 'oed',
+'oel', 'oelg', 'oelm', 'oelb', 'oels', 'oelt', 'oelp', 'oelh', 'oem', 'oeb', 'oebs', 'oes', 'oess', 'oeng', 'oej', 'oec',
+'oek', 'oet', 'oep', 'oeh', 'yo', 'yog', 'yogg', 'yogs', 'yon', 'yonj', 'yonh', 'yod', 'yol', 'yolg', 'yolm', 'yolb',
+'yols', 'yolt', 'yolp', 'yolh', 'yom', 'yob', 'yobs', 'yos', 'yoss', 'yong', 'yoj', 'yoc', 'yok', 'yot', 'yop', 'yoh',
+'u', 'ug', 'ugg', 'ugs', 'un', 'unj', 'unh', 'ud', 'ul', 'ulg', 'ulm', 'ulb', 'uls', 'ult', 'ulp', 'ulh',
+'um', 'ub', 'ubs', 'us', 'uss', 'ung', 'uj', 'uc', 'uk', 'ut', 'up', 'uh', 'weo', 'weog', 'weogg', 'weogs',
+'weon', 'weonj', 'weonh', 'weod', 'weol', 'weolg', 'weolm', 'weolb', 'weols', 'weolt', 'weolp', 'weolh', 'weom', 'weob', 'weobs', 'weos',
+'weoss', 'weong', 'weoj', 'weoc', 'weok', 'weot', 'weop', 'weoh', 'we', 'weg', 'wegg', 'wegs', 'wen', 'wenj', 'wenh', 'wed',
+'wel', 'welg', 'welm', 'welb', 'wels', 'welt', 'welp', 'welh', 'wem', 'web', 'webs', 'wes', 'wess', 'weng', 'wej', 'wec',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc7.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc7.pm
new file mode 100644
index 0000000..97e3eb1
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc7.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:41 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc7] = [
+'wek', 'wet', 'wep', 'weh', 'wi', 'wig', 'wigg', 'wigs', 'win', 'winj', 'winh', 'wid', 'wil', 'wilg', 'wilm', 'wilb',
+'wils', 'wilt', 'wilp', 'wilh', 'wim', 'wib', 'wibs', 'wis', 'wiss', 'wing', 'wij', 'wic', 'wik', 'wit', 'wip', 'wih',
+'yu', 'yug', 'yugg', 'yugs', 'yun', 'yunj', 'yunh', 'yud', 'yul', 'yulg', 'yulm', 'yulb', 'yuls', 'yult', 'yulp', 'yulh',
+'yum', 'yub', 'yubs', 'yus', 'yuss', 'yung', 'yuj', 'yuc', 'yuk', 'yut', 'yup', 'yuh', 'eu', 'eug', 'eugg', 'eugs',
+'eun', 'eunj', 'eunh', 'eud', 'eul', 'eulg', 'eulm', 'eulb', 'euls', 'eult', 'eulp', 'eulh', 'eum', 'eub', 'eubs', 'eus',
+'euss', 'eung', 'euj', 'euc', 'euk', 'eut', 'eup', 'euh', 'yi', 'yig', 'yigg', 'yigs', 'yin', 'yinj', 'yinh', 'yid',
+'yil', 'yilg', 'yilm', 'yilb', 'yils', 'yilt', 'yilp', 'yilh', 'yim', 'yib', 'yibs', 'yis', 'yiss', 'ying', 'yij', 'yic',
+'yik', 'yit', 'yip', 'yih', 'i', 'ig', 'igg', 'igs', 'in', 'inj', 'inh', 'id', 'il', 'ilg', 'ilm', 'ilb',
+'ils', 'ilt', 'ilp', 'ilh', 'im', 'ib', 'ibs', 'is', 'iss', 'ing', 'ij', 'ic', 'ik', 'it', 'ip', 'ih',
+'ja', 'jag', 'jagg', 'jags', 'jan', 'janj', 'janh', 'jad', 'jal', 'jalg', 'jalm', 'jalb', 'jals', 'jalt', 'jalp', 'jalh',
+'jam', 'jab', 'jabs', 'jas', 'jass', 'jang', 'jaj', 'jac', 'jak', 'jat', 'jap', 'jah', 'jae', 'jaeg', 'jaegg', 'jaegs',
+'jaen', 'jaenj', 'jaenh', 'jaed', 'jael', 'jaelg', 'jaelm', 'jaelb', 'jaels', 'jaelt', 'jaelp', 'jaelh', 'jaem', 'jaeb', 'jaebs', 'jaes',
+'jaess', 'jaeng', 'jaej', 'jaec', 'jaek', 'jaet', 'jaep', 'jaeh', 'jya', 'jyag', 'jyagg', 'jyags', 'jyan', 'jyanj', 'jyanh', 'jyad',
+'jyal', 'jyalg', 'jyalm', 'jyalb', 'jyals', 'jyalt', 'jyalp', 'jyalh', 'jyam', 'jyab', 'jyabs', 'jyas', 'jyass', 'jyang', 'jyaj', 'jyac',
+'jyak', 'jyat', 'jyap', 'jyah', 'jyae', 'jyaeg', 'jyaegg', 'jyaegs', 'jyaen', 'jyaenj', 'jyaenh', 'jyaed', 'jyael', 'jyaelg', 'jyaelm', 'jyaelb',
+'jyaels', 'jyaelt', 'jyaelp', 'jyaelh', 'jyaem', 'jyaeb', 'jyaebs', 'jyaes', 'jyaess', 'jyaeng', 'jyaej', 'jyaec', 'jyaek', 'jyaet', 'jyaep', 'jyaeh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc8.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc8.pm
new file mode 100644
index 0000000..9836817
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc8.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:41 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc8] = [
+'jeo', 'jeog', 'jeogg', 'jeogs', 'jeon', 'jeonj', 'jeonh', 'jeod', 'jeol', 'jeolg', 'jeolm', 'jeolb', 'jeols', 'jeolt', 'jeolp', 'jeolh',
+'jeom', 'jeob', 'jeobs', 'jeos', 'jeoss', 'jeong', 'jeoj', 'jeoc', 'jeok', 'jeot', 'jeop', 'jeoh', 'je', 'jeg', 'jegg', 'jegs',
+'jen', 'jenj', 'jenh', 'jed', 'jel', 'jelg', 'jelm', 'jelb', 'jels', 'jelt', 'jelp', 'jelh', 'jem', 'jeb', 'jebs', 'jes',
+'jess', 'jeng', 'jej', 'jec', 'jek', 'jet', 'jep', 'jeh', 'jyeo', 'jyeog', 'jyeogg', 'jyeogs', 'jyeon', 'jyeonj', 'jyeonh', 'jyeod',
+'jyeol', 'jyeolg', 'jyeolm', 'jyeolb', 'jyeols', 'jyeolt', 'jyeolp', 'jyeolh', 'jyeom', 'jyeob', 'jyeobs', 'jyeos', 'jyeoss', 'jyeong', 'jyeoj', 'jyeoc',
+'jyeok', 'jyeot', 'jyeop', 'jyeoh', 'jye', 'jyeg', 'jyegg', 'jyegs', 'jyen', 'jyenj', 'jyenh', 'jyed', 'jyel', 'jyelg', 'jyelm', 'jyelb',
+'jyels', 'jyelt', 'jyelp', 'jyelh', 'jyem', 'jyeb', 'jyebs', 'jyes', 'jyess', 'jyeng', 'jyej', 'jyec', 'jyek', 'jyet', 'jyep', 'jyeh',
+'jo', 'jog', 'jogg', 'jogs', 'jon', 'jonj', 'jonh', 'jod', 'jol', 'jolg', 'jolm', 'jolb', 'jols', 'jolt', 'jolp', 'jolh',
+'jom', 'job', 'jobs', 'jos', 'joss', 'jong', 'joj', 'joc', 'jok', 'jot', 'jop', 'joh', 'jwa', 'jwag', 'jwagg', 'jwags',
+'jwan', 'jwanj', 'jwanh', 'jwad', 'jwal', 'jwalg', 'jwalm', 'jwalb', 'jwals', 'jwalt', 'jwalp', 'jwalh', 'jwam', 'jwab', 'jwabs', 'jwas',
+'jwass', 'jwang', 'jwaj', 'jwac', 'jwak', 'jwat', 'jwap', 'jwah', 'jwae', 'jwaeg', 'jwaegg', 'jwaegs', 'jwaen', 'jwaenj', 'jwaenh', 'jwaed',
+'jwael', 'jwaelg', 'jwaelm', 'jwaelb', 'jwaels', 'jwaelt', 'jwaelp', 'jwaelh', 'jwaem', 'jwaeb', 'jwaebs', 'jwaes', 'jwaess', 'jwaeng', 'jwaej', 'jwaec',
+'jwaek', 'jwaet', 'jwaep', 'jwaeh', 'joe', 'joeg', 'joegg', 'joegs', 'joen', 'joenj', 'joenh', 'joed', 'joel', 'joelg', 'joelm', 'joelb',
+'joels', 'joelt', 'joelp', 'joelh', 'joem', 'joeb', 'joebs', 'joes', 'joess', 'joeng', 'joej', 'joec', 'joek', 'joet', 'joep', 'joeh',
+'jyo', 'jyog', 'jyogg', 'jyogs', 'jyon', 'jyonj', 'jyonh', 'jyod', 'jyol', 'jyolg', 'jyolm', 'jyolb', 'jyols', 'jyolt', 'jyolp', 'jyolh',
+'jyom', 'jyob', 'jyobs', 'jyos', 'jyoss', 'jyong', 'jyoj', 'jyoc', 'jyok', 'jyot', 'jyop', 'jyoh', 'ju', 'jug', 'jugg', 'jugs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc9.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc9.pm
new file mode 100644
index 0000000..fa20824
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xc9.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:41 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xc9] = [
+'jun', 'junj', 'junh', 'jud', 'jul', 'julg', 'julm', 'julb', 'juls', 'jult', 'julp', 'julh', 'jum', 'jub', 'jubs', 'jus',
+'juss', 'jung', 'juj', 'juc', 'juk', 'jut', 'jup', 'juh', 'jweo', 'jweog', 'jweogg', 'jweogs', 'jweon', 'jweonj', 'jweonh', 'jweod',
+'jweol', 'jweolg', 'jweolm', 'jweolb', 'jweols', 'jweolt', 'jweolp', 'jweolh', 'jweom', 'jweob', 'jweobs', 'jweos', 'jweoss', 'jweong', 'jweoj', 'jweoc',
+'jweok', 'jweot', 'jweop', 'jweoh', 'jwe', 'jweg', 'jwegg', 'jwegs', 'jwen', 'jwenj', 'jwenh', 'jwed', 'jwel', 'jwelg', 'jwelm', 'jwelb',
+'jwels', 'jwelt', 'jwelp', 'jwelh', 'jwem', 'jweb', 'jwebs', 'jwes', 'jwess', 'jweng', 'jwej', 'jwec', 'jwek', 'jwet', 'jwep', 'jweh',
+'jwi', 'jwig', 'jwigg', 'jwigs', 'jwin', 'jwinj', 'jwinh', 'jwid', 'jwil', 'jwilg', 'jwilm', 'jwilb', 'jwils', 'jwilt', 'jwilp', 'jwilh',
+'jwim', 'jwib', 'jwibs', 'jwis', 'jwiss', 'jwing', 'jwij', 'jwic', 'jwik', 'jwit', 'jwip', 'jwih', 'jyu', 'jyug', 'jyugg', 'jyugs',
+'jyun', 'jyunj', 'jyunh', 'jyud', 'jyul', 'jyulg', 'jyulm', 'jyulb', 'jyuls', 'jyult', 'jyulp', 'jyulh', 'jyum', 'jyub', 'jyubs', 'jyus',
+'jyuss', 'jyung', 'jyuj', 'jyuc', 'jyuk', 'jyut', 'jyup', 'jyuh', 'jeu', 'jeug', 'jeugg', 'jeugs', 'jeun', 'jeunj', 'jeunh', 'jeud',
+'jeul', 'jeulg', 'jeulm', 'jeulb', 'jeuls', 'jeult', 'jeulp', 'jeulh', 'jeum', 'jeub', 'jeubs', 'jeus', 'jeuss', 'jeung', 'jeuj', 'jeuc',
+'jeuk', 'jeut', 'jeup', 'jeuh', 'jyi', 'jyig', 'jyigg', 'jyigs', 'jyin', 'jyinj', 'jyinh', 'jyid', 'jyil', 'jyilg', 'jyilm', 'jyilb',
+'jyils', 'jyilt', 'jyilp', 'jyilh', 'jyim', 'jyib', 'jyibs', 'jyis', 'jyiss', 'jying', 'jyij', 'jyic', 'jyik', 'jyit', 'jyip', 'jyih',
+'ji', 'jig', 'jigg', 'jigs', 'jin', 'jinj', 'jinh', 'jid', 'jil', 'jilg', 'jilm', 'jilb', 'jils', 'jilt', 'jilp', 'jilh',
+'jim', 'jib', 'jibs', 'jis', 'jiss', 'jing', 'jij', 'jic', 'jik', 'jit', 'jip', 'jih', 'jja', 'jjag', 'jjagg', 'jjags',
+'jjan', 'jjanj', 'jjanh', 'jjad', 'jjal', 'jjalg', 'jjalm', 'jjalb', 'jjals', 'jjalt', 'jjalp', 'jjalh', 'jjam', 'jjab', 'jjabs', 'jjas',
+'jjass', 'jjang', 'jjaj', 'jjac', 'jjak', 'jjat', 'jjap', 'jjah', 'jjae', 'jjaeg', 'jjaegg', 'jjaegs', 'jjaen', 'jjaenj', 'jjaenh', 'jjaed',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xca.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xca.pm
new file mode 100644
index 0000000..a73873d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xca.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:41 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xca] = [
+'jjael', 'jjaelg', 'jjaelm', 'jjaelb', 'jjaels', 'jjaelt', 'jjaelp', 'jjaelh', 'jjaem', 'jjaeb', 'jjaebs', 'jjaes', 'jjaess', 'jjaeng', 'jjaej', 'jjaec',
+'jjaek', 'jjaet', 'jjaep', 'jjaeh', 'jjya', 'jjyag', 'jjyagg', 'jjyags', 'jjyan', 'jjyanj', 'jjyanh', 'jjyad', 'jjyal', 'jjyalg', 'jjyalm', 'jjyalb',
+'jjyals', 'jjyalt', 'jjyalp', 'jjyalh', 'jjyam', 'jjyab', 'jjyabs', 'jjyas', 'jjyass', 'jjyang', 'jjyaj', 'jjyac', 'jjyak', 'jjyat', 'jjyap', 'jjyah',
+'jjyae', 'jjyaeg', 'jjyaegg', 'jjyaegs', 'jjyaen', 'jjyaenj', 'jjyaenh', 'jjyaed', 'jjyael', 'jjyaelg', 'jjyaelm', 'jjyaelb', 'jjyaels', 'jjyaelt', 'jjyaelp', 'jjyaelh',
+'jjyaem', 'jjyaeb', 'jjyaebs', 'jjyaes', 'jjyaess', 'jjyaeng', 'jjyaej', 'jjyaec', 'jjyaek', 'jjyaet', 'jjyaep', 'jjyaeh', 'jjeo', 'jjeog', 'jjeogg', 'jjeogs',
+'jjeon', 'jjeonj', 'jjeonh', 'jjeod', 'jjeol', 'jjeolg', 'jjeolm', 'jjeolb', 'jjeols', 'jjeolt', 'jjeolp', 'jjeolh', 'jjeom', 'jjeob', 'jjeobs', 'jjeos',
+'jjeoss', 'jjeong', 'jjeoj', 'jjeoc', 'jjeok', 'jjeot', 'jjeop', 'jjeoh', 'jje', 'jjeg', 'jjegg', 'jjegs', 'jjen', 'jjenj', 'jjenh', 'jjed',
+'jjel', 'jjelg', 'jjelm', 'jjelb', 'jjels', 'jjelt', 'jjelp', 'jjelh', 'jjem', 'jjeb', 'jjebs', 'jjes', 'jjess', 'jjeng', 'jjej', 'jjec',
+'jjek', 'jjet', 'jjep', 'jjeh', 'jjyeo', 'jjyeog', 'jjyeogg', 'jjyeogs', 'jjyeon', 'jjyeonj', 'jjyeonh', 'jjyeod', 'jjyeol', 'jjyeolg', 'jjyeolm', 'jjyeolb',
+'jjyeols', 'jjyeolt', 'jjyeolp', 'jjyeolh', 'jjyeom', 'jjyeob', 'jjyeobs', 'jjyeos', 'jjyeoss', 'jjyeong', 'jjyeoj', 'jjyeoc', 'jjyeok', 'jjyeot', 'jjyeop', 'jjyeoh',
+'jjye', 'jjyeg', 'jjyegg', 'jjyegs', 'jjyen', 'jjyenj', 'jjyenh', 'jjyed', 'jjyel', 'jjyelg', 'jjyelm', 'jjyelb', 'jjyels', 'jjyelt', 'jjyelp', 'jjyelh',
+'jjyem', 'jjyeb', 'jjyebs', 'jjyes', 'jjyess', 'jjyeng', 'jjyej', 'jjyec', 'jjyek', 'jjyet', 'jjyep', 'jjyeh', 'jjo', 'jjog', 'jjogg', 'jjogs',
+'jjon', 'jjonj', 'jjonh', 'jjod', 'jjol', 'jjolg', 'jjolm', 'jjolb', 'jjols', 'jjolt', 'jjolp', 'jjolh', 'jjom', 'jjob', 'jjobs', 'jjos',
+'jjoss', 'jjong', 'jjoj', 'jjoc', 'jjok', 'jjot', 'jjop', 'jjoh', 'jjwa', 'jjwag', 'jjwagg', 'jjwags', 'jjwan', 'jjwanj', 'jjwanh', 'jjwad',
+'jjwal', 'jjwalg', 'jjwalm', 'jjwalb', 'jjwals', 'jjwalt', 'jjwalp', 'jjwalh', 'jjwam', 'jjwab', 'jjwabs', 'jjwas', 'jjwass', 'jjwang', 'jjwaj', 'jjwac',
+'jjwak', 'jjwat', 'jjwap', 'jjwah', 'jjwae', 'jjwaeg', 'jjwaegg', 'jjwaegs', 'jjwaen', 'jjwaenj', 'jjwaenh', 'jjwaed', 'jjwael', 'jjwaelg', 'jjwaelm', 'jjwaelb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcb.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcb.pm
new file mode 100644
index 0000000..ae7ddd8
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcb.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xcb] = [
+'jjwaels', 'jjwaelt', 'jjwaelp', 'jjwaelh', 'jjwaem', 'jjwaeb', 'jjwaebs', 'jjwaes', 'jjwaess', 'jjwaeng', 'jjwaej', 'jjwaec', 'jjwaek', 'jjwaet', 'jjwaep', 'jjwaeh',
+'jjoe', 'jjoeg', 'jjoegg', 'jjoegs', 'jjoen', 'jjoenj', 'jjoenh', 'jjoed', 'jjoel', 'jjoelg', 'jjoelm', 'jjoelb', 'jjoels', 'jjoelt', 'jjoelp', 'jjoelh',
+'jjoem', 'jjoeb', 'jjoebs', 'jjoes', 'jjoess', 'jjoeng', 'jjoej', 'jjoec', 'jjoek', 'jjoet', 'jjoep', 'jjoeh', 'jjyo', 'jjyog', 'jjyogg', 'jjyogs',
+'jjyon', 'jjyonj', 'jjyonh', 'jjyod', 'jjyol', 'jjyolg', 'jjyolm', 'jjyolb', 'jjyols', 'jjyolt', 'jjyolp', 'jjyolh', 'jjyom', 'jjyob', 'jjyobs', 'jjyos',
+'jjyoss', 'jjyong', 'jjyoj', 'jjyoc', 'jjyok', 'jjyot', 'jjyop', 'jjyoh', 'jju', 'jjug', 'jjugg', 'jjugs', 'jjun', 'jjunj', 'jjunh', 'jjud',
+'jjul', 'jjulg', 'jjulm', 'jjulb', 'jjuls', 'jjult', 'jjulp', 'jjulh', 'jjum', 'jjub', 'jjubs', 'jjus', 'jjuss', 'jjung', 'jjuj', 'jjuc',
+'jjuk', 'jjut', 'jjup', 'jjuh', 'jjweo', 'jjweog', 'jjweogg', 'jjweogs', 'jjweon', 'jjweonj', 'jjweonh', 'jjweod', 'jjweol', 'jjweolg', 'jjweolm', 'jjweolb',
+'jjweols', 'jjweolt', 'jjweolp', 'jjweolh', 'jjweom', 'jjweob', 'jjweobs', 'jjweos', 'jjweoss', 'jjweong', 'jjweoj', 'jjweoc', 'jjweok', 'jjweot', 'jjweop', 'jjweoh',
+'jjwe', 'jjweg', 'jjwegg', 'jjwegs', 'jjwen', 'jjwenj', 'jjwenh', 'jjwed', 'jjwel', 'jjwelg', 'jjwelm', 'jjwelb', 'jjwels', 'jjwelt', 'jjwelp', 'jjwelh',
+'jjwem', 'jjweb', 'jjwebs', 'jjwes', 'jjwess', 'jjweng', 'jjwej', 'jjwec', 'jjwek', 'jjwet', 'jjwep', 'jjweh', 'jjwi', 'jjwig', 'jjwigg', 'jjwigs',
+'jjwin', 'jjwinj', 'jjwinh', 'jjwid', 'jjwil', 'jjwilg', 'jjwilm', 'jjwilb', 'jjwils', 'jjwilt', 'jjwilp', 'jjwilh', 'jjwim', 'jjwib', 'jjwibs', 'jjwis',
+'jjwiss', 'jjwing', 'jjwij', 'jjwic', 'jjwik', 'jjwit', 'jjwip', 'jjwih', 'jjyu', 'jjyug', 'jjyugg', 'jjyugs', 'jjyun', 'jjyunj', 'jjyunh', 'jjyud',
+'jjyul', 'jjyulg', 'jjyulm', 'jjyulb', 'jjyuls', 'jjyult', 'jjyulp', 'jjyulh', 'jjyum', 'jjyub', 'jjyubs', 'jjyus', 'jjyuss', 'jjyung', 'jjyuj', 'jjyuc',
+'jjyuk', 'jjyut', 'jjyup', 'jjyuh', 'jjeu', 'jjeug', 'jjeugg', 'jjeugs', 'jjeun', 'jjeunj', 'jjeunh', 'jjeud', 'jjeul', 'jjeulg', 'jjeulm', 'jjeulb',
+'jjeuls', 'jjeult', 'jjeulp', 'jjeulh', 'jjeum', 'jjeub', 'jjeubs', 'jjeus', 'jjeuss', 'jjeung', 'jjeuj', 'jjeuc', 'jjeuk', 'jjeut', 'jjeup', 'jjeuh',
+'jjyi', 'jjyig', 'jjyigg', 'jjyigs', 'jjyin', 'jjyinj', 'jjyinh', 'jjyid', 'jjyil', 'jjyilg', 'jjyilm', 'jjyilb', 'jjyils', 'jjyilt', 'jjyilp', 'jjyilh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcc.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcc.pm
new file mode 100644
index 0000000..d394ad9
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcc.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xcc] = [
+'jjyim', 'jjyib', 'jjyibs', 'jjyis', 'jjyiss', 'jjying', 'jjyij', 'jjyic', 'jjyik', 'jjyit', 'jjyip', 'jjyih', 'jji', 'jjig', 'jjigg', 'jjigs',
+'jjin', 'jjinj', 'jjinh', 'jjid', 'jjil', 'jjilg', 'jjilm', 'jjilb', 'jjils', 'jjilt', 'jjilp', 'jjilh', 'jjim', 'jjib', 'jjibs', 'jjis',
+'jjiss', 'jjing', 'jjij', 'jjic', 'jjik', 'jjit', 'jjip', 'jjih', 'ca', 'cag', 'cagg', 'cags', 'can', 'canj', 'canh', 'cad',
+'cal', 'calg', 'calm', 'calb', 'cals', 'calt', 'calp', 'calh', 'cam', 'cab', 'cabs', 'cas', 'cass', 'cang', 'caj', 'cac',
+'cak', 'cat', 'cap', 'cah', 'cae', 'caeg', 'caegg', 'caegs', 'caen', 'caenj', 'caenh', 'caed', 'cael', 'caelg', 'caelm', 'caelb',
+'caels', 'caelt', 'caelp', 'caelh', 'caem', 'caeb', 'caebs', 'caes', 'caess', 'caeng', 'caej', 'caec', 'caek', 'caet', 'caep', 'caeh',
+'cya', 'cyag', 'cyagg', 'cyags', 'cyan', 'cyanj', 'cyanh', 'cyad', 'cyal', 'cyalg', 'cyalm', 'cyalb', 'cyals', 'cyalt', 'cyalp', 'cyalh',
+'cyam', 'cyab', 'cyabs', 'cyas', 'cyass', 'cyang', 'cyaj', 'cyac', 'cyak', 'cyat', 'cyap', 'cyah', 'cyae', 'cyaeg', 'cyaegg', 'cyaegs',
+'cyaen', 'cyaenj', 'cyaenh', 'cyaed', 'cyael', 'cyaelg', 'cyaelm', 'cyaelb', 'cyaels', 'cyaelt', 'cyaelp', 'cyaelh', 'cyaem', 'cyaeb', 'cyaebs', 'cyaes',
+'cyaess', 'cyaeng', 'cyaej', 'cyaec', 'cyaek', 'cyaet', 'cyaep', 'cyaeh', 'ceo', 'ceog', 'ceogg', 'ceogs', 'ceon', 'ceonj', 'ceonh', 'ceod',
+'ceol', 'ceolg', 'ceolm', 'ceolb', 'ceols', 'ceolt', 'ceolp', 'ceolh', 'ceom', 'ceob', 'ceobs', 'ceos', 'ceoss', 'ceong', 'ceoj', 'ceoc',
+'ceok', 'ceot', 'ceop', 'ceoh', 'ce', 'ceg', 'cegg', 'cegs', 'cen', 'cenj', 'cenh', 'ced', 'cel', 'celg', 'celm', 'celb',
+'cels', 'celt', 'celp', 'celh', 'cem', 'ceb', 'cebs', 'ces', 'cess', 'ceng', 'cej', 'cec', 'cek', 'cet', 'cep', 'ceh',
+'cyeo', 'cyeog', 'cyeogg', 'cyeogs', 'cyeon', 'cyeonj', 'cyeonh', 'cyeod', 'cyeol', 'cyeolg', 'cyeolm', 'cyeolb', 'cyeols', 'cyeolt', 'cyeolp', 'cyeolh',
+'cyeom', 'cyeob', 'cyeobs', 'cyeos', 'cyeoss', 'cyeong', 'cyeoj', 'cyeoc', 'cyeok', 'cyeot', 'cyeop', 'cyeoh', 'cye', 'cyeg', 'cyegg', 'cyegs',
+'cyen', 'cyenj', 'cyenh', 'cyed', 'cyel', 'cyelg', 'cyelm', 'cyelb', 'cyels', 'cyelt', 'cyelp', 'cyelh', 'cyem', 'cyeb', 'cyebs', 'cyes',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcd.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcd.pm
new file mode 100644
index 0000000..4ee2964
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcd.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xcd] = [
+'cyess', 'cyeng', 'cyej', 'cyec', 'cyek', 'cyet', 'cyep', 'cyeh', 'co', 'cog', 'cogg', 'cogs', 'con', 'conj', 'conh', 'cod',
+'col', 'colg', 'colm', 'colb', 'cols', 'colt', 'colp', 'colh', 'com', 'cob', 'cobs', 'cos', 'coss', 'cong', 'coj', 'coc',
+'cok', 'cot', 'cop', 'coh', 'cwa', 'cwag', 'cwagg', 'cwags', 'cwan', 'cwanj', 'cwanh', 'cwad', 'cwal', 'cwalg', 'cwalm', 'cwalb',
+'cwals', 'cwalt', 'cwalp', 'cwalh', 'cwam', 'cwab', 'cwabs', 'cwas', 'cwass', 'cwang', 'cwaj', 'cwac', 'cwak', 'cwat', 'cwap', 'cwah',
+'cwae', 'cwaeg', 'cwaegg', 'cwaegs', 'cwaen', 'cwaenj', 'cwaenh', 'cwaed', 'cwael', 'cwaelg', 'cwaelm', 'cwaelb', 'cwaels', 'cwaelt', 'cwaelp', 'cwaelh',
+'cwaem', 'cwaeb', 'cwaebs', 'cwaes', 'cwaess', 'cwaeng', 'cwaej', 'cwaec', 'cwaek', 'cwaet', 'cwaep', 'cwaeh', 'coe', 'coeg', 'coegg', 'coegs',
+'coen', 'coenj', 'coenh', 'coed', 'coel', 'coelg', 'coelm', 'coelb', 'coels', 'coelt', 'coelp', 'coelh', 'coem', 'coeb', 'coebs', 'coes',
+'coess', 'coeng', 'coej', 'coec', 'coek', 'coet', 'coep', 'coeh', 'cyo', 'cyog', 'cyogg', 'cyogs', 'cyon', 'cyonj', 'cyonh', 'cyod',
+'cyol', 'cyolg', 'cyolm', 'cyolb', 'cyols', 'cyolt', 'cyolp', 'cyolh', 'cyom', 'cyob', 'cyobs', 'cyos', 'cyoss', 'cyong', 'cyoj', 'cyoc',
+'cyok', 'cyot', 'cyop', 'cyoh', 'cu', 'cug', 'cugg', 'cugs', 'cun', 'cunj', 'cunh', 'cud', 'cul', 'culg', 'culm', 'culb',
+'culs', 'cult', 'culp', 'culh', 'cum', 'cub', 'cubs', 'cus', 'cuss', 'cung', 'cuj', 'cuc', 'cuk', 'cut', 'cup', 'cuh',
+'cweo', 'cweog', 'cweogg', 'cweogs', 'cweon', 'cweonj', 'cweonh', 'cweod', 'cweol', 'cweolg', 'cweolm', 'cweolb', 'cweols', 'cweolt', 'cweolp', 'cweolh',
+'cweom', 'cweob', 'cweobs', 'cweos', 'cweoss', 'cweong', 'cweoj', 'cweoc', 'cweok', 'cweot', 'cweop', 'cweoh', 'cwe', 'cweg', 'cwegg', 'cwegs',
+'cwen', 'cwenj', 'cwenh', 'cwed', 'cwel', 'cwelg', 'cwelm', 'cwelb', 'cwels', 'cwelt', 'cwelp', 'cwelh', 'cwem', 'cweb', 'cwebs', 'cwes',
+'cwess', 'cweng', 'cwej', 'cwec', 'cwek', 'cwet', 'cwep', 'cweh', 'cwi', 'cwig', 'cwigg', 'cwigs', 'cwin', 'cwinj', 'cwinh', 'cwid',
+'cwil', 'cwilg', 'cwilm', 'cwilb', 'cwils', 'cwilt', 'cwilp', 'cwilh', 'cwim', 'cwib', 'cwibs', 'cwis', 'cwiss', 'cwing', 'cwij', 'cwic',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xce.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xce.pm
new file mode 100644
index 0000000..203876a
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xce.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xce] = [
+'cwik', 'cwit', 'cwip', 'cwih', 'cyu', 'cyug', 'cyugg', 'cyugs', 'cyun', 'cyunj', 'cyunh', 'cyud', 'cyul', 'cyulg', 'cyulm', 'cyulb',
+'cyuls', 'cyult', 'cyulp', 'cyulh', 'cyum', 'cyub', 'cyubs', 'cyus', 'cyuss', 'cyung', 'cyuj', 'cyuc', 'cyuk', 'cyut', 'cyup', 'cyuh',
+'ceu', 'ceug', 'ceugg', 'ceugs', 'ceun', 'ceunj', 'ceunh', 'ceud', 'ceul', 'ceulg', 'ceulm', 'ceulb', 'ceuls', 'ceult', 'ceulp', 'ceulh',
+'ceum', 'ceub', 'ceubs', 'ceus', 'ceuss', 'ceung', 'ceuj', 'ceuc', 'ceuk', 'ceut', 'ceup', 'ceuh', 'cyi', 'cyig', 'cyigg', 'cyigs',
+'cyin', 'cyinj', 'cyinh', 'cyid', 'cyil', 'cyilg', 'cyilm', 'cyilb', 'cyils', 'cyilt', 'cyilp', 'cyilh', 'cyim', 'cyib', 'cyibs', 'cyis',
+'cyiss', 'cying', 'cyij', 'cyic', 'cyik', 'cyit', 'cyip', 'cyih', 'ci', 'cig', 'cigg', 'cigs', 'cin', 'cinj', 'cinh', 'cid',
+'cil', 'cilg', 'cilm', 'cilb', 'cils', 'cilt', 'cilp', 'cilh', 'cim', 'cib', 'cibs', 'cis', 'ciss', 'cing', 'cij', 'cic',
+'cik', 'cit', 'cip', 'cih', 'ka', 'kag', 'kagg', 'kags', 'kan', 'kanj', 'kanh', 'kad', 'kal', 'kalg', 'kalm', 'kalb',
+'kals', 'kalt', 'kalp', 'kalh', 'kam', 'kab', 'kabs', 'kas', 'kass', 'kang', 'kaj', 'kac', 'kak', 'kat', 'kap', 'kah',
+'kae', 'kaeg', 'kaegg', 'kaegs', 'kaen', 'kaenj', 'kaenh', 'kaed', 'kael', 'kaelg', 'kaelm', 'kaelb', 'kaels', 'kaelt', 'kaelp', 'kaelh',
+'kaem', 'kaeb', 'kaebs', 'kaes', 'kaess', 'kaeng', 'kaej', 'kaec', 'kaek', 'kaet', 'kaep', 'kaeh', 'kya', 'kyag', 'kyagg', 'kyags',
+'kyan', 'kyanj', 'kyanh', 'kyad', 'kyal', 'kyalg', 'kyalm', 'kyalb', 'kyals', 'kyalt', 'kyalp', 'kyalh', 'kyam', 'kyab', 'kyabs', 'kyas',
+'kyass', 'kyang', 'kyaj', 'kyac', 'kyak', 'kyat', 'kyap', 'kyah', 'kyae', 'kyaeg', 'kyaegg', 'kyaegs', 'kyaen', 'kyaenj', 'kyaenh', 'kyaed',
+'kyael', 'kyaelg', 'kyaelm', 'kyaelb', 'kyaels', 'kyaelt', 'kyaelp', 'kyaelh', 'kyaem', 'kyaeb', 'kyaebs', 'kyaes', 'kyaess', 'kyaeng', 'kyaej', 'kyaec',
+'kyaek', 'kyaet', 'kyaep', 'kyaeh', 'keo', 'keog', 'keogg', 'keogs', 'keon', 'keonj', 'keonh', 'keod', 'keol', 'keolg', 'keolm', 'keolb',
+'keols', 'keolt', 'keolp', 'keolh', 'keom', 'keob', 'keobs', 'keos', 'keoss', 'keong', 'keoj', 'keoc', 'keok', 'keot', 'keop', 'keoh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcf.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcf.pm
new file mode 100644
index 0000000..f0e63ec
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xcf.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xcf] = [
+'ke', 'keg', 'kegg', 'kegs', 'ken', 'kenj', 'kenh', 'ked', 'kel', 'kelg', 'kelm', 'kelb', 'kels', 'kelt', 'kelp', 'kelh',
+'kem', 'keb', 'kebs', 'kes', 'kess', 'keng', 'kej', 'kec', 'kek', 'ket', 'kep', 'keh', 'kyeo', 'kyeog', 'kyeogg', 'kyeogs',
+'kyeon', 'kyeonj', 'kyeonh', 'kyeod', 'kyeol', 'kyeolg', 'kyeolm', 'kyeolb', 'kyeols', 'kyeolt', 'kyeolp', 'kyeolh', 'kyeom', 'kyeob', 'kyeobs', 'kyeos',
+'kyeoss', 'kyeong', 'kyeoj', 'kyeoc', 'kyeok', 'kyeot', 'kyeop', 'kyeoh', 'kye', 'kyeg', 'kyegg', 'kyegs', 'kyen', 'kyenj', 'kyenh', 'kyed',
+'kyel', 'kyelg', 'kyelm', 'kyelb', 'kyels', 'kyelt', 'kyelp', 'kyelh', 'kyem', 'kyeb', 'kyebs', 'kyes', 'kyess', 'kyeng', 'kyej', 'kyec',
+'kyek', 'kyet', 'kyep', 'kyeh', 'ko', 'kog', 'kogg', 'kogs', 'kon', 'konj', 'konh', 'kod', 'kol', 'kolg', 'kolm', 'kolb',
+'kols', 'kolt', 'kolp', 'kolh', 'kom', 'kob', 'kobs', 'kos', 'koss', 'kong', 'koj', 'koc', 'kok', 'kot', 'kop', 'koh',
+'kwa', 'kwag', 'kwagg', 'kwags', 'kwan', 'kwanj', 'kwanh', 'kwad', 'kwal', 'kwalg', 'kwalm', 'kwalb', 'kwals', 'kwalt', 'kwalp', 'kwalh',
+'kwam', 'kwab', 'kwabs', 'kwas', 'kwass', 'kwang', 'kwaj', 'kwac', 'kwak', 'kwat', 'kwap', 'kwah', 'kwae', 'kwaeg', 'kwaegg', 'kwaegs',
+'kwaen', 'kwaenj', 'kwaenh', 'kwaed', 'kwael', 'kwaelg', 'kwaelm', 'kwaelb', 'kwaels', 'kwaelt', 'kwaelp', 'kwaelh', 'kwaem', 'kwaeb', 'kwaebs', 'kwaes',
+'kwaess', 'kwaeng', 'kwaej', 'kwaec', 'kwaek', 'kwaet', 'kwaep', 'kwaeh', 'koe', 'koeg', 'koegg', 'koegs', 'koen', 'koenj', 'koenh', 'koed',
+'koel', 'koelg', 'koelm', 'koelb', 'koels', 'koelt', 'koelp', 'koelh', 'koem', 'koeb', 'koebs', 'koes', 'koess', 'koeng', 'koej', 'koec',
+'koek', 'koet', 'koep', 'koeh', 'kyo', 'kyog', 'kyogg', 'kyogs', 'kyon', 'kyonj', 'kyonh', 'kyod', 'kyol', 'kyolg', 'kyolm', 'kyolb',
+'kyols', 'kyolt', 'kyolp', 'kyolh', 'kyom', 'kyob', 'kyobs', 'kyos', 'kyoss', 'kyong', 'kyoj', 'kyoc', 'kyok', 'kyot', 'kyop', 'kyoh',
+'ku', 'kug', 'kugg', 'kugs', 'kun', 'kunj', 'kunh', 'kud', 'kul', 'kulg', 'kulm', 'kulb', 'kuls', 'kult', 'kulp', 'kulh',
+'kum', 'kub', 'kubs', 'kus', 'kuss', 'kung', 'kuj', 'kuc', 'kuk', 'kut', 'kup', 'kuh', 'kweo', 'kweog', 'kweogg', 'kweogs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd0.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd0.pm
new file mode 100644
index 0000000..b0c1c52
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd0.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd0] = [
+'kweon', 'kweonj', 'kweonh', 'kweod', 'kweol', 'kweolg', 'kweolm', 'kweolb', 'kweols', 'kweolt', 'kweolp', 'kweolh', 'kweom', 'kweob', 'kweobs', 'kweos',
+'kweoss', 'kweong', 'kweoj', 'kweoc', 'kweok', 'kweot', 'kweop', 'kweoh', 'kwe', 'kweg', 'kwegg', 'kwegs', 'kwen', 'kwenj', 'kwenh', 'kwed',
+'kwel', 'kwelg', 'kwelm', 'kwelb', 'kwels', 'kwelt', 'kwelp', 'kwelh', 'kwem', 'kweb', 'kwebs', 'kwes', 'kwess', 'kweng', 'kwej', 'kwec',
+'kwek', 'kwet', 'kwep', 'kweh', 'kwi', 'kwig', 'kwigg', 'kwigs', 'kwin', 'kwinj', 'kwinh', 'kwid', 'kwil', 'kwilg', 'kwilm', 'kwilb',
+'kwils', 'kwilt', 'kwilp', 'kwilh', 'kwim', 'kwib', 'kwibs', 'kwis', 'kwiss', 'kwing', 'kwij', 'kwic', 'kwik', 'kwit', 'kwip', 'kwih',
+'kyu', 'kyug', 'kyugg', 'kyugs', 'kyun', 'kyunj', 'kyunh', 'kyud', 'kyul', 'kyulg', 'kyulm', 'kyulb', 'kyuls', 'kyult', 'kyulp', 'kyulh',
+'kyum', 'kyub', 'kyubs', 'kyus', 'kyuss', 'kyung', 'kyuj', 'kyuc', 'kyuk', 'kyut', 'kyup', 'kyuh', 'keu', 'keug', 'keugg', 'keugs',
+'keun', 'keunj', 'keunh', 'keud', 'keul', 'keulg', 'keulm', 'keulb', 'keuls', 'keult', 'keulp', 'keulh', 'keum', 'keub', 'keubs', 'keus',
+'keuss', 'keung', 'keuj', 'keuc', 'keuk', 'keut', 'keup', 'keuh', 'kyi', 'kyig', 'kyigg', 'kyigs', 'kyin', 'kyinj', 'kyinh', 'kyid',
+'kyil', 'kyilg', 'kyilm', 'kyilb', 'kyils', 'kyilt', 'kyilp', 'kyilh', 'kyim', 'kyib', 'kyibs', 'kyis', 'kyiss', 'kying', 'kyij', 'kyic',
+'kyik', 'kyit', 'kyip', 'kyih', 'ki', 'kig', 'kigg', 'kigs', 'kin', 'kinj', 'kinh', 'kid', 'kil', 'kilg', 'kilm', 'kilb',
+'kils', 'kilt', 'kilp', 'kilh', 'kim', 'kib', 'kibs', 'kis', 'kiss', 'king', 'kij', 'kic', 'kik', 'kit', 'kip', 'kih',
+'ta', 'tag', 'tagg', 'tags', 'tan', 'tanj', 'tanh', 'tad', 'tal', 'talg', 'talm', 'talb', 'tals', 'talt', 'talp', 'talh',
+'tam', 'tab', 'tabs', 'tas', 'tass', 'tang', 'taj', 'tac', 'tak', 'tat', 'tap', 'tah', 'tae', 'taeg', 'taegg', 'taegs',
+'taen', 'taenj', 'taenh', 'taed', 'tael', 'taelg', 'taelm', 'taelb', 'taels', 'taelt', 'taelp', 'taelh', 'taem', 'taeb', 'taebs', 'taes',
+'taess', 'taeng', 'taej', 'taec', 'taek', 'taet', 'taep', 'taeh', 'tya', 'tyag', 'tyagg', 'tyags', 'tyan', 'tyanj', 'tyanh', 'tyad',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd1.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd1.pm
new file mode 100644
index 0000000..0722a86
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd1.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd1] = [
+'tyal', 'tyalg', 'tyalm', 'tyalb', 'tyals', 'tyalt', 'tyalp', 'tyalh', 'tyam', 'tyab', 'tyabs', 'tyas', 'tyass', 'tyang', 'tyaj', 'tyac',
+'tyak', 'tyat', 'tyap', 'tyah', 'tyae', 'tyaeg', 'tyaegg', 'tyaegs', 'tyaen', 'tyaenj', 'tyaenh', 'tyaed', 'tyael', 'tyaelg', 'tyaelm', 'tyaelb',
+'tyaels', 'tyaelt', 'tyaelp', 'tyaelh', 'tyaem', 'tyaeb', 'tyaebs', 'tyaes', 'tyaess', 'tyaeng', 'tyaej', 'tyaec', 'tyaek', 'tyaet', 'tyaep', 'tyaeh',
+'teo', 'teog', 'teogg', 'teogs', 'teon', 'teonj', 'teonh', 'teod', 'teol', 'teolg', 'teolm', 'teolb', 'teols', 'teolt', 'teolp', 'teolh',
+'teom', 'teob', 'teobs', 'teos', 'teoss', 'teong', 'teoj', 'teoc', 'teok', 'teot', 'teop', 'teoh', 'te', 'teg', 'tegg', 'tegs',
+'ten', 'tenj', 'tenh', 'ted', 'tel', 'telg', 'telm', 'telb', 'tels', 'telt', 'telp', 'telh', 'tem', 'teb', 'tebs', 'tes',
+'tess', 'teng', 'tej', 'tec', 'tek', 'tet', 'tep', 'teh', 'tyeo', 'tyeog', 'tyeogg', 'tyeogs', 'tyeon', 'tyeonj', 'tyeonh', 'tyeod',
+'tyeol', 'tyeolg', 'tyeolm', 'tyeolb', 'tyeols', 'tyeolt', 'tyeolp', 'tyeolh', 'tyeom', 'tyeob', 'tyeobs', 'tyeos', 'tyeoss', 'tyeong', 'tyeoj', 'tyeoc',
+'tyeok', 'tyeot', 'tyeop', 'tyeoh', 'tye', 'tyeg', 'tyegg', 'tyegs', 'tyen', 'tyenj', 'tyenh', 'tyed', 'tyel', 'tyelg', 'tyelm', 'tyelb',
+'tyels', 'tyelt', 'tyelp', 'tyelh', 'tyem', 'tyeb', 'tyebs', 'tyes', 'tyess', 'tyeng', 'tyej', 'tyec', 'tyek', 'tyet', 'tyep', 'tyeh',
+'to', 'tog', 'togg', 'togs', 'ton', 'tonj', 'tonh', 'tod', 'tol', 'tolg', 'tolm', 'tolb', 'tols', 'tolt', 'tolp', 'tolh',
+'tom', 'tob', 'tobs', 'tos', 'toss', 'tong', 'toj', 'toc', 'tok', 'tot', 'top', 'toh', 'twa', 'twag', 'twagg', 'twags',
+'twan', 'twanj', 'twanh', 'twad', 'twal', 'twalg', 'twalm', 'twalb', 'twals', 'twalt', 'twalp', 'twalh', 'twam', 'twab', 'twabs', 'twas',
+'twass', 'twang', 'twaj', 'twac', 'twak', 'twat', 'twap', 'twah', 'twae', 'twaeg', 'twaegg', 'twaegs', 'twaen', 'twaenj', 'twaenh', 'twaed',
+'twael', 'twaelg', 'twaelm', 'twaelb', 'twaels', 'twaelt', 'twaelp', 'twaelh', 'twaem', 'twaeb', 'twaebs', 'twaes', 'twaess', 'twaeng', 'twaej', 'twaec',
+'twaek', 'twaet', 'twaep', 'twaeh', 'toe', 'toeg', 'toegg', 'toegs', 'toen', 'toenj', 'toenh', 'toed', 'toel', 'toelg', 'toelm', 'toelb',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd2.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd2.pm
new file mode 100644
index 0000000..0ada54d
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd2.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd2] = [
+'toels', 'toelt', 'toelp', 'toelh', 'toem', 'toeb', 'toebs', 'toes', 'toess', 'toeng', 'toej', 'toec', 'toek', 'toet', 'toep', 'toeh',
+'tyo', 'tyog', 'tyogg', 'tyogs', 'tyon', 'tyonj', 'tyonh', 'tyod', 'tyol', 'tyolg', 'tyolm', 'tyolb', 'tyols', 'tyolt', 'tyolp', 'tyolh',
+'tyom', 'tyob', 'tyobs', 'tyos', 'tyoss', 'tyong', 'tyoj', 'tyoc', 'tyok', 'tyot', 'tyop', 'tyoh', 'tu', 'tug', 'tugg', 'tugs',
+'tun', 'tunj', 'tunh', 'tud', 'tul', 'tulg', 'tulm', 'tulb', 'tuls', 'tult', 'tulp', 'tulh', 'tum', 'tub', 'tubs', 'tus',
+'tuss', 'tung', 'tuj', 'tuc', 'tuk', 'tut', 'tup', 'tuh', 'tweo', 'tweog', 'tweogg', 'tweogs', 'tweon', 'tweonj', 'tweonh', 'tweod',
+'tweol', 'tweolg', 'tweolm', 'tweolb', 'tweols', 'tweolt', 'tweolp', 'tweolh', 'tweom', 'tweob', 'tweobs', 'tweos', 'tweoss', 'tweong', 'tweoj', 'tweoc',
+'tweok', 'tweot', 'tweop', 'tweoh', 'twe', 'tweg', 'twegg', 'twegs', 'twen', 'twenj', 'twenh', 'twed', 'twel', 'twelg', 'twelm', 'twelb',
+'twels', 'twelt', 'twelp', 'twelh', 'twem', 'tweb', 'twebs', 'twes', 'twess', 'tweng', 'twej', 'twec', 'twek', 'twet', 'twep', 'tweh',
+'twi', 'twig', 'twigg', 'twigs', 'twin', 'twinj', 'twinh', 'twid', 'twil', 'twilg', 'twilm', 'twilb', 'twils', 'twilt', 'twilp', 'twilh',
+'twim', 'twib', 'twibs', 'twis', 'twiss', 'twing', 'twij', 'twic', 'twik', 'twit', 'twip', 'twih', 'tyu', 'tyug', 'tyugg', 'tyugs',
+'tyun', 'tyunj', 'tyunh', 'tyud', 'tyul', 'tyulg', 'tyulm', 'tyulb', 'tyuls', 'tyult', 'tyulp', 'tyulh', 'tyum', 'tyub', 'tyubs', 'tyus',
+'tyuss', 'tyung', 'tyuj', 'tyuc', 'tyuk', 'tyut', 'tyup', 'tyuh', 'teu', 'teug', 'teugg', 'teugs', 'teun', 'teunj', 'teunh', 'teud',
+'teul', 'teulg', 'teulm', 'teulb', 'teuls', 'teult', 'teulp', 'teulh', 'teum', 'teub', 'teubs', 'teus', 'teuss', 'teung', 'teuj', 'teuc',
+'teuk', 'teut', 'teup', 'teuh', 'tyi', 'tyig', 'tyigg', 'tyigs', 'tyin', 'tyinj', 'tyinh', 'tyid', 'tyil', 'tyilg', 'tyilm', 'tyilb',
+'tyils', 'tyilt', 'tyilp', 'tyilh', 'tyim', 'tyib', 'tyibs', 'tyis', 'tyiss', 'tying', 'tyij', 'tyic', 'tyik', 'tyit', 'tyip', 'tyih',
+'ti', 'tig', 'tigg', 'tigs', 'tin', 'tinj', 'tinh', 'tid', 'til', 'tilg', 'tilm', 'tilb', 'tils', 'tilt', 'tilp', 'tilh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd3.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd3.pm
new file mode 100644
index 0000000..3cd8bb8
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd3.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd3] = [
+'tim', 'tib', 'tibs', 'tis', 'tiss', 'ting', 'tij', 'tic', 'tik', 'tit', 'tip', 'tih', 'pa', 'pag', 'pagg', 'pags',
+'pan', 'panj', 'panh', 'pad', 'pal', 'palg', 'palm', 'palb', 'pals', 'palt', 'palp', 'palh', 'pam', 'pab', 'pabs', 'pas',
+'pass', 'pang', 'paj', 'pac', 'pak', 'pat', 'pap', 'pah', 'pae', 'paeg', 'paegg', 'paegs', 'paen', 'paenj', 'paenh', 'paed',
+'pael', 'paelg', 'paelm', 'paelb', 'paels', 'paelt', 'paelp', 'paelh', 'paem', 'paeb', 'paebs', 'paes', 'paess', 'paeng', 'paej', 'paec',
+'paek', 'paet', 'paep', 'paeh', 'pya', 'pyag', 'pyagg', 'pyags', 'pyan', 'pyanj', 'pyanh', 'pyad', 'pyal', 'pyalg', 'pyalm', 'pyalb',
+'pyals', 'pyalt', 'pyalp', 'pyalh', 'pyam', 'pyab', 'pyabs', 'pyas', 'pyass', 'pyang', 'pyaj', 'pyac', 'pyak', 'pyat', 'pyap', 'pyah',
+'pyae', 'pyaeg', 'pyaegg', 'pyaegs', 'pyaen', 'pyaenj', 'pyaenh', 'pyaed', 'pyael', 'pyaelg', 'pyaelm', 'pyaelb', 'pyaels', 'pyaelt', 'pyaelp', 'pyaelh',
+'pyaem', 'pyaeb', 'pyaebs', 'pyaes', 'pyaess', 'pyaeng', 'pyaej', 'pyaec', 'pyaek', 'pyaet', 'pyaep', 'pyaeh', 'peo', 'peog', 'peogg', 'peogs',
+'peon', 'peonj', 'peonh', 'peod', 'peol', 'peolg', 'peolm', 'peolb', 'peols', 'peolt', 'peolp', 'peolh', 'peom', 'peob', 'peobs', 'peos',
+'peoss', 'peong', 'peoj', 'peoc', 'peok', 'peot', 'peop', 'peoh', 'pe', 'peg', 'pegg', 'pegs', 'pen', 'penj', 'penh', 'ped',
+'pel', 'pelg', 'pelm', 'pelb', 'pels', 'pelt', 'pelp', 'pelh', 'pem', 'peb', 'pebs', 'pes', 'pess', 'peng', 'pej', 'pec',
+'pek', 'pet', 'pep', 'peh', 'pyeo', 'pyeog', 'pyeogg', 'pyeogs', 'pyeon', 'pyeonj', 'pyeonh', 'pyeod', 'pyeol', 'pyeolg', 'pyeolm', 'pyeolb',
+'pyeols', 'pyeolt', 'pyeolp', 'pyeolh', 'pyeom', 'pyeob', 'pyeobs', 'pyeos', 'pyeoss', 'pyeong', 'pyeoj', 'pyeoc', 'pyeok', 'pyeot', 'pyeop', 'pyeoh',
+'pye', 'pyeg', 'pyegg', 'pyegs', 'pyen', 'pyenj', 'pyenh', 'pyed', 'pyel', 'pyelg', 'pyelm', 'pyelb', 'pyels', 'pyelt', 'pyelp', 'pyelh',
+'pyem', 'pyeb', 'pyebs', 'pyes', 'pyess', 'pyeng', 'pyej', 'pyec', 'pyek', 'pyet', 'pyep', 'pyeh', 'po', 'pog', 'pogg', 'pogs',
+'pon', 'ponj', 'ponh', 'pod', 'pol', 'polg', 'polm', 'polb', 'pols', 'polt', 'polp', 'polh', 'pom', 'pob', 'pobs', 'pos',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd4.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd4.pm
new file mode 100644
index 0000000..48cb0c6
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd4.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:42 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd4] = [
+'poss', 'pong', 'poj', 'poc', 'pok', 'pot', 'pop', 'poh', 'pwa', 'pwag', 'pwagg', 'pwags', 'pwan', 'pwanj', 'pwanh', 'pwad',
+'pwal', 'pwalg', 'pwalm', 'pwalb', 'pwals', 'pwalt', 'pwalp', 'pwalh', 'pwam', 'pwab', 'pwabs', 'pwas', 'pwass', 'pwang', 'pwaj', 'pwac',
+'pwak', 'pwat', 'pwap', 'pwah', 'pwae', 'pwaeg', 'pwaegg', 'pwaegs', 'pwaen', 'pwaenj', 'pwaenh', 'pwaed', 'pwael', 'pwaelg', 'pwaelm', 'pwaelb',
+'pwaels', 'pwaelt', 'pwaelp', 'pwaelh', 'pwaem', 'pwaeb', 'pwaebs', 'pwaes', 'pwaess', 'pwaeng', 'pwaej', 'pwaec', 'pwaek', 'pwaet', 'pwaep', 'pwaeh',
+'poe', 'poeg', 'poegg', 'poegs', 'poen', 'poenj', 'poenh', 'poed', 'poel', 'poelg', 'poelm', 'poelb', 'poels', 'poelt', 'poelp', 'poelh',
+'poem', 'poeb', 'poebs', 'poes', 'poess', 'poeng', 'poej', 'poec', 'poek', 'poet', 'poep', 'poeh', 'pyo', 'pyog', 'pyogg', 'pyogs',
+'pyon', 'pyonj', 'pyonh', 'pyod', 'pyol', 'pyolg', 'pyolm', 'pyolb', 'pyols', 'pyolt', 'pyolp', 'pyolh', 'pyom', 'pyob', 'pyobs', 'pyos',
+'pyoss', 'pyong', 'pyoj', 'pyoc', 'pyok', 'pyot', 'pyop', 'pyoh', 'pu', 'pug', 'pugg', 'pugs', 'pun', 'punj', 'punh', 'pud',
+'pul', 'pulg', 'pulm', 'pulb', 'puls', 'pult', 'pulp', 'pulh', 'pum', 'pub', 'pubs', 'pus', 'puss', 'pung', 'puj', 'puc',
+'puk', 'put', 'pup', 'puh', 'pweo', 'pweog', 'pweogg', 'pweogs', 'pweon', 'pweonj', 'pweonh', 'pweod', 'pweol', 'pweolg', 'pweolm', 'pweolb',
+'pweols', 'pweolt', 'pweolp', 'pweolh', 'pweom', 'pweob', 'pweobs', 'pweos', 'pweoss', 'pweong', 'pweoj', 'pweoc', 'pweok', 'pweot', 'pweop', 'pweoh',
+'pwe', 'pweg', 'pwegg', 'pwegs', 'pwen', 'pwenj', 'pwenh', 'pwed', 'pwel', 'pwelg', 'pwelm', 'pwelb', 'pwels', 'pwelt', 'pwelp', 'pwelh',
+'pwem', 'pweb', 'pwebs', 'pwes', 'pwess', 'pweng', 'pwej', 'pwec', 'pwek', 'pwet', 'pwep', 'pweh', 'pwi', 'pwig', 'pwigg', 'pwigs',
+'pwin', 'pwinj', 'pwinh', 'pwid', 'pwil', 'pwilg', 'pwilm', 'pwilb', 'pwils', 'pwilt', 'pwilp', 'pwilh', 'pwim', 'pwib', 'pwibs', 'pwis',
+'pwiss', 'pwing', 'pwij', 'pwic', 'pwik', 'pwit', 'pwip', 'pwih', 'pyu', 'pyug', 'pyugg', 'pyugs', 'pyun', 'pyunj', 'pyunh', 'pyud',
+'pyul', 'pyulg', 'pyulm', 'pyulb', 'pyuls', 'pyult', 'pyulp', 'pyulh', 'pyum', 'pyub', 'pyubs', 'pyus', 'pyuss', 'pyung', 'pyuj', 'pyuc',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd5.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd5.pm
new file mode 100644
index 0000000..f9f2eee
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd5.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd5] = [
+'pyuk', 'pyut', 'pyup', 'pyuh', 'peu', 'peug', 'peugg', 'peugs', 'peun', 'peunj', 'peunh', 'peud', 'peul', 'peulg', 'peulm', 'peulb',
+'peuls', 'peult', 'peulp', 'peulh', 'peum', 'peub', 'peubs', 'peus', 'peuss', 'peung', 'peuj', 'peuc', 'peuk', 'peut', 'peup', 'peuh',
+'pyi', 'pyig', 'pyigg', 'pyigs', 'pyin', 'pyinj', 'pyinh', 'pyid', 'pyil', 'pyilg', 'pyilm', 'pyilb', 'pyils', 'pyilt', 'pyilp', 'pyilh',
+'pyim', 'pyib', 'pyibs', 'pyis', 'pyiss', 'pying', 'pyij', 'pyic', 'pyik', 'pyit', 'pyip', 'pyih', 'pi', 'pig', 'pigg', 'pigs',
+'pin', 'pinj', 'pinh', 'pid', 'pil', 'pilg', 'pilm', 'pilb', 'pils', 'pilt', 'pilp', 'pilh', 'pim', 'pib', 'pibs', 'pis',
+'piss', 'ping', 'pij', 'pic', 'pik', 'pit', 'pip', 'pih', 'ha', 'hag', 'hagg', 'hags', 'han', 'hanj', 'hanh', 'had',
+'hal', 'halg', 'halm', 'halb', 'hals', 'halt', 'halp', 'halh', 'ham', 'hab', 'habs', 'has', 'hass', 'hang', 'haj', 'hac',
+'hak', 'hat', 'hap', 'hah', 'hae', 'haeg', 'haegg', 'haegs', 'haen', 'haenj', 'haenh', 'haed', 'hael', 'haelg', 'haelm', 'haelb',
+'haels', 'haelt', 'haelp', 'haelh', 'haem', 'haeb', 'haebs', 'haes', 'haess', 'haeng', 'haej', 'haec', 'haek', 'haet', 'haep', 'haeh',
+'hya', 'hyag', 'hyagg', 'hyags', 'hyan', 'hyanj', 'hyanh', 'hyad', 'hyal', 'hyalg', 'hyalm', 'hyalb', 'hyals', 'hyalt', 'hyalp', 'hyalh',
+'hyam', 'hyab', 'hyabs', 'hyas', 'hyass', 'hyang', 'hyaj', 'hyac', 'hyak', 'hyat', 'hyap', 'hyah', 'hyae', 'hyaeg', 'hyaegg', 'hyaegs',
+'hyaen', 'hyaenj', 'hyaenh', 'hyaed', 'hyael', 'hyaelg', 'hyaelm', 'hyaelb', 'hyaels', 'hyaelt', 'hyaelp', 'hyaelh', 'hyaem', 'hyaeb', 'hyaebs', 'hyaes',
+'hyaess', 'hyaeng', 'hyaej', 'hyaec', 'hyaek', 'hyaet', 'hyaep', 'hyaeh', 'heo', 'heog', 'heogg', 'heogs', 'heon', 'heonj', 'heonh', 'heod',
+'heol', 'heolg', 'heolm', 'heolb', 'heols', 'heolt', 'heolp', 'heolh', 'heom', 'heob', 'heobs', 'heos', 'heoss', 'heong', 'heoj', 'heoc',
+'heok', 'heot', 'heop', 'heoh', 'he', 'heg', 'hegg', 'hegs', 'hen', 'henj', 'henh', 'hed', 'hel', 'helg', 'helm', 'helb',
+'hels', 'helt', 'help', 'helh', 'hem', 'heb', 'hebs', 'hes', 'hess', 'heng', 'hej', 'hec', 'hek', 'het', 'hep', 'heh',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd6.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd6.pm
new file mode 100644
index 0000000..dea3cce
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd6.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd6] = [
+'hyeo', 'hyeog', 'hyeogg', 'hyeogs', 'hyeon', 'hyeonj', 'hyeonh', 'hyeod', 'hyeol', 'hyeolg', 'hyeolm', 'hyeolb', 'hyeols', 'hyeolt', 'hyeolp', 'hyeolh',
+'hyeom', 'hyeob', 'hyeobs', 'hyeos', 'hyeoss', 'hyeong', 'hyeoj', 'hyeoc', 'hyeok', 'hyeot', 'hyeop', 'hyeoh', 'hye', 'hyeg', 'hyegg', 'hyegs',
+'hyen', 'hyenj', 'hyenh', 'hyed', 'hyel', 'hyelg', 'hyelm', 'hyelb', 'hyels', 'hyelt', 'hyelp', 'hyelh', 'hyem', 'hyeb', 'hyebs', 'hyes',
+'hyess', 'hyeng', 'hyej', 'hyec', 'hyek', 'hyet', 'hyep', 'hyeh', 'ho', 'hog', 'hogg', 'hogs', 'hon', 'honj', 'honh', 'hod',
+'hol', 'holg', 'holm', 'holb', 'hols', 'holt', 'holp', 'holh', 'hom', 'hob', 'hobs', 'hos', 'hoss', 'hong', 'hoj', 'hoc',
+'hok', 'hot', 'hop', 'hoh', 'hwa', 'hwag', 'hwagg', 'hwags', 'hwan', 'hwanj', 'hwanh', 'hwad', 'hwal', 'hwalg', 'hwalm', 'hwalb',
+'hwals', 'hwalt', 'hwalp', 'hwalh', 'hwam', 'hwab', 'hwabs', 'hwas', 'hwass', 'hwang', 'hwaj', 'hwac', 'hwak', 'hwat', 'hwap', 'hwah',
+'hwae', 'hwaeg', 'hwaegg', 'hwaegs', 'hwaen', 'hwaenj', 'hwaenh', 'hwaed', 'hwael', 'hwaelg', 'hwaelm', 'hwaelb', 'hwaels', 'hwaelt', 'hwaelp', 'hwaelh',
+'hwaem', 'hwaeb', 'hwaebs', 'hwaes', 'hwaess', 'hwaeng', 'hwaej', 'hwaec', 'hwaek', 'hwaet', 'hwaep', 'hwaeh', 'hoe', 'hoeg', 'hoegg', 'hoegs',
+'hoen', 'hoenj', 'hoenh', 'hoed', 'hoel', 'hoelg', 'hoelm', 'hoelb', 'hoels', 'hoelt', 'hoelp', 'hoelh', 'hoem', 'hoeb', 'hoebs', 'hoes',
+'hoess', 'hoeng', 'hoej', 'hoec', 'hoek', 'hoet', 'hoep', 'hoeh', 'hyo', 'hyog', 'hyogg', 'hyogs', 'hyon', 'hyonj', 'hyonh', 'hyod',
+'hyol', 'hyolg', 'hyolm', 'hyolb', 'hyols', 'hyolt', 'hyolp', 'hyolh', 'hyom', 'hyob', 'hyobs', 'hyos', 'hyoss', 'hyong', 'hyoj', 'hyoc',
+'hyok', 'hyot', 'hyop', 'hyoh', 'hu', 'hug', 'hugg', 'hugs', 'hun', 'hunj', 'hunh', 'hud', 'hul', 'hulg', 'hulm', 'hulb',
+'huls', 'hult', 'hulp', 'hulh', 'hum', 'hub', 'hubs', 'hus', 'huss', 'hung', 'huj', 'huc', 'huk', 'hut', 'hup', 'huh',
+'hweo', 'hweog', 'hweogg', 'hweogs', 'hweon', 'hweonj', 'hweonh', 'hweod', 'hweol', 'hweolg', 'hweolm', 'hweolb', 'hweols', 'hweolt', 'hweolp', 'hweolh',
+'hweom', 'hweob', 'hweobs', 'hweos', 'hweoss', 'hweong', 'hweoj', 'hweoc', 'hweok', 'hweot', 'hweop', 'hweoh', 'hwe', 'hweg', 'hwegg', 'hwegs',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd7.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd7.pm
new file mode 100644
index 0000000..bfbd166
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xd7.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xd7] = [
+'hwen', 'hwenj', 'hwenh', 'hwed', 'hwel', 'hwelg', 'hwelm', 'hwelb', 'hwels', 'hwelt', 'hwelp', 'hwelh', 'hwem', 'hweb', 'hwebs', 'hwes',
+'hwess', 'hweng', 'hwej', 'hwec', 'hwek', 'hwet', 'hwep', 'hweh', 'hwi', 'hwig', 'hwigg', 'hwigs', 'hwin', 'hwinj', 'hwinh', 'hwid',
+'hwil', 'hwilg', 'hwilm', 'hwilb', 'hwils', 'hwilt', 'hwilp', 'hwilh', 'hwim', 'hwib', 'hwibs', 'hwis', 'hwiss', 'hwing', 'hwij', 'hwic',
+'hwik', 'hwit', 'hwip', 'hwih', 'hyu', 'hyug', 'hyugg', 'hyugs', 'hyun', 'hyunj', 'hyunh', 'hyud', 'hyul', 'hyulg', 'hyulm', 'hyulb',
+'hyuls', 'hyult', 'hyulp', 'hyulh', 'hyum', 'hyub', 'hyubs', 'hyus', 'hyuss', 'hyung', 'hyuj', 'hyuc', 'hyuk', 'hyut', 'hyup', 'hyuh',
+'heu', 'heug', 'heugg', 'heugs', 'heun', 'heunj', 'heunh', 'heud', 'heul', 'heulg', 'heulm', 'heulb', 'heuls', 'heult', 'heulp', 'heulh',
+'heum', 'heub', 'heubs', 'heus', 'heuss', 'heung', 'heuj', 'heuc', 'heuk', 'heut', 'heup', 'heuh', 'hyi', 'hyig', 'hyigg', 'hyigs',
+'hyin', 'hyinj', 'hyinh', 'hyid', 'hyil', 'hyilg', 'hyilm', 'hyilb', 'hyils', 'hyilt', 'hyilp', 'hyilh', 'hyim', 'hyib', 'hyibs', 'hyis',
+'hyiss', 'hying', 'hyij', 'hyic', 'hyik', 'hyit', 'hyip', 'hyih', 'hi', 'hig', 'higg', 'higs', 'hin', 'hinj', 'hinh', 'hid',
+'hil', 'hilg', 'hilm', 'hilb', 'hils', 'hilt', 'hilp', 'hilh', 'him', 'hib', 'hibs', 'his', 'hiss', 'hing', 'hij', 'hic',
+'hik', 'hit', 'hip', 'hih', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xf9.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xf9.pm
new file mode 100644
index 0000000..d6bb20b
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xf9.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xf9] = [
+'Kay ', 'Kayng ', 'Ke ', 'Ko ', 'Kol ', 'Koc ', 'Kwi ', 'Kwi ', 'Kyun ', 'Kul ', 'Kum ', 'Na ', 'Na ', 'Na ', 'La ', 'Na ',
+'Na ', 'Na ', 'Na ', 'Na ', 'Nak ', 'Nak ', 'Nak ', 'Nak ', 'Nak ', 'Nak ', 'Nak ', 'Nan ', 'Nan ', 'Nan ', 'Nan ', 'Nan ',
+'Nan ', 'Nam ', 'Nam ', 'Nam ', 'Nam ', 'Nap ', 'Nap ', 'Nap ', 'Nang ', 'Nang ', 'Nang ', 'Nang ', 'Nang ', 'Nay ', 'Nayng ', 'No ',
+'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'No ', 'Nok ', 'Nok ', 'Nok ', 'Nok ', 'Nok ',
+'Nok ', 'Non ', 'Nong ', 'Nong ', 'Nong ', 'Nong ', 'Noy ', 'Noy ', 'Noy ', 'Noy ', 'Nwu ', 'Nwu ', 'Nwu ', 'Nwu ', 'Nwu ', 'Nwu ',
+'Nwu ', 'Nwu ', 'Nuk ', 'Nuk ', 'Num ', 'Nung ', 'Nung ', 'Nung ', 'Nung ', 'Nung ', 'Twu ', 'La ', 'Lak ', 'Lak ', 'Lan ', 'Lyeng ',
+'Lo ', 'Lyul ', 'Li ', 'Pey ', 'Pen ', 'Pyen ', 'Pwu ', 'Pwul ', 'Pi ', 'Sak ', 'Sak ', 'Sam ', 'Sayk ', 'Sayng ', 'Sep ', 'Sey ',
+'Sway ', 'Sin ', 'Sim ', 'Sip ', 'Ya ', 'Yak ', 'Yak ', 'Yang ', 'Yang ', 'Yang ', 'Yang ', 'Yang ', 'Yang ', 'Yang ', 'Yang ', 'Ye ',
+'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Ye ', 'Yek ', 'Yek ', 'Yek ', 'Yek ', 'Yen ', 'Yen ',
+'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yen ', 'Yel ', 'Yel ', 'Yel ', 'Yel ',
+'Yel ', 'Yel ', 'Yem ', 'Yem ', 'Yem ', 'Yem ', 'Yem ', 'Yep ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ',
+'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yeng ', 'Yey ', 'Yey ', 'Yey ', 'Yey ', 'O ', 'Yo ', 'Yo ', 'Yo ', 'Yo ', 'Yo ', 'Yo ',
+'Yo ', 'Yo ', 'Yo ', 'Yo ', 'Yong ', 'Wun ', 'Wen ', 'Yu ', 'Yu ', 'Yu ', 'Yu ', 'Yu ', 'Yu ', 'Yu ', 'Yu ', 'Yu ',
+'Yu ', 'Yuk ', 'Yuk ', 'Yuk ', 'Yun ', 'Yun ', 'Yun ', 'Yun ', 'Yul ', 'Yul ', 'Yul ', 'Yul ', 'Yung ', 'I ', 'I ', 'I ',
+'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'I ', 'Ik ', 'Ik ', 'In ', 'In ', 'In ',
+'In ', 'In ', 'In ', 'In ', 'Im ', 'Im ', 'Im ', 'Ip ', 'Ip ', 'Ip ', 'Cang ', 'Cek ', 'Ci ', 'Cip ', 'Cha ', 'Chek ',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfa.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfa.pm
new file mode 100644
index 0000000..59e48f2
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfa.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xfa] = [
+'Chey ', 'Thak ', 'Thak ', 'Thang ', 'Thayk ', 'Thong ', 'Pho ', 'Phok ', 'Hang ', 'Hang ', 'Hyen ', 'Hwak ', 'Wu ', 'Huo ', qq{[?] }, qq{[?] },
+'Zhong ', qq{[?] }, 'Qing ', qq{[?] }, qq{[?] }, 'Xi ', 'Zhu ', 'Yi ', 'Li ', 'Shen ', 'Xiang ', 'Fu ', 'Jing ', 'Jing ', 'Yu ', qq{[?] },
+'Hagi ', qq{[?] }, 'Zhu ', qq{[?] }, qq{[?] }, 'Yi ', 'Du ', qq{[?] }, qq{[?] }, qq{[?] }, 'Fan ', 'Si ', 'Guan ', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfb.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfb.pm
new file mode 100644
index 0000000..6c31575
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfb.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xfb] = [
+'ff', 'fi', 'fl', 'ffi', 'ffl', 'st', 'st', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', 'mn', 'me', 'mi', 'vn', 'mkh', '[?]', '[?]', '[?]', '[?]', '[?]', 'yi', "", 'ay',
+qq{`}, "", 'd', 'h', 'k', 'l', 'm', 'm', 't', qq{+}, 'sh', 's', 'sh', 's', 'a', 'a',
+"", 'b', 'g', 'd', 'h', 'v', 'z', '[?]', 't', 'y', 'k', 'k', 'l', '[?]', 'l', '[?]',
+'n', 'n', '[?]', 'p', 'p', '[?]', 'ts', 'ts', 'r', 'sh', 't', 'vo', 'b', 'k', 'p', 'l',
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfc.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfc.pm
new file mode 100644
index 0000000..df98358
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfc.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xfc] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfd.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfd.pm
new file mode 100644
index 0000000..e0d0c01
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfd.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:43 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xfd] = [
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+'[?]', '[?]', "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', '[?]',
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfe.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfe.pm
new file mode 100644
index 0000000..5fd33b8
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xfe.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:44 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xfe] = [
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+"", "", "", qq{~}, '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]',
+qq{..}, qq{--}, qq{-}, qq{_}, qq{_}, qq{(}, qq{) }, qq{\{}, qq{\} }, qq{[}, qq{] }, qq{[(}, qq{)] }, qq{<<}, qq{>> }, qq{<},
+qq{> }, qq{[}, qq{] }, qq{\{}, qq{\}}, '[?]', '[?]', '[?]', '[?]', "", "", "", "", "", "", "",
+qq{,}, qq{,}, qq{.}, "", qq{;}, qq{:}, qq{?}, qq{!}, qq{-}, qq{(}, qq{)}, qq{\{}, qq{\}}, qq{\{}, qq{\}}, qq{#},
+qq{&}, qq{*}, qq{+}, qq{-}, qq{<}, qq{>}, qq{=}, "", qq{\\}, qq{\$}, qq{%}, qq{\@}, '[?]', '[?]', '[?]', '[?]',
+"", "", "", '[?]', "", '[?]', "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+"", "", "", "", "", "", "", "", "", "", "", "", "", '[?]', '[?]', "",
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xff.pm b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xff.pm
new file mode 100644
index 0000000..8ca5a94
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/lib/Text/Unidecode/xff.pm
@@ -0,0 +1,20 @@
+# Time-stamp: "Sat Jul 14 00:27:44 2001 by Automatic Bizooty (__blocks2pm.plx)"
+$Text::Unidecode::Char[0xff] = [
+'[?]', qq{!}, qq{"}, qq{#}, qq{\$}, qq{%}, qq{&}, qq{'}, qq{(}, qq{)}, qq{*}, qq{+}, qq{,}, qq{-}, qq{.}, qq{/},
+'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', qq{:}, qq{;}, qq{<}, qq{=}, qq{>}, qq{?},
+qq{\@}, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', qq{[}, qq{\\}, qq{]}, qq{^}, qq{_},
+qq{`}, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', qq{\{}, qq{|}, qq{\}}, qq{~}, '[?]',
+'[?]', qq{.}, qq{[}, qq{]}, qq{,}, qq{*}, 'wo', 'a', 'i', 'u', 'e', 'o', 'ya', 'yu', 'yo', 'tu',
+qq{+}, 'a', 'i', 'u', 'e', 'o', 'ka', 'ki', 'ku', 'ke', 'ko', 'sa', 'si', 'su', 'se', 'so',
+'ta', 'ti', 'tu', 'te', 'to', 'na', 'ni', 'nu', 'ne', 'no', 'ha', 'hi', 'hu', 'he', 'ho', 'ma',
+'mi', 'mu', 'me', 'mo', 'ya', 'yu', 'yo', 'ra', 'ri', 'ru', 're', 'ro', 'wa', 'n', qq{:}, qq{;},
+"", 'g', 'gg', 'gs', 'n', 'nj', 'nh', 'd', 'dd', 'r', 'lg', 'lm', 'lb', 'ls', 'lt', 'lp',
+'rh', 'm', 'b', 'bb', 'bs', 's', 'ss', "", 'j', 'jj', 'c', 'k', 't', 'p', 'h', '[?]',
+'[?]', '[?]', 'a', 'ae', 'ya', 'yae', 'eo', 'e', '[?]', '[?]', 'yeo', 'ye', 'o', 'wa', 'wae', 'oe',
+'[?]', '[?]', 'yo', 'u', 'weo', 'we', 'wi', 'yu', '[?]', '[?]', 'eu', 'yi', 'i', '[?]', '[?]', '[?]',
+qq{/C}, 'PS', qq{!}, qq{-}, qq{|}, qq{Y=}, qq{W=}, '[?]', qq{|}, qq{-}, qq{|}, qq{-}, qq{|}, qq{#}, 'O', '[?]',
+'[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', '[?]', qq{\{}, qq{|}, qq{\}}, "", "", "", "",
+];
+1;
diff --git a/tp/maintain/lib/Text-Unidecode/test.pl b/tp/maintain/lib/Text-Unidecode/test.pl
new file mode 100644
index 0000000..51d5d66
--- /dev/null
+++ b/tp/maintain/lib/Text-Unidecode/test.pl
@@ -0,0 +1,96 @@
+
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+######################### We start with some black magic to print on failure.
+ # Time-stamp: "2001-07-14 01:48:48 MDT"
+
+require 5.006;
+ # This is a Perl program.
+use strict;
+use utf8;
+use Test;
+
+BEGIN { plan tests => 17 }
+
+use Text::Unidecode;
+
+ok 1;
+print "# Text::Unidecode v$Text::Unidecode::VERSION\n",
+ "# Perl v$]\n",
+ "# Starting tests...\n";
+
+my $in = "\x{0d9c}\x{0d8e}!\n";
+my($was, $should, $is);
+foreach my $line (
+
+#"# 7-bit purity tests: all chars 00 to 7F\n",
+#map(\ord($_), 0x00 .. 0x7f),
+
+"# Basic string tests\n",
+\(
+ "",
+ 1/10,
+ "I like pie.",
+ "\n",
+ "\cm\cj",
+ "I like pie.\n",
+),
+
+"#\n",
+"# COMPLEX TESTS\n",
+
+split(m/\n/, <<"EOTESTS"),
+<\x{C6}neid> <AEneid>
+<\x{E9}tude> <etude>
+<\x{5317}\x{4EB0}> <Bei Jing >
+ ; Chinese
+<\x{1515}\x{14c7}\x{14c7}> <shanana>
+ ; Canadian syllabics
+<\x{13d4}\x{13b5}\x{13c6}> <taliqua>
+ ; Cherokee
+<\x{0726}\x{071b}\x{073d}\x{0710}\x{073a}> <ptu'i>
+ ; Syriac
+<\x{0905}\x{092d}\x{093f}\x{091c}\x{0940}\x{0924}> <abhijiit>
+ ; Devanagari
+<\x{0985}\x{09ad}\x{09bf}\x{099c}\x{09c0}\x{09a4}> <abhijiit>
+ ; Bengali
+<\x{0d05}\x{0d2d}\x{0d3f}\x{0d1c}\x{0d40}\x{0d24}> <abhijiit>
+ ; Malayalaam
+<\x{0d2e}\x{0d32}\x{0d2f}\x{0d3e}\x{0d32}\x{0d2e}\x{0d4d}> <mlyaalm>
+ ; the Malayaalam word for "Malayaalam"
+ ; Yes, if we were doing it right, that'd be "malayaalam", not "mlyaalm"
+
+<\x{3052}\x{3093}\x{307e}\x{3044}\x{8336}> <genmaiCha >
+ ; Japanese, astonishingly unmangled.
+
+EOTESTS
+
+# TODO: more tests, I guess.
+
+"# End of test data\n",
+) {
+ if(ref $line) { # it should pass thru untouched
+ #print ref($line), "\n";
+ $was = $should = $$line;
+ } else {
+ if($line =~ m/<(.*?)>\s*<(.*?)>/ or $line =~ m/\[(.*?)\]\s*\[(.*?)\]/ ){
+ ($was, $should) = ($1,$2);
+ } else {
+ print $line if $line =~ m/^\s*#/s;
+ next;
+ }
+ }
+ $is = unidecode($was);
+ if($should eq $is) {
+ ok 1;
+ for($should, $is, $was) { s/\n/\\n/g; s/\cm/\\cm/g; s/\cj/\\cj/g; }
+ print " # <$was> -> <$is> (ok)\n";
+ } else {
+ ok 0;
+ for($should, $is, $was) { s/\n/\\n/g }
+ print " # <$was> -> <$is>, but should be <$should>\n";
+ }
+}
+print "# Byebye\n";
+
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/Changes b/tp/maintain/lib/Unicode-EastAsianWidth/Changes
new file mode 100644
index 0000000..9136967
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/Changes
@@ -0,0 +1,58 @@
+[Changes for 1.30 - 2007-02-08]
+
+* Added miss-parsed lines of ranges in EastAsianWidth.txt, affecting
+ all but the first codepoints of codepoint ranges (as mentioned in
+ the changelog entry for version 1.20).
+
+ Reported by: JJ Jenq
+
+[Changes for 1.20 - 2007-02-08]
+
+* Added miss-parsed lines of ranges in EastAsianWidth.txt, affecting
+ all but the last codepoints of these codepoints:
+
+ 3400..4DB5;W
+ 4E00..9FBB;W
+ AC00..D7A3;W
+ D800..DB7F;N
+ DB80..DBFF;N
+ DC00..DFFF;N
+ E000..F8FF;A
+ 20000..2A6D6;W
+ 2A6D7..2F7FF;W
+ 2FA1E..2FFFD;W
+ 30000..3FFFD;W
+ F0000..FFFFD;A
+ 100000..10FFFD;A
+
+ Reported by: JJ Jenq
+
+[Changes for 1.10 - 2007-10-14]
+
+* LICENSING CHANGE: This compilation and all individual files in it
+ are now under the permissive "MIT" license.
+
+* Updated to Unicode Database 5.0.0.
+
+* Ranges in EastAsianWidth.txt are now recognized, in addition to
+ individual codepoints.
+
+* If the EastAsianWidth.txt that came with site Perl is older than
+ the bundled version, we now prefer the bundled version instead.
+
+* Modernized the build infrastructure with Module::Install.
+
+* Tidied up source code, test files, and this changelog.
+
+[Changes for 1.02 - 2003-10-02]
+
+* Updated to Unicode Database 4.0.0.
+
+[Changes for 1.01 - 2002-09-22]
+
+* POD NAME fixes, spelling nits, etc.
+* Correct the PPD x86 binary name.
+
+[Changes for 1.00 - 2002-09-20]
+
+* Initial CPAN release.
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/MANIFEST b/tp/maintain/lib/Unicode-EastAsianWidth/MANIFEST
new file mode 100644
index 0000000..bce134c
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/MANIFEST
@@ -0,0 +1,17 @@
+Changes
+inc/Module/Install.pm
+inc/Module/Install/Base.pm
+inc/Module/Install/Can.pm
+inc/Module/Install/Fetch.pm
+inc/Module/Install/Makefile.pm
+inc/Module/Install/Metadata.pm
+inc/Module/Install/Win32.pm
+inc/Module/Install/WriteAll.pm
+lib/Unicode/EastAsianWidth.pm
+Makefile.PL
+MANIFEST This list of files
+META.yml Module meta-data (added by MakeMaker)
+README
+SIGNATURE
+t/0-signature.t
+t/1-basic.t
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/META.yml b/tp/maintain/lib/Unicode-EastAsianWidth/META.yml
new file mode 100644
index 0000000..e3e813c
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/META.yml
@@ -0,0 +1,22 @@
+---
+abstract: East Asian Width properties
+author:
+ - Audrey Tang <cpan@audreyt.org>
+distribution_type: module
+generated_by: Module::Install version 0.68
+license: mit
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ version: 1.3
+name: Unicode-EastAsianWidth
+no_index:
+ directory:
+ - inc
+ - t
+provides:
+ Unicode::EastAsianWidth:
+ file: lib/Unicode/EastAsianWidth.pm
+ version: 1.30
+requires:
+ perl: 5.6.0
+version: 1.30
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/Makefile.PL b/tp/maintain/lib/Unicode-EastAsianWidth/Makefile.PL
new file mode 100644
index 0000000..7e87b53
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/Makefile.PL
@@ -0,0 +1,120 @@
+#!/usr/bin/perl
+
+use strict;
+use inc::Module::Install;
+
+my $DefaultVersion = 'v5.0.0';
+my $DefaultDate = '2006-02-15';
+
+_build_pm();
+
+name 'Unicode-EastAsianWidth';
+all_from 'lib/Unicode/EastAsianWidth.pm';
+
+auto_provides;
+sign; WriteAll;
+
+sub _build_pm {
+ my $file;
+
+ foreach (@INC) {
+ $file = "$_/unicore/EastAsianWidth.txt";
+ last if -e $file;
+ }
+
+ my $use_bundled = 1;
+ TRY: {
+ unless (-e $file) {
+ print "*** Cannot find unicore/EastAsianWidth.txt\n";
+ last TRY;
+ }
+
+ unless (open EAW, $file) {
+ print "*** Cannot open $file for reading: $!\n";
+ last TRY;
+ }
+
+ unless (<EAW> =~ /EastAsianWidth/) {
+ print "*** Cannot parse $file.\n";
+ last TRY;
+ }
+
+ unless (<EAW> =~ /Date: (\d+-\d+-\d+)/ and $1 gt $DefaultDate) {
+ print "*** Installed table not newer than the bundled version.\n";
+ last TRY;
+ }
+
+ $use_bundled = 0;
+ }
+
+ if ($use_bundled) {
+ print "*** Using bundled EastAsianWidth table ($DefaultVersion).\n";
+ return;
+ }
+
+ my %ToFullName = (
+ N => 'InEastAsianNeutral',
+ A => 'InEastAsianAmbiguous',
+ H => 'InEastAsianHalfwidth',
+ W => 'InEastAsianWide',
+ F => 'InEastAsianFullwidth',
+ Na => 'InEastAsianNarrow',
+ );
+
+ my ($prev_code, $prev_categ) = '';
+ my $prev_code_end = '';
+ my %categ;
+
+ while (<EAW>) {
+ if (/^(\w+);(\w+)/) {
+ my ($code, $categ) = ($1, $2);
+ if ($prev_categ ne $categ) {
+ $categ{$ToFullName{$prev_categ}} .= "$prev_code\\t$prev_code_end\n" if $prev_categ;
+ $prev_code = $code;
+ $prev_categ = $categ;
+ }
+ $prev_code_end = $code;
+ }
+ elsif (/^(\w+)\.\.(\w+);(\w+)/) {
+ $categ{$ToFullName{$prev_categ}} .= "$prev_code\\t$prev_code_end\n" if $prev_categ;
+ $categ{$ToFullName{$3}} .= "$1\\t$2\n";
+ $prev_categ = '';
+ }
+ }
+
+ my $out;
+ unless (open PM, 'lib/Unicode/EastAsianWidth.pm') {
+ print "*** Cannot read module ($!), falling back to default ($DefaultVersion)\n";
+ return;
+ }
+
+ while (<PM>) { $out .= $_; last if /^### BEGIN ###$/ }
+
+ $out .= "our \@EXPORT = qw(\n" . join(
+ "\n", sort(values %ToFullName), qw(InFullwidth InHalfwidth)
+ ) . "\n);\n\n";
+
+ for my $name (sort values %ToFullName) {
+ $out .= << ".";
+sub $name {
+ return <<"END";
+$categ{$name}END
+}
+
+.
+ }
+
+ while (<PM>) { $out .= $_ and last if /^### END ###$/ }
+ while (<PM>) { $out .= $_ }
+
+ close PM;
+
+ chmod 0644, 'lib/Unicode/EastAsianWidth.pm';
+ unless (open PM, '>', 'lib/Unicode/EastAsianWidth.pm') {
+ print "*** Cannot write to module ($!), falling back to default ($DefaultVersion)\n";
+ return;
+ }
+
+ print PM $out;
+ close PM;
+}
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/README b/tp/maintain/lib/Unicode-EastAsianWidth/README
new file mode 100644
index 0000000..b85c3d1
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/README
@@ -0,0 +1,77 @@
+NAME
+ Unicode::EastAsianWidth - East Asian Width properties
+
+VERSION
+ This document describes version 1.10 of Unicode::EastAsianWidth,
+ released October 14, 2007.
+
+SYNOPSIS
+ use Unicode::EastAsianWidth;
+
+ $_ = chr(0x2588); # FULL BLOCK, an ambiguous-width character
+
+ /\p{InEastAsianAmbiguous}/; # true
+ /\p{InFullwidth}/; # false
+
+ {
+ local $Unicode::EastAsianWidth::EastAsian = 1;
+ /\p{InFullwidth}/; # true; only works on perl 5.8+
+ }
+
+DESCRIPTION
+ This module provide user-defined Unicode properties that deal with East
+ Asian characters' width status, as specified in
+ <http://www.unicode.org/unicode/reports/tr11/>.
+
+ It exports the following functions to the caller's scope, to be used by
+ Perl's Unicode matching system: "InEastAsianFullwidth",
+ "InEastAsianHalfwidth", "InEastAsianAmbiguous", "InEastAsianNarrow"
+ "InEastAsianWide", "InEastAsianNeutral".
+
+ In accord to TR11 cited above, two additional context-sensitive
+ properties are exported: "InFullwidth" (union of "Fullwidth" and "Wide")
+ and "InHalfwidth" (union of "Halfwidth", "Narrow" and "Neutral").
+
+ *Ambiguous* characters are treated by default as part of "InHalfwidth",
+ but you can modify this behaviour by assigning a true value to
+ $Unicode::EastAsianWidth::EastAsian.
+
+CAVEATS
+ Setting $Unicode::EastAsianWidth::EastAsian at run-time only works on
+ Perl version 5.8 or above. Perl 5.6 users must use a BEGIN block to set
+ it before the "use" statement:
+
+ BEGIN { $Unicode::EastAsianWidth::EastAsian = 1 }
+ use Unicode::EastAsianWidth;
+
+SEE ALSO
+ perlunicode, <http://www.unicode.org/unicode/reports/tr11/>
+
+AUTHORS
+ Audrey Tang <cpan@audreyt.org>
+
+COPYRIGHT
+ Copyright 2002, 2003, 2007 by Audrey Tang <cpan@audreyt.org>.
+
+ This software is released under the MIT license cited below.
+
+ The "MIT" License
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/SIGNATURE b/tp/maintain/lib/Unicode-EastAsianWidth/SIGNATURE
new file mode 100644
index 0000000..179cff3
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/SIGNATURE
@@ -0,0 +1,39 @@
+This file contains message digests of all files listed in MANIFEST,
+signed via the Module::Signature module, version 0.55.
+
+To verify the content in this distribution, first make sure you have
+Module::Signature installed, then type:
+
+ % cpansign -v
+
+It will check each file's integrity, as well as the signature's
+validity. If "==> Signature verified OK! <==" is not displayed,
+the distribution may already have been compromised, and you should
+not run its Makefile.PL or Build.PL.
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+SHA1 aaaba4c041295376ffff8b95315922f8157b46f6 Changes
+SHA1 8b1030f09754711d705c19bba6d284160f2eed74 MANIFEST
+SHA1 b3e0235b6b9b00ad8b3a486b32b8b5bf46846162 META.yml
+SHA1 d82aed2fe2d5e2fcaa6e98c84a5498ee1d2360dc Makefile.PL
+SHA1 a38eb3d89d252a5e07bb7a175a0428173b5483b9 README
+SHA1 7e2cfa1b9efe0d502ee57717649c90ba4bd28ba9 inc/Module/Install.pm
+SHA1 6e1392d80a0f239eecd5664f7f21f922cedb9329 inc/Module/Install/Base.pm
+SHA1 f69417fe831d9cc22a78f00a617afadceade4d81 inc/Module/Install/Can.pm
+SHA1 c61d02895330310048bf388881b5e2e064031561 inc/Module/Install/Fetch.pm
+SHA1 54fcbed19232ec959bb17cfb4410599afc7f0779 inc/Module/Install/Makefile.pm
+SHA1 7d3be9b158e37b2b2c22084740099955623b1d56 inc/Module/Install/Metadata.pm
+SHA1 0a8b66180229ba2f9deaea1fedd0aacf7a7ace6b inc/Module/Install/Win32.pm
+SHA1 d3352eb33fe43a5f3ead513f645224fe34d73bc9 inc/Module/Install/WriteAll.pm
+SHA1 fa70cb9ca3126c37c52a161d89a5399ae7c752e0 lib/Unicode/EastAsianWidth.pm
+SHA1 41afe2c04bb573b40e283e2b210ed70a47a3f8ba t/0-signature.t
+SHA1 5bbe3de2b00d4803e83d780d3494566dc936b941 t/1-basic.t
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.3 (Darwin)
+
+iD8DBQFHrEOQtLPdNzw1AaARAnk/AKCgduldcFW25n64Z9tNtMAWrK0frgCfQlSe
+JtXwxVxce0N08qNUIgo8HPs=
+=ULLQ
+-----END PGP SIGNATURE-----
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install.pm
new file mode 100644
index 0000000..89a8653
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install.pm
@@ -0,0 +1,281 @@
+#line 1
+package Module::Install;
+
+# For any maintainers:
+# The load order for Module::Install is a bit magic.
+# It goes something like this...
+#
+# IF ( host has Module::Install installed, creating author mode ) {
+# 1. Makefile.PL calls "use inc::Module::Install"
+# 2. $INC{inc/Module/Install.pm} set to installed version of inc::Module::Install
+# 3. The installed version of inc::Module::Install loads
+# 4. inc::Module::Install calls "require Module::Install"
+# 5. The ./inc/ version of Module::Install loads
+# } ELSE {
+# 1. Makefile.PL calls "use inc::Module::Install"
+# 2. $INC{inc/Module/Install.pm} set to ./inc/ version of Module::Install
+# 3. The ./inc/ version of Module::Install loads
+# }
+
+use 5.004;
+use strict 'vars';
+
+use vars qw{$VERSION};
+BEGIN {
+ # All Module::Install core packages now require synchronised versions.
+ # This will be used to ensure we don't accidentally load old or
+ # different versions of modules.
+ # This is not enforced yet, but will be some time in the next few
+ # releases once we can make sure it won't clash with custom
+ # Module::Install extensions.
+ $VERSION = '0.68';
+}
+
+# Whether or not inc::Module::Install is actually loaded, the
+# $INC{inc/Module/Install.pm} is what will still get set as long as
+# the caller loaded module this in the documented manner.
+# If not set, the caller may NOT have loaded the bundled version, and thus
+# they may not have a MI version that works with the Makefile.PL. This would
+# result in false errors or unexpected behaviour. And we don't want that.
+my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm';
+unless ( $INC{$file} ) {
+ die <<"END_DIE";
+Please invoke ${\__PACKAGE__} with:
+
+ use inc::${\__PACKAGE__};
+
+not:
+
+ use ${\__PACKAGE__};
+
+END_DIE
+}
+
+# If the script that is loading Module::Install is from the future,
+# then make will detect this and cause it to re-run over and over
+# again. This is bad. Rather than taking action to touch it (which
+# is unreliable on some platforms and requires write permissions)
+# for now we should catch this and refuse to run.
+if ( -f $0 and (stat($0))[9] > time ) {
+ die << "END_DIE";
+Your installer $0 has a modification time in the future.
+
+This is known to create infinite loops in make.
+
+Please correct this, then run $0 again.
+
+END_DIE
+}
+
+use Cwd ();
+use File::Find ();
+use File::Path ();
+use FindBin;
+
+*inc::Module::Install::VERSION = *VERSION;
+@inc::Module::Install::ISA = __PACKAGE__;
+
+sub autoload {
+ my $self = shift;
+ my $who = $self->_caller;
+ my $cwd = Cwd::cwd();
+ my $sym = "${who}::AUTOLOAD";
+ $sym->{$cwd} = sub {
+ my $pwd = Cwd::cwd();
+ if ( my $code = $sym->{$pwd} ) {
+ # delegate back to parent dirs
+ goto &$code unless $cwd eq $pwd;
+ }
+ $$sym =~ /([^:]+)$/ or die "Cannot autoload $who - $sym";
+ unshift @_, ($self, $1);
+ goto &{$self->can('call')} unless uc($1) eq $1;
+ };
+}
+
+sub import {
+ my $class = shift;
+ my $self = $class->new(@_);
+ my $who = $self->_caller;
+
+ unless ( -f $self->{file} ) {
+ require "$self->{path}/$self->{dispatch}.pm";
+ File::Path::mkpath("$self->{prefix}/$self->{author}");
+ $self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self );
+ $self->{admin}->init;
+ @_ = ($class, _self => $self);
+ goto &{"$self->{name}::import"};
+ }
+
+ *{"${who}::AUTOLOAD"} = $self->autoload;
+ $self->preload;
+
+ # Unregister loader and worker packages so subdirs can use them again
+ delete $INC{"$self->{file}"};
+ delete $INC{"$self->{path}.pm"};
+}
+
+sub preload {
+ my ($self) = @_;
+
+ unless ( $self->{extensions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
+
+ my @exts = @{$self->{extensions}};
+ unless ( @exts ) {
+ my $admin = $self->{admin};
+ @exts = $admin->load_all_extensions;
+ }
+
+ my %seen;
+ foreach my $obj ( @exts ) {
+ while (my ($method, $glob) = each %{ref($obj) . '::'}) {
+ next unless $obj->can($method);
+ next if $method =~ /^_/;
+ next if $method eq uc($method);
+ $seen{$method}++;
+ }
+ }
+
+ my $who = $self->_caller;
+ foreach my $name ( sort keys %seen ) {
+ *{"${who}::$name"} = sub {
+ ${"${who}::AUTOLOAD"} = "${who}::$name";
+ goto &{"${who}::AUTOLOAD"};
+ };
+ }
+}
+
+sub new {
+ my ($class, %args) = @_;
+
+ # ignore the prefix on extension modules built from top level.
+ my $base_path = Cwd::abs_path($FindBin::Bin);
+ unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) {
+ delete $args{prefix};
+ }
+
+ return $args{_self} if $args{_self};
+
+ $args{dispatch} ||= 'Admin';
+ $args{prefix} ||= 'inc';
+ $args{author} ||= ($^O eq 'VMS' ? '_author' : '.author');
+ $args{bundle} ||= 'inc/BUNDLES';
+ $args{base} ||= $base_path;
+ $class =~ s/^\Q$args{prefix}\E:://;
+ $args{name} ||= $class;
+ $args{version} ||= $class->VERSION;
+ unless ( $args{path} ) {
+ $args{path} = $args{name};
+ $args{path} =~ s!::!/!g;
+ }
+ $args{file} ||= "$args{base}/$args{prefix}/$args{path}.pm";
+
+ bless( \%args, $class );
+}
+
+sub call {
+ my ($self, $method) = @_;
+ my $obj = $self->load($method) or return;
+ splice(@_, 0, 2, $obj);
+ goto &{$obj->can($method)};
+}
+
+sub load {
+ my ($self, $method) = @_;
+
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ ) unless $self->{extensions};
+
+ foreach my $obj (@{$self->{extensions}}) {
+ return $obj if $obj->can($method);
+ }
+
+ my $admin = $self->{admin} or die <<"END_DIE";
+The '$method' method does not exist in the '$self->{prefix}' path!
+Please remove the '$self->{prefix}' directory and run $0 again to load it.
+END_DIE
+
+ my $obj = $admin->load($method, 1);
+ push @{$self->{extensions}}, $obj;
+
+ $obj;
+}
+
+sub load_extensions {
+ my ($self, $path, $top) = @_;
+
+ unless ( grep { lc $_ eq lc $self->{prefix} } @INC ) {
+ unshift @INC, $self->{prefix};
+ }
+
+ foreach my $rv ( $self->find_extensions($path) ) {
+ my ($file, $pkg) = @{$rv};
+ next if $self->{pathnames}{$pkg};
+
+ local $@;
+ my $new = eval { require $file; $pkg->can('new') };
+ unless ( $new ) {
+ warn $@ if $@;
+ next;
+ }
+ $self->{pathnames}{$pkg} = delete $INC{$file};
+ push @{$self->{extensions}}, &{$new}($pkg, _top => $top );
+ }
+
+ $self->{extensions} ||= [];
+}
+
+sub find_extensions {
+ my ($self, $path) = @_;
+
+ my @found;
+ File::Find::find( sub {
+ my $file = $File::Find::name;
+ return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is;
+ my $subpath = $1;
+ return if lc($subpath) eq lc($self->{dispatch});
+
+ $file = "$self->{path}/$subpath.pm";
+ my $pkg = "$self->{name}::$subpath";
+ $pkg =~ s!/!::!g;
+
+ # If we have a mixed-case package name, assume case has been preserved
+ # correctly. Otherwise, root through the file to locate the case-preserved
+ # version of the package name.
+ if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) {
+ open PKGFILE, "<$subpath.pm" or die "find_extensions: Can't open $subpath.pm: $!";
+ my $in_pod = 0;
+ while ( <PKGFILE> ) {
+ $in_pod = 1 if /^=\w/;
+ $in_pod = 0 if /^=cut/;
+ next if ($in_pod || /^=cut/); # skip pod text
+ next if /^\s*#/; # and comments
+ if ( m/^\s*package\s+($pkg)\s*;/i ) {
+ $pkg = $1;
+ last;
+ }
+ }
+ close PKGFILE;
+ }
+
+ push @found, [ $file, $pkg ];
+ }, $path ) if -d $path;
+
+ @found;
+}
+
+sub _caller {
+ my $depth = 0;
+ my $call = caller($depth);
+ while ( $call eq __PACKAGE__ ) {
+ $depth++;
+ $call = caller($depth);
+ }
+ return $call;
+}
+
+1;
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Base.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Base.pm
new file mode 100644
index 0000000..49dfde6
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Base.pm
@@ -0,0 +1,70 @@
+#line 1
+package Module::Install::Base;
+
+$VERSION = '0.68';
+
+# Suspend handler for "redefined" warnings
+BEGIN {
+ my $w = $SIG{__WARN__};
+ $SIG{__WARN__} = sub { $w };
+}
+
+### This is the ONLY module that shouldn't have strict on
+# use strict;
+
+#line 41
+
+sub new {
+ my ($class, %args) = @_;
+
+ foreach my $method ( qw(call load) ) {
+ *{"$class\::$method"} = sub {
+ shift()->_top->$method(@_);
+ } unless defined &{"$class\::$method"};
+ }
+
+ bless( \%args, $class );
+}
+
+#line 61
+
+sub AUTOLOAD {
+ my $self = shift;
+ local $@;
+ my $autoload = eval { $self->_top->autoload } or return;
+ goto &$autoload;
+}
+
+#line 76
+
+sub _top { $_[0]->{_top} }
+
+#line 89
+
+sub admin {
+ $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
+}
+
+sub is_admin {
+ $_[0]->admin->VERSION;
+}
+
+sub DESTROY {}
+
+package Module::Install::Base::FakeAdmin;
+
+my $Fake;
+sub new { $Fake ||= bless(\@_, $_[0]) }
+
+sub AUTOLOAD {}
+
+sub DESTROY {}
+
+# Restore warning handler
+BEGIN {
+ $SIG{__WARN__} = $SIG{__WARN__}->();
+}
+
+1;
+
+#line 138
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Can.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Can.pm
new file mode 100644
index 0000000..ec66fdb
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Can.pm
@@ -0,0 +1,82 @@
+#line 1
+package Module::Install::Can;
+
+use strict;
+use Module::Install::Base;
+use Config ();
+### This adds a 5.005 Perl version dependency.
+### This is a bug and will be fixed.
+use File::Spec ();
+use ExtUtils::MakeMaker ();
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+# check if we can load some module
+### Upgrade this to not have to load the module if possible
+sub can_use {
+ my ($self, $mod, $ver) = @_;
+ $mod =~ s{::|\\}{/}g;
+ $mod .= '.pm' unless $mod =~ /\.pm$/i;
+
+ my $pkg = $mod;
+ $pkg =~ s{/}{::}g;
+ $pkg =~ s{\.pm$}{}i;
+
+ local $@;
+ eval { require $mod; $pkg->VERSION($ver || 0); 1 };
+}
+
+# check if we can run some command
+sub can_run {
+ my ($self, $cmd) = @_;
+
+ my $_cmd = $cmd;
+ return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
+
+ for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
+ my $abs = File::Spec->catfile($dir, $_[1]);
+ return $abs if (-x $abs or $abs = MM->maybe_command($abs));
+ }
+
+ return;
+}
+
+# can we locate a (the) C compiler
+sub can_cc {
+ my $self = shift;
+ my @chunks = split(/ /, $Config::Config{cc}) or return;
+
+ # $Config{cc} may contain args; try to find out the program part
+ while (@chunks) {
+ return $self->can_run("@chunks") || (pop(@chunks), next);
+ }
+
+ return;
+}
+
+# Fix Cygwin bug on maybe_command();
+if ( $^O eq 'cygwin' ) {
+ require ExtUtils::MM_Cygwin;
+ require ExtUtils::MM_Win32;
+ if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) {
+ *ExtUtils::MM_Cygwin::maybe_command = sub {
+ my ($self, $file) = @_;
+ if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) {
+ ExtUtils::MM_Win32->maybe_command($file);
+ } else {
+ ExtUtils::MM_Unix->maybe_command($file);
+ }
+ }
+ }
+}
+
+1;
+
+__END__
+
+#line 157
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Fetch.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Fetch.pm
new file mode 100644
index 0000000..e0dd6db
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Fetch.pm
@@ -0,0 +1,93 @@
+#line 1
+package Module::Install::Fetch;
+
+use strict;
+use Module::Install::Base;
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+sub get_file {
+ my ($self, %args) = @_;
+ my ($scheme, $host, $path, $file) =
+ $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return;
+
+ if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) {
+ $args{url} = $args{ftp_url}
+ or (warn("LWP support unavailable!\n"), return);
+ ($scheme, $host, $path, $file) =
+ $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return;
+ }
+
+ $|++;
+ print "Fetching '$file' from $host... ";
+
+ unless (eval { require Socket; Socket::inet_aton($host) }) {
+ warn "'$host' resolve failed!\n";
+ return;
+ }
+
+ return unless $scheme eq 'ftp' or $scheme eq 'http';
+
+ require Cwd;
+ my $dir = Cwd::getcwd();
+ chdir $args{local_dir} or return if exists $args{local_dir};
+
+ if (eval { require LWP::Simple; 1 }) {
+ LWP::Simple::mirror($args{url}, $file);
+ }
+ elsif (eval { require Net::FTP; 1 }) { eval {
+ # use Net::FTP to get past firewall
+ my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
+ $ftp->login("anonymous", 'anonymous@example.com');
+ $ftp->cwd($path);
+ $ftp->binary;
+ $ftp->get($file) or (warn("$!\n"), return);
+ $ftp->quit;
+ } }
+ elsif (my $ftp = $self->can_run('ftp')) { eval {
+ # no Net::FTP, fallback to ftp.exe
+ require FileHandle;
+ my $fh = FileHandle->new;
+
+ local $SIG{CHLD} = 'IGNORE';
+ unless ($fh->open("|$ftp -n")) {
+ warn "Couldn't open ftp: $!\n";
+ chdir $dir; return;
+ }
+
+ my @dialog = split(/\n/, <<"END_FTP");
+open $host
+user anonymous anonymous\@example.com
+cd $path
+binary
+get $file $file
+quit
+END_FTP
+ foreach (@dialog) { $fh->print("$_\n") }
+ $fh->close;
+ } }
+ else {
+ warn "No working 'ftp' program available!\n";
+ chdir $dir; return;
+ }
+
+ unless (-f $file) {
+ warn "Fetching failed: $@\n";
+ chdir $dir; return;
+ }
+
+ return if exists $args{size} and -s $file != $args{size};
+ system($args{run}) if exists $args{run};
+ unlink($file) if $args{remove};
+
+ print(((!exists $args{check_for} or -e $args{check_for})
+ ? "done!" : "failed! ($!)"), "\n");
+ chdir $dir; return !$?;
+}
+
+1;
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Makefile.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Makefile.pm
new file mode 100644
index 0000000..17bd8a7
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Makefile.pm
@@ -0,0 +1,237 @@
+#line 1
+package Module::Install::Makefile;
+
+use strict 'vars';
+use Module::Install::Base;
+use ExtUtils::MakeMaker ();
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+sub Makefile { $_[0] }
+
+my %seen = ();
+
+sub prompt {
+ shift;
+
+ # Infinite loop protection
+ my @c = caller();
+ if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) {
+ die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])";
+ }
+
+ # In automated testing, always use defaults
+ if ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL_MM_USE_DEFAULT} ) {
+ local $ENV{PERL_MM_USE_DEFAULT} = 1;
+ goto &ExtUtils::MakeMaker::prompt;
+ } else {
+ goto &ExtUtils::MakeMaker::prompt;
+ }
+}
+
+sub makemaker_args {
+ my $self = shift;
+ my $args = ($self->{makemaker_args} ||= {});
+ %$args = ( %$args, @_ ) if @_;
+ $args;
+}
+
+# For mm args that take multiple space-seperated args,
+# append an argument to the current list.
+sub makemaker_append {
+ my $self = sShift;
+ my $name = shift;
+ my $args = $self->makemaker_args;
+ $args->{name} = defined $args->{$name}
+ ? join( ' ', $args->{name}, @_ )
+ : join( ' ', @_ );
+}
+
+sub build_subdirs {
+ my $self = shift;
+ my $subdirs = $self->makemaker_args->{DIR} ||= [];
+ for my $subdir (@_) {
+ push @$subdirs, $subdir;
+ }
+}
+
+sub clean_files {
+ my $self = shift;
+ my $clean = $self->makemaker_args->{clean} ||= {};
+ %$clean = (
+ %$clean,
+ FILES => join(' ', grep length, $clean->{FILES}, @_),
+ );
+}
+
+sub realclean_files {
+ my $self = shift;
+ my $realclean = $self->makemaker_args->{realclean} ||= {};
+ %$realclean = (
+ %$realclean,
+ FILES => join(' ', grep length, $realclean->{FILES}, @_),
+ );
+}
+
+sub libs {
+ my $self = shift;
+ my $libs = ref $_[0] ? shift : [ shift ];
+ $self->makemaker_args( LIBS => $libs );
+}
+
+sub inc {
+ my $self = shift;
+ $self->makemaker_args( INC => shift );
+}
+
+my %test_dir = ();
+
+sub _wanted_t {
+ /\.t$/ and -f $_ and $test_dir{$File::Find::dir} = 1;
+}
+
+sub tests_recursive {
+ my $self = shift;
+ if ( $self->tests ) {
+ die "tests_recursive will not work if tests are already defined";
+ }
+ my $dir = shift || 't';
+ unless ( -d $dir ) {
+ die "tests_recursive dir '$dir' does not exist";
+ }
+ require File::Find;
+ %test_dir = ();
+ File::Find::find( \&_wanted_t, $dir );
+ $self->tests( join ' ', map { "$_/*.t" } sort keys %test_dir );
+}
+
+sub write {
+ my $self = shift;
+ die "&Makefile->write() takes no arguments\n" if @_;
+
+ my $args = $self->makemaker_args;
+ $args->{DISTNAME} = $self->name;
+ $args->{NAME} = $self->module_name || $self->name || $self->determine_NAME($args);
+ $args->{VERSION} = $self->version || $self->determine_VERSION($args);
+ $args->{NAME} =~ s/-/::/g;
+ if ( $self->tests ) {
+ $args->{test} = { TESTS => $self->tests };
+ }
+ if ($] >= 5.005) {
+ $args->{ABSTRACT} = $self->abstract;
+ $args->{AUTHOR} = $self->author;
+ }
+ if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) {
+ $args->{NO_META} = 1;
+ }
+ if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 and $self->sign ) {
+ $args->{SIGN} = 1;
+ }
+ unless ( $self->is_admin ) {
+ delete $args->{SIGN};
+ }
+
+ # merge both kinds of requires into prereq_pm
+ my $prereq = ($args->{PREREQ_PM} ||= {});
+ %$prereq = ( %$prereq,
+ map { @$_ }
+ map { @$_ }
+ grep $_,
+ ($self->build_requires, $self->requires)
+ );
+
+ # merge both kinds of requires into prereq_pm
+ my $subdirs = ($args->{DIR} ||= []);
+ if ($self->bundles) {
+ foreach my $bundle (@{ $self->bundles }) {
+ my ($file, $dir) = @$bundle;
+ push @$subdirs, $dir if -d $dir;
+ delete $prereq->{$file};
+ }
+ }
+
+ if ( my $perl_version = $self->perl_version ) {
+ eval "use $perl_version; 1"
+ or die "ERROR: perl: Version $] is installed, "
+ . "but we need version >= $perl_version";
+ }
+
+ $args->{INSTALLDIRS} = $self->installdirs;
+
+ my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_})} keys %$args;
+
+ my $user_preop = delete $args{dist}->{PREOP};
+ if (my $preop = $self->admin->preop($user_preop)) {
+ $args{dist} = $preop;
+ }
+
+ my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);
+ $self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile');
+}
+
+sub fix_up_makefile {
+ my $self = shift;
+ my $makefile_name = shift;
+ my $top_class = ref($self->_top) || '';
+ my $top_version = $self->_top->VERSION || '';
+
+ my $preamble = $self->preamble
+ ? "# Preamble by $top_class $top_version\n"
+ . $self->preamble
+ : '';
+ my $postamble = "# Postamble by $top_class $top_version\n"
+ . ($self->postamble || '');
+
+ local *MAKEFILE;
+ open MAKEFILE, "< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+ my $makefile = do { local $/; <MAKEFILE> };
+ close MAKEFILE or die $!;
+
+ $makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /;
+ $makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g;
+ $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g;
+ $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m;
+ $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m;
+
+ # Module::Install will never be used to build the Core Perl
+ # Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks
+ # PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist
+ $makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m;
+ #$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m;
+
+ # Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well.
+ $makefile =~ s/("?)-I\$\(PERL_LIB\)\1//g;
+
+ # XXX - This is currently unused; not sure if it breaks other MM-users
+ # $makefile =~ s/^pm_to_blib\s+:\s+/pm_to_blib :: /mg;
+
+ open MAKEFILE, "> $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!";
+ print MAKEFILE "$preamble$makefile$postamble" or die $!;
+ close MAKEFILE or die $!;
+
+ 1;
+}
+
+sub preamble {
+ my ($self, $text) = @_;
+ $self->{preamble} = $text . $self->{preamble} if defined $text;
+ $self->{preamble};
+}
+
+sub postamble {
+ my ($self, $text) = @_;
+ $self->{postamble} ||= $self->admin->postamble;
+ $self->{postamble} .= $text if defined $text;
+ $self->{postamble}
+}
+
+1;
+
+__END__
+
+#line 363
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Metadata.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Metadata.pm
new file mode 100644
index 0000000..f77d68a
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Metadata.pm
@@ -0,0 +1,336 @@
+#line 1
+package Module::Install::Metadata;
+
+use strict 'vars';
+use Module::Install::Base;
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+my @scalar_keys = qw{
+ name module_name abstract author version license
+ distribution_type perl_version tests installdirs
+};
+
+my @tuple_keys = qw{
+ build_requires requires recommends bundles
+};
+
+sub Meta { shift }
+sub Meta_ScalarKeys { @scalar_keys }
+sub Meta_TupleKeys { @tuple_keys }
+
+foreach my $key (@scalar_keys) {
+ *$key = sub {
+ my $self = shift;
+ return $self->{values}{$key} if defined wantarray and !@_;
+ $self->{values}{$key} = shift;
+ return $self;
+ };
+}
+
+foreach my $key (@tuple_keys) {
+ *$key = sub {
+ my $self = shift;
+ return $self->{values}{$key} unless @_;
+
+ my @rv;
+ while (@_) {
+ my $module = shift or last;
+ my $version = shift || 0;
+ if ( $module eq 'perl' ) {
+ $version =~ s{^(\d+)\.(\d+)\.(\d+)}
+ {$1 + $2/1_000 + $3/1_000_000}e;
+ $self->perl_version($version);
+ next;
+ }
+ my $rv = [ $module, $version ];
+ push @rv, $rv;
+ }
+ push @{ $self->{values}{$key} }, @rv;
+ @rv;
+ };
+}
+
+# configure_requires is currently a null-op
+sub configure_requires { 1 }
+
+# Aliases for build_requires that will have alternative
+# meanings in some future version of META.yml.
+sub test_requires { shift->build_requires(@_) }
+sub install_requires { shift->build_requires(@_) }
+
+# Aliases for installdirs options
+sub install_as_core { $_[0]->installdirs('perl') }
+sub install_as_cpan { $_[0]->installdirs('site') }
+sub install_as_site { $_[0]->installdirs('site') }
+sub install_as_vendor { $_[0]->installdirs('vendor') }
+
+sub sign {
+ my $self = shift;
+ return $self->{'values'}{'sign'} if defined wantarray and ! @_;
+ $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
+ return $self;
+}
+
+sub dynamic_config {
+ my $self = shift;
+ unless ( @_ ) {
+ warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
+ return $self;
+ }
+ $self->{'values'}{'dynamic_config'} = $_[0] ? 1 : 0;
+ return $self;
+}
+
+sub all_from {
+ my ( $self, $file ) = @_;
+
+ unless ( defined($file) ) {
+ my $name = $self->name
+ or die "all_from called with no args without setting name() first";
+ $file = join('/', 'lib', split(/-/, $name)) . '.pm';
+ $file =~ s{.*/}{} unless -e $file;
+ die "all_from: cannot find $file from $name" unless -e $file;
+ }
+
+ $self->version_from($file) unless $self->version;
+ $self->perl_version_from($file) unless $self->perl_version;
+
+ # The remaining probes read from POD sections; if the file
+ # has an accompanying .pod, use that instead
+ my $pod = $file;
+ if ( $pod =~ s/\.pm$/.pod/i and -e $pod ) {
+ $file = $pod;
+ }
+
+ $self->author_from($file) unless $self->author;
+ $self->license_from($file) unless $self->license;
+ $self->abstract_from($file) unless $self->abstract;
+}
+
+sub provides {
+ my $self = shift;
+ my $provides = ( $self->{values}{provides} ||= {} );
+ %$provides = (%$provides, @_) if @_;
+ return $provides;
+}
+
+sub auto_provides {
+ my $self = shift;
+ return $self unless $self->is_admin;
+
+ unless (-e 'MANIFEST') {
+ warn "Cannot deduce auto_provides without a MANIFEST, skipping\n";
+ return $self;
+ }
+
+ # Avoid spurious warnings as we are not checking manifest here.
+
+ local $SIG{__WARN__} = sub {1};
+ require ExtUtils::Manifest;
+ local *ExtUtils::Manifest::manicheck = sub { return };
+
+ require Module::Build;
+ my $build = Module::Build->new(
+ dist_name => $self->name,
+ dist_version => $self->version,
+ license => $self->license,
+ );
+ $self->provides(%{ $build->find_dist_packages || {} });
+}
+
+sub feature {
+ my $self = shift;
+ my $name = shift;
+ my $features = ( $self->{values}{features} ||= [] );
+
+ my $mods;
+
+ if ( @_ == 1 and ref( $_[0] ) ) {
+ # The user used ->feature like ->features by passing in the second
+ # argument as a reference. Accomodate for that.
+ $mods = $_[0];
+ } else {
+ $mods = \@_;
+ }
+
+ my $count = 0;
+ push @$features, (
+ $name => [
+ map {
+ ref($_) ? ( ref($_) eq 'HASH' ) ? %$_
+ : @$_
+ : $_
+ } @$mods
+ ]
+ );
+
+ return @$features;
+}
+
+sub features {
+ my $self = shift;
+ while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
+ $self->feature( $name, @$mods );
+ }
+ return $self->{values}->{features}
+ ? @{ $self->{values}->{features} }
+ : ();
+}
+
+sub no_index {
+ my $self = shift;
+ my $type = shift;
+ push @{ $self->{values}{no_index}{$type} }, @_ if $type;
+ return $self->{values}{no_index};
+}
+
+sub read {
+ my $self = shift;
+ $self->include_deps( 'YAML', 0 );
+
+ require YAML;
+ my $data = YAML::LoadFile('META.yml');
+
+ # Call methods explicitly in case user has already set some values.
+ while ( my ( $key, $value ) = each %$data ) {
+ next unless $self->can($key);
+ if ( ref $value eq 'HASH' ) {
+ while ( my ( $module, $version ) = each %$value ) {
+ $self->can($key)->($self, $module => $version );
+ }
+ }
+ else {
+ $self->can($key)->($self, $value);
+ }
+ }
+ return $self;
+}
+
+sub write {
+ my $self = shift;
+ return $self unless $self->is_admin;
+ $self->admin->write_meta;
+ return $self;
+}
+
+sub version_from {
+ my ( $self, $file ) = @_;
+ require ExtUtils::MM_Unix;
+ $self->version( ExtUtils::MM_Unix->parse_version($file) );
+}
+
+sub abstract_from {
+ my ( $self, $file ) = @_;
+ require ExtUtils::MM_Unix;
+ $self->abstract(
+ bless(
+ { DISTNAME => $self->name },
+ 'ExtUtils::MM_Unix'
+ )->parse_abstract($file)
+ );
+}
+
+sub _slurp {
+ my ( $self, $file ) = @_;
+
+ local *FH;
+ open FH, "< $file" or die "Cannot open $file.pod: $!";
+ do { local $/; <FH> };
+}
+
+sub perl_version_from {
+ my ( $self, $file ) = @_;
+
+ if (
+ $self->_slurp($file) =~ m/
+ ^
+ use \s*
+ v?
+ ([\d_\.]+)
+ \s* ;
+ /ixms
+ )
+ {
+ my $v = $1;
+ $v =~ s{_}{}g;
+ $self->perl_version($1);
+ }
+ else {
+ warn "Cannot determine perl version info from $file\n";
+ return;
+ }
+}
+
+sub author_from {
+ my ( $self, $file ) = @_;
+ my $content = $self->_slurp($file);
+ if ($content =~ m/
+ =head \d \s+ (?:authors?)\b \s*
+ ([^\n]*)
+ |
+ =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s*
+ .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s*
+ ([^\n]*)
+ /ixms) {
+ my $author = $1 || $2;
+ $author =~ s{E<lt>}{<}g;
+ $author =~ s{E<gt>}{>}g;
+ $self->author($author);
+ }
+ else {
+ warn "Cannot determine author info from $file\n";
+ }
+}
+
+sub license_from {
+ my ( $self, $file ) = @_;
+
+ if (
+ $self->_slurp($file) =~ m/
+ (
+ =head \d \s+
+ (?:licen[cs]e|licensing|copyright|legal)\b
+ .*?
+ )
+ (=head\\d.*|=cut.*|)
+ \z
+ /ixms
+ )
+ {
+ my $license_text = $1;
+ my @phrases = (
+ 'under the same (?:terms|license) as perl itself' => 'perl', 1,
+ 'GNU public license' => 'gpl', 1,
+ 'GNU lesser public license' => 'gpl', 1,
+ 'BSD license' => 'bsd', 1,
+ 'Artistic license' => 'artistic', 1,
+ 'GPL' => 'gpl', 1,
+ 'LGPL' => 'lgpl', 1,
+ 'BSD' => 'bsd', 1,
+ 'Artistic' => 'artistic', 1,
+ 'MIT' => 'mit', 1,
+ 'proprietary' => 'proprietary', 0,
+ );
+ while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) {
+ $pattern =~ s{\s+}{\\s+}g;
+ if ( $license_text =~ /\b$pattern\b/i ) {
+ if ( $osi and $license_text =~ /All rights reserved/i ) {
+ warn "LEGAL WARNING: 'All rights reserved' may invalidate Open Source licenses. Consider removing it.";
+ }
+ $self->license($license);
+ return 1;
+ }
+ }
+ }
+
+ warn "Cannot determine license info from $file\n";
+ return 'unknown';
+}
+
+1;
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Win32.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Win32.pm
new file mode 100644
index 0000000..4f808c7
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/Win32.pm
@@ -0,0 +1,65 @@
+#line 1
+package Module::Install::Win32;
+
+use strict;
+use Module::Install::Base;
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+# determine if the user needs nmake, and download it if needed
+sub check_nmake {
+ my $self = shift;
+ $self->load('can_run');
+ $self->load('get_file');
+
+ require Config;
+ return unless (
+ $^O eq 'MSWin32' and
+ $Config::Config{make} and
+ $Config::Config{make} =~ /^nmake\b/i and
+ ! $self->can_run('nmake')
+ );
+
+ print "The required 'nmake' executable not found, fetching it...\n";
+
+ require File::Basename;
+ my $rv = $self->get_file(
+ url => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe',
+ ftp_url => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe',
+ local_dir => File::Basename::dirname($^X),
+ size => 51928,
+ run => 'Nmake15.exe /o > nul',
+ check_for => 'Nmake.exe',
+ remove => 1,
+ );
+
+ if (!$rv) {
+ die <<'END_MESSAGE';
+
+-------------------------------------------------------------------------------
+
+Since you are using Microsoft Windows, you will need the 'nmake' utility
+before installation. It's available at:
+
+ http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
+ or
+ ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe
+
+Please download the file manually, save it to a directory in %PATH% (e.g.
+C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to
+that directory, and run "Nmake15.exe" from there; that will create the
+'nmake.exe' file needed by this module.
+
+You may then resume the installation process described in README.
+
+-------------------------------------------------------------------------------
+END_MESSAGE
+ }
+}
+
+1;
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/WriteAll.pm b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/WriteAll.pm
new file mode 100644
index 0000000..078797c
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/inc/Module/Install/WriteAll.pm
@@ -0,0 +1,43 @@
+#line 1
+package Module::Install::WriteAll;
+
+use strict;
+use Module::Install::Base;
+
+use vars qw{$VERSION $ISCORE @ISA};
+BEGIN {
+ $VERSION = '0.68';
+ $ISCORE = 1;
+ @ISA = qw{Module::Install::Base};
+}
+
+sub WriteAll {
+ my $self = shift;
+ my %args = (
+ meta => 1,
+ sign => 0,
+ inline => 0,
+ check_nmake => 1,
+ @_
+ );
+
+ $self->sign(1) if $args{sign};
+ $self->Meta->write if $args{meta};
+ $self->admin->WriteAll(%args) if $self->is_admin;
+
+ if ( $0 =~ /Build.PL$/i ) {
+ $self->Build->write;
+ } else {
+ $self->check_nmake if $args{check_nmake};
+ unless ( $self->makemaker_args->{'PL_FILES'} ) {
+ $self->makemaker_args( PL_FILES => {} );
+ }
+ if ($args{inline}) {
+ $self->Inline->write;
+ } else {
+ $self->Makefile->write;
+ }
+ }
+}
+
+1;
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/lib/Unicode/EastAsianWidth.pm b/tp/maintain/lib/Unicode-EastAsianWidth/lib/Unicode/EastAsianWidth.pm
new file mode 100644
index 0000000..5abdce5
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/lib/Unicode/EastAsianWidth.pm
@@ -0,0 +1,516 @@
+package Unicode::EastAsianWidth;
+
+use 5.006;
+use strict;
+use base 'Exporter';
+use vars qw( $VERSION $EastAsian );
+
+BEGIN {
+ $VERSION = '1.30';
+ $EastAsian = 0;
+};
+
+sub InFullwidth {
+ return InEastAsianFullwidth().
+ InEastAsianWide().
+ ($EastAsian ? InEastAsianAmbiguous() : '');
+}
+
+sub InHalfwidth {
+ return InEastAsianHalfwidth().
+ InEastAsianNarrow().
+ InEastAsianNeutral().
+ ($EastAsian ? '' : InEastAsianAmbiguous());
+}
+
+### BEGIN ###
+our @EXPORT = qw(
+InEastAsianAmbiguous
+InEastAsianFullwidth
+InEastAsianHalfwidth
+InEastAsianNarrow
+InEastAsianNeutral
+InEastAsianWide
+InFullwidth
+InHalfwidth
+);
+
+sub InEastAsianAmbiguous {
+ return <<"END";
+00A1\t00A1
+00A4\t00A4
+00A7\t00A8
+00AA\t00AA
+00AD\t00AE
+00B0\t00B4
+00B6\t00BA
+00BC\t00BF
+00C6\t00C6
+00D0\t00D0
+00D7\t00D8
+00DE\t00E1
+00E6\t00E6
+00E8\t00EA
+00EC\t00ED
+00F0\t00F0
+00F2\t00F3
+00F7\t00FA
+00FC\t00FC
+00FE\t00FE
+0101\t0101
+0111\t0111
+0113\t0113
+011B\t011B
+0126\t0127
+012B\t012B
+0131\t0133
+0138\t0138
+013F\t0142
+0144\t0144
+0148\t014B
+014D\t014D
+0152\t0153
+0166\t0167
+016B\t016B
+01CE\t01CE
+01D0\t01D0
+01D2\t01D2
+01D4\t01D4
+01D6\t01D6
+01D8\t01D8
+01DA\t01DA
+01DC\t01DC
+0251\t0251
+0261\t0261
+02C4\t02C4
+02C7\t02C7
+02C9\t02CB
+02CD\t02CD
+02D0\t02D0
+02D8\t02DB
+02DD\t02DD
+02DF\t02DF
+0300\t036F
+0391\t03A9
+03B1\t03C1
+03C3\t03C9
+0401\t0401
+0410\t044F
+0451\t0451
+2010\t2010
+2013\t2016
+2018\t2019
+201C\t201D
+2020\t2022
+2024\t2027
+2030\t2030
+2032\t2033
+2035\t2035
+203B\t203B
+203E\t203E
+2074\t2074
+207F\t207F
+2081\t2084
+20AC\t20AC
+2103\t2103
+2105\t2105
+2109\t2109
+2113\t2113
+2116\t2116
+2121\t2122
+2126\t2126
+212B\t212B
+2153\t2154
+215B\t215E
+2160\t216B
+2170\t2179
+2190\t2199
+21B8\t21B9
+21D2\t21D2
+21D4\t21D4
+21E7\t21E7
+2200\t2200
+2202\t2203
+2207\t2208
+220B\t220B
+220F\t220F
+2211\t2211
+2215\t2215
+221A\t221A
+221D\t2220
+2223\t2223
+2225\t2225
+2227\t222C
+222E\t222E
+2234\t2237
+223C\t223D
+2248\t2248
+224C\t224C
+2252\t2252
+2260\t2261
+2264\t2267
+226A\t226B
+226E\t226F
+2282\t2283
+2286\t2287
+2295\t2295
+2299\t2299
+22A5\t22A5
+22BF\t22BF
+2312\t2312
+2460\t24E9
+24EB\t254B
+2550\t2573
+2580\t258F
+2592\t2595
+25A0\t25A1
+25A3\t25A9
+25B2\t25B3
+25B6\t25B7
+25BC\t25BD
+25C0\t25C1
+25C6\t25C8
+25CB\t25CB
+25CE\t25D1
+25E2\t25E5
+25EF\t25EF
+2605\t2606
+2609\t2609
+260E\t260F
+2614\t2615
+261C\t261C
+261E\t261E
+2640\t2640
+2642\t2642
+2660\t2661
+2663\t2665
+2667\t266A
+266C\t266D
+266F\t266F
+273D\t273D
+2776\t277F
+E000\tF8FF
+FE00\tFE0F
+FFFD\tFFFD
+E0100\tE01EF
+F0000\tFFFFD
+100000\t10FFFD
+END
+}
+
+sub InEastAsianFullwidth {
+ return <<"END";
+3000\t3000
+FF01\tFF60
+FFE0\tFFE6
+END
+}
+
+sub InEastAsianHalfwidth {
+ return <<"END";
+20A9\t20A9
+FF61\tFFDC
+FFE8\tFFEE
+END
+}
+
+sub InEastAsianNarrow {
+ return <<"END";
+0020\t007E
+00A2\t00A3
+00A5\t00A6
+00AC\t00AC
+00AF\t00AF
+27E6\t27EB
+2985\t2986
+END
+}
+
+sub InEastAsianNeutral {
+ return <<"END";
+0000\t001F
+007F\t00A0
+00A9\t00A9
+00AB\t00AB
+00B5\t00B5
+00BB\t00BB
+00C0\t00C5
+00C7\t00CF
+00D1\t00D6
+00D9\t00DD
+00E2\t00E5
+00E7\t00E7
+00EB\t00EB
+00EE\t00EF
+00F1\t00F1
+00F4\t00F6
+00FB\t00FB
+00FD\t00FD
+00FF\t0100
+0102\t0110
+0112\t0112
+0114\t011A
+011C\t0125
+0128\t012A
+012C\t0130
+0134\t0137
+0139\t013E
+0143\t0143
+0145\t0147
+014C\t014C
+014E\t0151
+0154\t0165
+0168\t016A
+016C\t01CD
+01CF\t01CF
+01D1\t01D1
+01D3\t01D3
+01D5\t01D5
+01D7\t01D7
+01D9\t01D9
+01DB\t01DB
+01DD\t0250
+0252\t0260
+0262\t02C3
+02C5\t02C6
+02C8\t02C8
+02CC\t02CC
+02CE\t02CF
+02D1\t02D7
+02DC\t02DC
+02DE\t02DE
+02E0\t02FF
+0374\t0390
+03AA\t03B0
+03C2\t03C2
+03CA\t0400
+0402\t040F
+0450\t0450
+0452\t10FC
+1160\t200F
+2011\t2012
+2017\t2017
+201A\t201B
+201E\t201F
+2023\t2023
+2028\t202F
+2031\t2031
+2034\t2034
+2036\t203A
+203C\t203D
+203F\t2071
+2075\t207E
+2080\t2080
+2085\t20A8
+20AA\t20AB
+20AD\t2102
+2104\t2104
+2106\t2108
+210A\t2112
+2114\t2115
+2117\t2120
+2123\t2125
+2127\t212A
+212C\t214E
+2155\t215A
+215F\t215F
+216C\t216F
+217A\t2184
+219A\t21B7
+21BA\t21D1
+21D3\t21D3
+21D5\t21E6
+21E8\t21FF
+2201\t2201
+2204\t2206
+2209\t220A
+220C\t220E
+2210\t2210
+2212\t2214
+2216\t2219
+221B\t221C
+2221\t2222
+2224\t2224
+2226\t2226
+222D\t222D
+222F\t2233
+2238\t223B
+223E\t2247
+2249\t224B
+224D\t2251
+2253\t225F
+2262\t2263
+2268\t2269
+226C\t226D
+2270\t2281
+2284\t2285
+2288\t2294
+2296\t2298
+229A\t22A4
+22A6\t22BE
+22C0\t2311
+2313\t2328
+232B\t244A
+24EA\t24EA
+254C\t254F
+2574\t257F
+2590\t2591
+2596\t259F
+25A2\t25A2
+25AA\t25B1
+25B4\t25B5
+25B8\t25BB
+25BE\t25BF
+25C2\t25C5
+25C9\t25CA
+25CC\t25CD
+25D2\t25E1
+25E6\t25EE
+25F0\t2604
+2607\t2608
+260A\t260D
+2610\t2613
+2616\t261B
+261D\t261D
+261F\t263F
+2641\t2641
+2643\t265F
+2662\t2662
+2666\t2666
+266B\t266B
+266E\t266E
+2670\t273C
+273E\t2775
+2780\t27E5
+27F0\t2984
+2987\t2E1D
+303F\t303F
+4DC0\t4DFF
+A700\tA877
+D800\tDB7F
+DB80\tDBFF
+DC00\tDFFF
+FB00\tFDFD
+FE20\tFE23
+FE70\tFEFF
+FFF9\tFFFC
+10000\t1D7FF
+E0001\tE007F
+END
+}
+
+sub InEastAsianWide {
+ return <<"END";
+1100\t115F
+2329\t232A
+2E80\t2FFB
+3001\t303E
+3041\t33FF
+3400\t4DB5
+4E00\t9FBB
+A000\tA4C6
+AC00\tD7A3
+F900\tFAD9
+FE10\tFE19
+FE30\tFE6B
+20000\t2A6D6
+2A6D7\t2F7FF
+2F800\t2FA1D
+2FA1E\t2FFFD
+30000\t3FFFD
+END
+}
+
+### END ###
+
+1;
+
+__END__
+
+=head1 NAME
+
+Unicode::EastAsianWidth - East Asian Width properties
+
+=head1 VERSION
+
+This document describes version 1.10 of Unicode::EastAsianWidth,
+released October 14, 2007.
+
+=head1 SYNOPSIS
+
+ use Unicode::EastAsianWidth;
+
+ $_ = chr(0x2010); # HYPHEN, an ambiguous-width character
+
+ /\p{InEastAsianAmbiguous}/; # True
+ /\p{InFullwidth}/; # False
+
+ {
+ local $Unicode::EastAsianWidth::EastAsian = 1;
+ /\p{InFullwidth}/; # True (this only works on Perl 5.8+)
+ }
+
+=head1 DESCRIPTION
+
+This module provide user-defined Unicode properties that deal with
+East Asian characters' width status, as specified in
+L<http://www.unicode.org/unicode/reports/tr11/>.
+
+It exports the following functions to the caller's scope, to be
+used by Perl's Unicode matching system: C<InEastAsianFullwidth>,
+C<InEastAsianHalfwidth>, C<InEastAsianAmbiguous>, C<InEastAsianNarrow>
+C<InEastAsianWide>, C<InEastAsianNeutral>.
+
+In accord to TR11 cited above, two additional context-sensitive properties
+are exported: C<InFullwidth> (union of C<Fullwidth> and C<Wide>) and
+C<InHalfwidth> (union of C<Halfwidth>, C<Narrow> and C<Neutral>).
+
+I<Ambiguous> characters are treated by default as part of
+C<InHalfwidth>, but you can modify this behaviour by assigning
+a true value to C<$Unicode::EastAsianWidth::EastAsian>.
+
+=head1 CAVEATS
+
+Setting C<$Unicode::EastAsianWidth::EastAsian> at run-time only
+works on Perl version 5.8 or above. Perl 5.6 users must use
+a BEGIN block to set it before the C<use> statement:
+
+ BEGIN { $Unicode::EastAsianWidth::EastAsian = 1 }
+ use Unicode::EastAsianWidth;
+
+=head1 SEE ALSO
+
+L<perlunicode>,
+L<http://www.unicode.org/unicode/reports/tr11/>
+
+=head1 AUTHORS
+
+Audrey Tang E<lt>cpan@audreyt.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2002, 2003, 2007, 2008 by Audrey Tang E<lt>cpan@audreyt.orgE<gt>.
+
+This software is released under the MIT license cited below.
+
+=head2 The "MIT" License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+=cut
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/t/0-signature.t b/tp/maintain/lib/Unicode-EastAsianWidth/t/0-signature.t
new file mode 100644
index 0000000..c70c4a3
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/t/0-signature.t
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+
+use strict;
+print "1..1\n";
+
+if (!$ENV{TEST_SIGNATURE}) {
+ print "ok 1 # skip set the environment variable TEST_SIGNATURE to enable this test\n";
+}
+elsif (!-s 'SIGNATURE') {
+ print "ok 1 # skip No signature file found\n";
+}
+elsif (!eval { require Module::Signature; 1 }) {
+ print "ok 1 # skip ",
+ "Next time around, consider install Module::Signature, ",
+ "so you can verify the integrity of this distribution.\n";
+}
+elsif (!eval { require Socket; Socket::inet_aton('pgp.mit.edu') }) {
+ print "ok 1 # skip ",
+ "Cannot connect to the keyserver\n";
+}
+else {
+ (Module::Signature::verify() == Module::Signature::SIGNATURE_OK())
+ or print "not ";
+ print "ok 1 # Valid signature\n";
+}
+
+__END__
diff --git a/tp/maintain/lib/Unicode-EastAsianWidth/t/1-basic.t b/tp/maintain/lib/Unicode-EastAsianWidth/t/1-basic.t
new file mode 100644
index 0000000..ad3634c
--- /dev/null
+++ b/tp/maintain/lib/Unicode-EastAsianWidth/t/1-basic.t
@@ -0,0 +1,30 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Test;
+
+BEGIN { plan tests => (($] >= 5.008) ? 8 : 7) }
+
+use Unicode::EastAsianWidth;
+
+ok(Unicode::EastAsianWidth->VERSION);
+
+$_ = chr(0x2010);
+ok(/\p{InEastAsianAmbiguous}/);
+ok(!/\p{InFullwidth}/);
+
+if ($] >= 5.008) {
+ no warnings 'once';
+ local $Unicode::EastAsianWidth::EastAsian = 1;
+ ok(/\p{InFullwidth}/);
+}
+
+$_ = chr(0x4E00);
+ok(/\p{InFullwidth}/);
+ok(!/\p{InEastAsianAmbiguous}/);
+
+$_ = chr(0xFF02);
+ok(/\p{InFullwidth}/);
+ok(!/\p{InEastAsianAmbiguous}/);
+
+__END__
diff --git a/tp/maintain/lib/libintl-perl/COPYING.LESSER b/tp/maintain/lib/libintl-perl/COPYING.LESSER
new file mode 100755
index 0000000..c4792dd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/COPYING.LESSER
@@ -0,0 +1,515 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+^L
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+^L
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+^L
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+^L
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+^L
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+^L
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+^L
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+^L
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it
+does.>
+ Copyright (C) <year> <name of author>
+
+ This 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 of the License, or (at your option) any later version.
+
+ This 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 this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper
+mail.
+
+You should also get your employer (if you work as a programmer) or
+your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/tp/maintain/lib/libintl-perl/ChangeLog b/tp/maintain/lib/libintl-perl/ChangeLog
new file mode 100644
index 0000000..f9b6e42
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/ChangeLog
@@ -0,0 +1,2894 @@
+ 2009-06-29 Guido Flohr <guido@imperia.net>
+
+ * NEWS: News for 1.20.
+
+ * Credits, ReleaseNotes: Copied from THANKS and NEWS.
+
+ * THANKS: David Cantrell was very helpful finding the reason for a nasty test
+ failure.
+
+ * test.pl: Do not run XS tests for systems without a German locale. That
+ should be more flexible, but in fact, most bugs in the XS version can only be
+ worked around, not fixed. Therefore it is not that important.
+
+ * .gitignore: Ignore more files.
+
+ * x-changelog.sh: ChangeLog generation no longer done with cvs2cl. Until
+ something decent pops up, I will use the gitlog2changelog script from
+ http://github.com/cryos/avogadro/blob/master/scripts/gitlog2changelog.py.
+
+ 2009-06-24 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, tests/03_tester_david_pp.t, tests/03_tester_david_xs.t: Try to
+ get a little bit mroe information about the strange failure of the new
+ context functions.
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t,
+ tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dcngettext_pp.t,
+ tests/03dcngettext_xs.t, tests/03dcnpgettext_pp.t, tests/03dcnpgettext_xs.t,
+ tests/03dcpgettext_pp.t, tests/03dcpgettext_xs.t, tests/03dgettext_pp.t,
+ tests/03dgettext_xs.t, tests/03dngettext_pp.t, tests/03dngettext_xs.t,
+ tests/03dnpgettext_pp.t, tests/03dnpgettext_xs.t, tests/03dpgettext_pp.t,
+ tests/03dpgettext_xs.t, tests/03gettext_pp.t, tests/03gettext_xs.t,
+ tests/03language_pp.t, tests/03ngettext_pp.t, tests/03ngettext_xs.t,
+ tests/03npgettext_pp.t, tests/03npgettext_xs.t, tests/03pgettext_pp.t,
+ tests/03pgettext_xs.t, tests/03textdomain_pp.t, tests/03textdomain_xs.t: - do
+ not skip that many tests - use two-argument version of Test::ok() and
+ Test::skip() - correct order of expected and actual value
+
+ * tests/03dcgettext_pp.t, tests/03dcgettext_xs.t: - Do not skip that many
+ tests. - Use two argument form of Test::ok().
+
+ * tests/03bindtextdomain_pp.t, tests/03bindtextdomain_xs.t: Fixed number of
+ tests.
+
+ * tests/03bindtextdomain_pp.t, tests/03bindtextdomain_xs.t: Better structure
+ for test results.
+
+ * tests/03bind_textdomain_filter_pp.t, tests/03bind_textdomain_filter_xs.t:
+ Use two argument form of Test::ok().
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t:
+ - do not skip that many tests - use two argument form of Test::ok()
+
+ * tests/03dgettext_xs.t: Copied from pure Perl version.
+
+ 2009-06-24 root <root@perl64-dev.imperia.net>
+
+ * tests/03dcngettext_pp.t, tests/03dcngettext_xs.t, tests/03dngettext_pp.t,
+ tests/03dngettext_xs.t, tests/03ngettext_pp.t, tests/03ngettext_xs.t: Fixed
+ warning about undefined values in subroutine entry if locale de_AT is not
+ installed on the system that runs the test.
+
+ * Makefile.PL: $Config{libs} may include too many libraries (fixes compile
+ problems on broken Debian systems).
+
+ 2009-06-23 Guido Flohr <guido@imperia.net>
+
+ * META.yml, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: Version number
+ increased to 1.20.
+
+ 2009-06-19 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: Re-generated.
+
+ * META.yml: Version number 1.19.
+
+ * ChangeLog: Re-generated.
+
+ * Credits, FAQ, ReleaseNotes, THANKS, lib/Locale/Recode/_Aliases.pm,
+ lib/Locale/Recode/_Conversions.pm, lib/Locale/gettext_xs.pod,
+ lib/Locale/libintlFAQ.pod, sample/simplecal/Makefile.PL, test.pl: Id
+ expansion.
+
+ * gettext_xs/Makefile.PL, gettext_xs/gettext_xs.xs: Id expansion.
+
+ * MANIFEST.SKIP: Git files.
+
+ * lib/Locale/Messages.pm, lib/Locale/POFile.pm, lib/Locale/Recode.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/Util.pm, lib/Locale/gettext_pp.pm: Id
+ expansion.
+
+ * lib/Locale/RecodeData/ASMO_449.pm, lib/Locale/RecodeData/ATARI_ST.pm,
+ lib/Locale/RecodeData/ATARI_ST_EURO.pm, lib/Locale/RecodeData/CP10007.pm,
+ lib/Locale/RecodeData/CP1250.pm, lib/Locale/RecodeData/CP1251.pm,
+ lib/Locale/RecodeData/CP1252.pm, lib/Locale/RecodeData/CP1253.pm,
+ lib/Locale/RecodeData/CP1254.pm, lib/Locale/RecodeData/CP1256.pm,
+ lib/Locale/RecodeData/CP1257.pm, lib/Locale/RecodeData/CSN_369103.pm,
+ lib/Locale/RecodeData/CWI.pm, lib/Locale/RecodeData/DEC_MCS.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_10.pm, lib/Locale/RecodeData/ISO_8859_11.pm,
+ lib/Locale/RecodeData/ISO_8859_13.pm, lib/Locale/RecodeData/ISO_8859_14.pm,
+ lib/Locale/RecodeData/ISO_8859_15.pm, lib/Locale/RecodeData/ISO_8859_16.pm,
+ lib/Locale/RecodeData/ISO_8859_2.pm, lib/Locale/RecodeData/ISO_8859_3.pm,
+ lib/Locale/RecodeData/ISO_8859_4.pm, lib/Locale/RecodeData/ISO_8859_5.pm,
+ lib/Locale/RecodeData/ISO_8859_6.pm, lib/Locale/RecodeData/ISO_8859_7.pm,
+ lib/Locale/RecodeData/ISO_8859_8.pm, lib/Locale/RecodeData/ISO_8859_9.pm,
+ lib/Locale/RecodeData/KOI8_R.pm, lib/Locale/RecodeData/KOI8_RU.pm,
+ lib/Locale/RecodeData/KOI8_T.pm, lib/Locale/RecodeData/KOI8_U.pm,
+ lib/Locale/RecodeData/KOI_8.pm, lib/Locale/RecodeData/LATIN_GREEK.pm,
+ lib/Locale/RecodeData/LATIN_GREEK_1.pm, lib/Locale/RecodeData/MACARABIC.pm,
+ lib/Locale/RecodeData/MACCROATIAN.pm, lib/Locale/RecodeData/MACCYRILLIC.pm,
+ lib/Locale/RecodeData/MACGREEK.pm, lib/Locale/RecodeData/MACHEBREW.pm,
+ lib/Locale/RecodeData/MACICELAND.pm, lib/Locale/RecodeData/MACINTOSH.pm,
+ lib/Locale/RecodeData/MACROMANIA.pm, lib/Locale/RecodeData/MACTHAI.pm,
+ lib/Locale/RecodeData/MACTURKISH.pm, lib/Locale/RecodeData/MACUKRAINE.pm,
+ lib/Locale/RecodeData/MAC_IS.pm, lib/Locale/RecodeData/MAC_SAMI.pm,
+ lib/Locale/RecodeData/MAC_UK.pm, lib/Locale/RecodeData/NATS_DANO.pm,
+ lib/Locale/RecodeData/NATS_SEFI.pm, lib/Locale/RecodeData/NEXTSTEP.pm,
+ lib/Locale/RecodeData/SAMI_WS2.pm, lib/Locale/RecodeData/TIS_620.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm: Id expansion.
+
+ * NEWS: Updated.
+
+ * gettext_xs/gettext_xs.pm: LC_MESSAGES is not defined by POSIX.pm.
+
+ 2009-06-15 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, lib/Locale/TextDomain.pm, tests/04scalar_noop.t: Fixed RT bug
+ #46471, noop functions in scalar context.
+
+ 2009-06-14 Guido Flohr <guido@imperia.net>
+
+ * Makefile.PL: Id expansion.
+
+ 2009-06-13 Guido Flohr <guido@imperia.net>
+
+ * README: Id expanded.
+
+ * .gitattributes: Expand Id tags.
+
+ 2009-06-12 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, README, lib/Locale/POFile.pm: Point to libintl-perl homepage.
+
+ * .gitignore, gettext_xs/.gitignore: Ignore files
+
+ 2009-05-29 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/libintlFAQ.pod: Explanation for the __'Hello' problem.
+
+ 2009-05-27 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: Bumped version number to
+ 1.19.
+
+ * sample/simplecal/po/Makefile: Fixed extraction of context (thanks to Kevin
+ Ryde).
+
+ 2009-05-26 Guido Flohr <guido@imperia.net>
+
+ * REFERENCES: Added IWL.
+
+ * ChangeLog: Re-generated.
+
+ * NEWS, ReleaseNotes: Updated.
+
+ * lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: Bumped version number to
+ 1.18.
+
+ * ChangeLog: Re-generated.
+
+ * NEWS, ReleaseNotes: Updated.
+
+ * lib/Locale/TextDomain.pm: Make PAUSE happy and leave the version number
+ here.
+
+ 2009-05-25 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: Re-generated.
+
+ * MANIFEST: Added search.cpan.org aliases for well-known GNU standards files.
+
+ * Makefile.PL: Create search.cpan.org aliases for well-known GNU standards
+ files.
+
+ * Credits, ReleaseNotes: Aliases for GNU standards files.
+
+ * NEWS: Updated.
+
+ * test.pl: Report version of Encode.pm (culprit in most failures).
+
+ * lib/Locale/Recode/_Conversions.pm: Macintosh encoding in Encode.pm is
+ seemingly unstable.
+
+ * TODO: LGPL 3?
+
+ * ChangeLog, Makefile.PL, gettext_xs/Makefile.PL, gettext_xs/gettext_xs.pm,
+ gettext_xs/gettext_xs.xs, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/Util.pm, lib/Locale/gettext_pp.pm, lib/Locale/gettext_xs.pod,
+ lib/Locale/libintlFAQ.pod, sample/simplecal/Makefile.PL, test.pl: Changed
+ copyright date.
+
+ * lib/Locale/TextDomain.pm: - Added N__p(). - Added N__np(). - Removed
+ N__xpn().
+
+ * MANIFEST: Added alpha notice to Locale::Util.
+
+ * sample/simplecal/po/Makefile: Also include contextual strings.
+
+ * lib/Locale/gettext_pp.pm: First release for new functions.
+
+ * lib/Locale/TextDomain.pm: Added first release for new functions.
+
+ * lib/Locale/Util.pm: Added alpha notice.
+
+ * lib/Locale/Util.pm: Added alpha notice.
+
+ * MANIFEST.SKIP: Added cover_db.
+
+ * NEWS: Spelling.
+
+ * THANKS: Kudos to Joshua for the context functions.
+
+ * lib/Locale/TextDomain.pm: Context example.
+
+ * lib/Locale/Messages.pm: More context examples.
+
+ * lib/Locale/TextDomain.pm: Avoid n't.
+
+ * lib/Locale/libintlFAQ.pod: Switch language for server applications.
+
+ * lib/Locale/gettext_pp.pm: Made code parsing the plural formula more robust.
+
+ 2008-11-19 Guido Flohr <guido@imperia.net>
+
+ * tests/po/additional.de.po: Fixed German translations.
+
+ 2008-11-19 Joshua Miller <unrtst@cpan.com>
+
+ * ChangeLog, MANIFEST, NEWS, lib/Locale/Messages.pm,
+ lib/Locale/TextDomain.pm, tests/03dcnpgettext_pp.t, tests/03dcnpgettext_xs.t,
+ tests/03dcpgettext_pp.t, tests/03dcpgettext_xs.t, tests/03dnpgettext_pp.t,
+ tests/03dnpgettext_xs.t, tests/03dpgettext_pp.t, tests/03dpgettext_xs.t,
+ tests/03npgettext_pp.t, tests/03npgettext_xs.t, tests/03pgettext_pp.t,
+ tests/03pgettext_xs.t, tests/LocaleData/de/LC_MESSAGES/additional.mo,
+ tests/LocaleData/de/LC_MESSAGES/existing.mo, tests/po/additional.de.po,
+ tests/po/existing.de.po: Completed support for contextual gettext calls.
+
+ * gettext_xs/gettext_xs.pm, gettext_xs/gettext_xs.xs,
+ lib/Locale/gettext_pp.pm, lib/Locale/gettext_xs.pod: pgettext, dpgettext,
+ dcpgettext, npgettext, dnpgettext, dcnpgettext,
+
+ * USERS: Updated with info for unrtst/Joshua Miller
+
+ 2008-07-18 Guido Flohr <guido@imperia.net>
+
+ * TODO, lib/Locale/Messages.pm: select_package() is not a class method
+ (reported by Sergei Vishenski).
+
+ 2008-05-28 Guido Flohr <guido@imperia.net>
+
+ * gettext_xs/Makefile.PL: We need both libraries, not just one of them.
+
+ 2007-07-03 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/TextDomain.pm: Corrected POD.
+
+ 2007-03-26 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog, MANIFEST.SKIP, META.yml, Makefile.PL, NEWS,
+ gettext_xs/Makefile.PL, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/Util.pm: Don't forget to actually set the cached locale.
+
+ 2007-02-11 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Util.pm: Filter out un-available languages.
+
+ * lib/Locale/Util.pm: Fixed POD error.
+
+ * lib/Locale/Util.pm: Restrict set of acceptable languages.
+
+ * lib/Locale/Util.pm: Removed erroneous source.
+
+ * lib/Locale/Util.pm: Updated default countries for languages.
+
+ 2007-02-08 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Util.pm: Fixed warnings about undefined values.
+
+ 2007-02-07 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Util.pm: Aliased loop variable was constant and read-online.
+
+ * lib/Locale/Util.pm: Extended search for correct locale required by FreeBSD.
+
+ * lib/Locale/Util.pm: Return information about actually selected locale in
+ set_web_locale().
+
+ 2007-02-06 Guido Flohr <guido@imperia.net>
+
+ * sample/simplecal/po/Makefile, sample/simplecal/po/PACKAGE: Strip leading
+ and trailing whitespace on TEXTDOMAIN variable.
+
+ * REFERENCES: New file.
+
+ * Makefile.PL: Remove build_xs in target "clean".
+
+ * MANIFEST, MANIFEST.SKIP: updated
+
+ * lib/Locale/Util.pm: New function set_web_locale().
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t,
+ tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dcngettext_pp.t,
+ tests/03dcngettext_xs.t, tests/03dgettext_pp.t, tests/03dngettext_pp.t,
+ tests/03dngettext_xs.t, tests/03gettext_pp.t, tests/03gettext_xs.t,
+ tests/03language_pp.t, tests/03ngettext_pp.t, tests/03ngettext_xs.t: Use
+ Locale::Util::set_locale() for more portable locale setting.
+
+ * lib/Locale/Util.pm: - avoid warnings - turned off debugging - clean-up
+
+ * lib/Locale/Util.pm: docs
+
+ * lib/Locale/Util.pm: - access to the locale cache - updated docs
+
+ * lib/Locale/Util.pm: Support for MS-DOS
+
+ * lib/Locale/Util.pm: half-implemented Windows version
+
+ * lib/Locale/Util.pm: safe locale setting for Unix
+
+ * tests/05parse_accept.t: new
+
+ * lib/Locale/Util.pm: work in progress
+
+ * README-oldversions: new
+
+ 2007-02-05 Guido Flohr <guido@imperia.net>
+
+ * sample/simplecal/po/PACKAGE: Hint to avoid trailing space
+
+ * lib/Locale/TextDomain.pm: interpolate filename and linenumber
+
+ 2007-02-02 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, lib/Locale/Messages.pm: avoid warning if textdomain is undef
+
+ * lib/Locale/TextDomain.pm: Try to detect incorrect usage of the tied gettext
+ hash.
+
+ 2007-01-24 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/TextDomain.pm: always make a copy of the list of search
+ directories
+
+ * FAQ, MANIFEST, lib/Locale/libintlFAQ.pod: podified FAQ
+
+ * x-changelog.sh: cvs2cl now expected in $PATH.
+
+ * FAQ: podify FAQ
+
+ * gettext_xs/gettext_xs.pm, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/gettext_pp.pm, test.pl: Updated copyright date
+
+ * README: changed name of license file to COPYING.LESSER
+
+ * NEWS: updated
+
+ * tests/04find_domain_bug.t: Skip test if require Austrian locale is not
+ available (thanks to Pascal Terjan for the hint).
+
+ * sample/simplecal/po/Makefile: added simple hash
+
+ 2005-11-18 Guido Flohr <guido@imperia.net>
+
+ * Makefile.PL: unlink "xs_disabled" with "make clean" (thanks to Peter
+ Eisentraut)
+
+ 2005-09-27 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: updated
+
+ * ChangeLog, NEWS: updated
+
+ * FAQ: minor revision
+
+ * META.yml, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: bumped version
+ number to 1.16
+
+ * gettext_xs/gettext_xs.pm, gettext_xs/gettext_xs.xs: allow call to
+ textdomain without argument
+
+ * test.pl: fixed typo that prevented xs tests from being run
+
+ * lib/Locale/Messages.pm, tests/03bind_textdomain_filter_pp.t,
+ tests/03bind_textdomain_filter_xs.t: refactoring: change argument order for
+ callback
+
+ * lib/Locale/Messages.pm: implemented turn_utf_8_on()
+
+ * lib/Locale/Messages.pm, tests/03bind_textdomain_filter_pp.t,
+ tests/03bind_textdomain_filter_xs.t: added function bind_textdomain_filter
+
+ * FAQ: minor changes
+
+ * THANKS: grammar
+
+ * MANIFEST, TODO: updated
+
+ * FAQ: added FAQ
+
+ 2005-08-31 Guido Flohr <guido@imperia.net>
+
+ * Makefile.PL, test.pl: avoid running tests for obsolete XS versions
+
+ * ChangeLog: updated
+
+ * NEWS: updated
+
+ * META.yml: bumped version number to 1.15
+
+ * lib/Locale/Messages.pm: - bug fix: Prevent users (for example the test
+ suite) from loading an obsolete XS version, although a version mismatch was
+ detected earlier - warnings about non-ascii message ids
+
+ * Makefile.PL: hint for the courageous Solaris user
+
+ * MANIFEST: Solaris ...
+
+ * README.solaris: Life is complicated under the sun, ain't it?
+
+ * Makefile.PL, gettext_xs/gettext_xs.xs: workaround for misconfigured
+ (Solaris) systems
+
+ * THANKS: updated
+
+ 2005-08-21 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST: removed all.pot from sample directory
+
+ * NEWS, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: bumped version
+ number to 1.15
+
+ * ChangeLog, TODO: updated
+
+ * sample/simplecal/po/org.imperia.simplecal.pot: re-generated
+
+ * sample/README: - updated, Perl support for gettext should now be standard
+
+ * lib/Locale/Messages.pm: added comment abouut 8 bit message ids
+
+ 2005-08-16 Guido Flohr <guido@imperia.net>
+
+ * sample/simplecal/po/all.pot: not needed
+
+ * sample/simplecal/po/de.po: msgid strings now come from libintl-perl, not
+ from Crypt::Twofish_PP
+
+ * sample/simplecal/po/de.mo: should not be included in CVS
+
+ * sample/simplecal/po/POTFILES.in: Reference the files from the correct
+ package.
+
+ * sample/simplecal/po/PACKAGE: new command line parameters for xgettext
+
+ 2005-08-11 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: re-generated
+
+ * META.yml: regenerated
+
+ * NEWS, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: bumped version
+ number to 1.14
+
+ * Makefile.PL: use correct linker flags
+
+ * ChangeLog: updated
+
+ 2005-08-10 Guido Flohr <guido@imperia.net>
+
+ * META.yml, lib/Locale/TextDomain.pm: bumped version number to 1.12
+
+ * README: added feedback section
+
+ * ChangeLog, MANIFEST: updated
+
+ * MANIFEST, NEWS, THANKS, TODO: updated
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t,
+ tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dcngettext_pp.t,
+ tests/03dcngettext_xs.t, tests/03dgettext_pp.t, tests/03dgettext_xs.t,
+ tests/03dngettext_pp.t, tests/03dngettext_xs.t, tests/03gettext_pp.t,
+ tests/03gettext_xs.t, tests/03language_pp.t, tests/03language_xs.t,
+ tests/03ngettext_pp.t, tests/03ngettext_xs.t: avoid failures because of
+ missing locale definitions
+
+ * lib/Locale/TextDomain.pm, tests/04find_domain_bug.t: allow to switch
+ languages (thanks to Jan Kratochvil for the hint)
+
+ * tests/LocaleData/de/LC_MESSAGES/existing.mo,
+ tests/LocaleData/de_AT/LC_MESSAGES/existing.mo: regenerated
+
+ * tests/po/existing.de_AT.po: Austrians have their own version of February.
+
+ * tests/po/existing.de.po: added plural header
+
+ * THANKS: updated
+
+ * sample/README: clarifications for changing the language via environment
+ (solves issue https://rt.cpan.org/Ticket/Display.html?id=13957)
+
+ 2004-07-20 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/TextDomain.pm: default textdomain is now determined by
+ Locale::Messages::textdomain().
+
+ 2004-06-11 Guido Flohr <guido@imperia.net>
+
+ * META.yml, lib/Locale/Messages.pm, lib/Locale/TextDomain.pm: bumped version
+ number to 1.11
+
+ * lib/Locale/RecodeData/ASMO_449.pm, lib/Locale/RecodeData/ATARI_ST.pm,
+ lib/Locale/RecodeData/ATARI_ST_EURO.pm, lib/Locale/RecodeData/CP10007.pm,
+ lib/Locale/RecodeData/CP1250.pm, lib/Locale/RecodeData/CP1251.pm,
+ lib/Locale/RecodeData/CP1252.pm, lib/Locale/RecodeData/CP1253.pm,
+ lib/Locale/RecodeData/CP1254.pm, lib/Locale/RecodeData/CP1256.pm,
+ lib/Locale/RecodeData/CP1257.pm, lib/Locale/RecodeData/CSN_369103.pm,
+ lib/Locale/RecodeData/CWI.pm, lib/Locale/RecodeData/DEC_MCS.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm: added proper headlines for manual pages
+
+ * lib/Locale/TextDomain.pm: - add default directories /usr/share/locale resp.
+ /usr/local/share/locale to search path if they exist (reported by Cao
+ Hongija) - changed default textdomain to 'messages' - fixed warning that
+ occured when the import() method is not properly called
+
+ 2004-04-20 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/gettext_pp.pm, lib/Locale/gettext_xs.pod: fixed vim line
+
+ 2004-01-15 Guido Flohr <guido@imperia.net>
+
+ * sample/simplecal/po/Crypt-Twofish_PP.pot: Oops...
+
+ 2004-01-12 Guido Flohr <guido@imperia.net>
+
+ * META.yml: removed dynamic_config (not recognized?)
+
+ * META.yml: added dynamic_config
+
+ * README.win32: added statement by Bruno Haible regarding MSVC 7.0
+
+ * MANIFEST: added README.win32
+
+ * README.win32: new
+
+ * lib/Locale/Messages.pm: fixed typo
+
+ * ChangeLog, META.yml, NEWS, lib/Locale/Messages.pm,
+ lib/Locale/TextDomain.pm: bumped version number to 1.10
+
+ * tests/03language_pp.t, tests/03language_xs.t: $LANG must be set in
+ environment with $LANGUAGE
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t:
+ use nl_putenv(), not %ENV
+
+ * gettext_xs/gettext_xs.xs: - fixed prototype for _nl_putenv - use _putenv()
+ instead of putenv() (educated guess)
+
+ * MANIFEST: updated
+
+ * COPYING.LESSER, COPYING.LIB: renamed COPYING.LIB to COPYING.LESSER to
+ prevent deletion for make clean
+
+ 2004-01-08 Guido Flohr <guido@imperia.net>
+
+ * tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dcngettext_pp.t,
+ tests/03dcngettext_xs.t, tests/03dgettext_pp.t, tests/03dgettext_xs.t,
+ tests/03dngettext_pp.t, tests/03dngettext_xs.t, tests/03gettext_pp.t,
+ tests/03gettext_xs.t, tests/03language_pp.t, tests/03language_xs.t,
+ tests/03ngettext_pp.t, tests/03ngettext_xs.t: compatibility tweaks for
+ MS-DOS, use nl_putenv instead of %ENV
+
+ * lib/Locale/gettext_pp.pm: fixed another typo
+
+ * gettext_xs/gettext_xs.pm, lib/Locale/gettext_pp.pm: fixed typo
+
+ * META.yml, Makefile.PL: File::Spec required again
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t,
+ tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dcngettext_pp.t,
+ tests/03dcngettext_xs.t, tests/03dgettext_pp.t, tests/03dgettext_xs.t,
+ tests/03dngettext_pp.t, tests/03dngettext_xs.t, tests/03gettext_pp.t,
+ tests/03gettext_xs.t, tests/03language_pp.t, tests/03language_xs.t,
+ tests/03ngettext_pp.t, tests/03ngettext_xs.t: - let bindtextdomain() take
+ care of normalized paths - compare normalized paths
+
+ * tests/03bind_textdomain_codeset_pp.t, tests/03bind_textdomain_codeset_xs.t,
+ tests/03dcngettext_pp.t, tests/03dcngettext_xs.t, tests/03dgettext_pp.t,
+ tests/03dngettext_pp.t, tests/03dngettext_xs.t, tests/03gettext_pp.t,
+ tests/03gettext_xs.t, tests/03ngettext_pp.t, tests/03ngettext_xs.t: do not
+ use hard-coded locale identifiers in calls to setlocale()
+
+ * tests/03dcgettext_pp.t, tests/03dcgettext_xs.t, tests/03dgettext_xs.t,
+ tests/03gettext_pp.t, tests/03gettext_xs.t, tests/03language_pp.t,
+ tests/03language_xs.t: set OUTPUT_CHARSET for compatibility
+
+ * MANIFEST: added META.yml
+
+ * META.yml: new
+
+ * Makefile.PL, gettext_xs/Makefile.PL, gettext_xs/gettext_xs.pm,
+ gettext_xs/gettext_xs.xs, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/gettext_pp.pm, lib/Locale/gettext_xs.pod,
+ sample/simplecal/Makefile.PL, test.pl: Happy New Year!
+
+ * gettext_xs/Makefile.PL: File::Spec is required for the XS version
+
+ * gettext_xs/gettext_xs.pm, gettext_xs/gettext_xs.xs, lib/Locale/Messages.pm,
+ lib/Locale/gettext_pp.pm, lib/Locale/gettext_xs.pod: new function nl_putenv()
+ for MS-DOS ideosyncrasies
+
+ * Makefile.PL: do not require the variable _nl_domain_bindings for building
+ the XS version
+
+ * gettext_xs/gettext_xs.pm, gettext_xs/gettext_xs.xs: convert directory to
+ local convention for Locale::gettext_xs::bindtextdomain
+
+ 2004-01-02 Guido Flohr <guido@imperia.net>
+
+ * tests/po/Makefile: moved tests/locale to tests/LocaleData
+
+ * gettext_xs/gettext_xs.xs, tests/03bind_textdomain_codeset_pp.t,
+ tests/03bind_textdomain_codeset_xs.t, tests/03dcgettext_pp.t,
+ tests/03dcgettext_xs.t, tests/03dcngettext_pp.t, tests/03dcngettext_xs.t,
+ tests/03dgettext_pp.t, tests/03dgettext_xs.t, tests/03dngettext_pp.t,
+ tests/03dngettext_xs.t, tests/03gettext_pp.t, tests/03gettext_xs.t,
+ tests/03language_pp.t, tests/03language_xs.t, tests/03ngettext_pp.t,
+ tests/03ngettext_xs.t: compatibility tweaks
+
+ * MANIFEST, tests/03bind_textdomain_codeset_pp.t,
+ tests/03bind_textdomain_codeset_xs.t, tests/03dcgettext_pp.t,
+ tests/03dcgettext_xs.t, tests/03dcngettext_pp.t, tests/03dcngettext_xs.t,
+ tests/03dgettext_pp.t, tests/03dgettext_xs.t, tests/03dngettext_pp.t,
+ tests/03dngettext_xs.t, tests/03gettext_pp.t, tests/03gettext_xs.t,
+ tests/03language_pp.t, tests/03language_xs.t, tests/03ngettext_pp.t,
+ tests/03ngettext_xs.t: moved tests/locale to tests/LocaleData
+
+ 2003-12-29 Guido Flohr <guido@imperia.net>
+
+ * NEWS: updated
+
+ * ChangeLog: #re-generated
+
+ * NEWS: updated
+
+ * lib/Locale/TextDomain.pm: - fixed pod typo - bumped version number to 1.09
+
+ * lib/Locale/gettext_pp.pm: use user supplied locale name when guessing
+ character set
+
+ * lib/Locale/Messages.pm: check for correct XS version
+
+ * lib/Locale/Messages.pm: *** empty log message ***
+
+ 2003-12-23 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/RecodeData/ATARI_ST_EURO.pm, tests/02atari-st-euro.t: - various
+ corrections - newer Atari versions seem to place the euro sign at 0xde (not
+ 0xee), thanks to Jo-Even Skarstein and Gerhard Stoll for the information
+
+ * lib/Locale/RecodeData/ATARI_ST.pm, tests/02atari-st.t: various corrections
+
+ * sample/simplecal/MANIFEST: updated to new Makefile logic
+
+ 2003-11-30 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: #re-generated
+
+ * lib/Locale/TextDomain.pm: deleted reference to unwritten docs on
+ let.imperia.org
+
+ * ChangeLog: #re-generated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.08
+
+ * NEWS: updated
+
+ * MyInstall.pm: fixed bug #4512 on https://rt.cpan.org/
+
+ 2003-11-28 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # re-generated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.07
+
+ * BUGS, MANIFEST: removed BUGS (only known bug should be fixed now)
+
+ * NEWS: updated
+
+ * lib/Locale/gettext_pp.pm: - only call I18N::Langinfo methods for validated
+ locales - allow 'utf8' as an alias for charsets derived from locale ids
+
+ * Makefile.PL: redirect configure output to config.log
+
+ * lib/Locale/Messages.pm: export turn_utf_8_off()
+
+ * MyInstall.pm: removed debugging noise
+
+ 2003-11-24 Guido Flohr <guido@imperia.net>
+
+ * sample/simplecal/po/Crypt-Twofish_PP.pot, sample/simplecal/po/POTFILES.in,
+ sample/simplecal/po/de.mo, sample/simplecal/po/de.po: updated
+
+ * ChangeLog: # re-generated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.06
+
+ * lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/US_ASCII.pm:
+ added pod
+
+ * BUGS, NEWS: updated
+
+ * lib/Locale/gettext_pp.pm: avoid warning without I18N::Langinfo
+
+ * MANIFEST: updated
+
+ * sample/README: all package-dependent information now goes into one single
+ file PACKAGE
+
+ * Makefile.PL: do not include -liconv twice
+
+ * sample/simplecal/po/LINGUAS, sample/simplecal/po/Makefile,
+ sample/simplecal/po/PACKAGE, sample/simplecal/po/TEXTDOMAIN: put all
+ package-dependent information into single file PACKAGE
+
+ 2003-10-10 Guido Flohr <guido@imperia.net>
+
+ * gettext_xs/gettext_xs.xs, lib/Locale/Messages.pm: check for version match
+ (do not load stale XS versions at run-time)
+
+ * ChangeLog: # re-generated
+
+ * tests/03language_pp.t, tests/03language_xs.t: added
+
+ * ChangeLog: # re-generated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.05
+
+ * gettext_xs/Makefile.old: removed junk file
+
+ * Makefile.PL, NEWS: fixed compatibility problems with Solaris 8 and above
+
+ * MANIFEST: removed Artistic
+
+ * sample/README: fixed typo
+
+ * Artistic: obsolete
+
+ 2003-10-09 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # regenerated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.04
+
+ * MANIFEST.SKIP: updated
+
+ * NEWS: updated
+
+ * lib/Locale/gettext_pp.pm: - support for language chain syntax in $LANGUAGE
+ - performance tweaks
+
+ * sample/simplecal/README-NLS: clarification
+
+ * MANIFEST: support for language chains in $LANGUAGE
+
+ 2003-10-08 Guido Flohr <guido@imperia.net>
+
+ * NEWS: updated
+
+ * lib/Locale/Recode/_Conversions.pm: do not use Encode's iso-8859-11 (broken
+ in some Encode versions)
+
+ 2003-09-24 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: localize $@ with checks for availability of
+ I18N::Langinfo and POSIX::LC_MESSAGES
+
+ 2003-09-15 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: re-generated
+
+ * NEWS, lib/Locale/TextDomain.pm: bumped version number to 1.03
+
+ * MANIFEST, MANIFEST.SKIP, Makefile.PL, MyInstall.pm, NEWS, TODO, USERS,
+ gettest.c, gettext_xs/Makefile.PL, gettext_xs/Makefile.old,
+ gettext_xs/gettext_xs.pm, gettext_xs/gettext_xs.xs, lib/Locale/Messages.pm,
+ lib/Locale/TextDomain.pm, lib/Locale/gettext_xs.pod,
+ tests/03bind_textdomain_codeset.t, tests/03bind_textdomain_codeset_pp.t,
+ tests/03bind_textdomain_codeset_xs.t, tests/03bindtextdomain.t,
+ tests/03bindtextdomain_pp.t, tests/03bindtextdomain_xs.t,
+ tests/03dcgettext.t, tests/03dcgettext_pp.t, tests/03dcgettext_xs.t,
+ tests/03dcngettext.t, tests/03dcngettext_pp.t, tests/03dcngettext_xs.t,
+ tests/03dgettext.t, tests/03dgettext_pp.t, tests/03dgettext_xs.t,
+ tests/03dngettext.t, tests/03dngettext_pp.t, tests/03dngettext_xs.t,
+ tests/03gettext.t, tests/03gettext_pp.t, tests/03gettext_xs.t,
+ tests/03ngettext.t, tests/03ngettext_pp.t, tests/03ngettext_xs.t,
+ tests/03textdomain.t, tests/03textdomain_pp.t, tests/03textdomain_xs.t,
+ x-changelog.sh: alternative XS version
+
+ 2003-09-10 Guido Flohr <guido@imperia.net>
+
+ * gettest.c: test file for gettext support
+
+ * Makefile.PL, README, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/gettext_pp.pm, sample/simplecal/Makefile.PL, test.pl: - switched
+ from double license to single license (LGPL) in order to avoid licensing
+ problems - fixed POD
+
+ * tests/02iso-8859-11.t: workaround for broken Encode versions
+
+ * COPYING, COPYING.LIB, MANIFEST: changed from double license to single
+ license (LGPL)
+
+ 2003-09-07 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/RecodeData/US_ASCII.pm: removed second block of emacs vars
+
+ * lib/Locale/Messages.pm: pod errors
+
+ * TODO: updated
+
+ * sample/README: new section on informational files
+
+ * sample/simplecal/README-NLS, sample/simplecal/TRANSLATIONS: new
+
+ * sample/simplecal/po/Makefile: fixed invocation of xgettext
+
+ * Makefile.PL, test.pl: get rid of dependency on ExtUtils::Command::MM
+
+ 2003-09-04 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: removed double emacs var block
+
+ * ChangeLog: # re-generated
+
+ 2003-09-04 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: - removed obsolete line
+
+ 2003-09-04 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # re-generated
+
+ 2003-09-04 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: - untaint of plural header - Perl 5.005
+ compatibility
+
+ 2003-09-04 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # re-generated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.02
+
+ * BUGS, NEWS, TODO: updated
+
+ * tests/LocaleData/de_AT/LC_MESSAGES/additional.mo,
+ tests/po/additional.de_AT.po: added plural rules for de_AT to test catalog
+
+ * lib/Locale/gettext_pp.pm: compatibility with GNU gettext for systems w/o
+ /usr/share/locale
+
+ 2003-08-19 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # updated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.01
+
+ * README: deleted reference to README-MSDOS
+
+ * BUGS: bug report from cpan-testers
+
+ * Makefile.PL: requires ExtUtils::Command::MM for test wrapper
+
+ * lib/Locale/RecodeData/ISO_8859_11.pm, tests/02iso-8859-11.t,
+ tests/02tis-620.t: fixed ISO-8859-11 recoding
+
+ * tests/02iso-8859-11.t, tests/02tis-620.t: fixed Thai character sets
+
+ * MANIFEST, NEWS: updated/added
+
+ * README-MSDOS: obsolete
+
+ * test.pl: workaround for broken or limited shells to allow testing (thanks
+ to DH <crazyinsomniac@yahoo.com> for the hint)
+
+ * MANIFEST, t/po/Makefile, t/po/additional.de.po, t/po/additional.de_AT.po,
+ t/po/existing.de.po, t/po/existing.de_AT.po, tests/00gettext.t,
+ tests/00recode.t, tests/01trivial.t, tests/02asmo_449.t,
+ tests/02atari-st-euro.t, tests/02atari-st.t, tests/02cp10007.t,
+ tests/02cp1250.t, tests/02cp1251.t, tests/02cp1252.t, tests/02cp1253.t,
+ tests/02cp1254.t, tests/02cp1256.t, tests/02cp1257.t, tests/02csn_369103.t,
+ tests/02cwi.t, tests/02dec-mcs.t, tests/02ebcdic-at-de-a.t,
+ tests/02ebcdic-at-de.t, tests/02ebcdic-ca-fr.t, tests/02ebcdic-dk-no-a.t,
+ tests/02ebcdic-dk-no.t, tests/02ebcdic-es-a.t, tests/02ebcdic-es-s.t,
+ tests/02ebcdic-es.t, tests/02ebcdic-fi-se-a.t, tests/02ebcdic-fi-se.t,
+ tests/02ebcdic-fr.t, tests/02ebcdic-is-friss.t, tests/02ebcdic-it.t,
+ tests/02ebcdic-pt.t, tests/02ebcdic-uk.t, tests/02ebcdic-us.t,
+ tests/02ecma-cyrillic.t, tests/02georgian-academy.t, tests/02georgian-ps.t,
+ tests/02gost_19768-74.t, tests/02greek-ccitt.t, tests/02greek7-old.t,
+ tests/02greek7.t, tests/02hp-roman8.t, tests/02ibm037.t, tests/02ibm038.t,
+ tests/02ibm1004.t, tests/02ibm1026.t, tests/02ibm1047.t, tests/02ibm256.t,
+ tests/02ibm273.t, tests/02ibm274.t, tests/02ibm275.t, tests/02ibm277.t,
+ tests/02ibm278.t, tests/02ibm280.t, tests/02ibm281.t, tests/02ibm284.t,
+ tests/02ibm285.t, tests/02ibm290.t, tests/02ibm297.t, tests/02ibm420.t,
+ tests/02ibm423.t, tests/02ibm424.t, tests/02ibm437.t, tests/02ibm500.t,
+ tests/02ibm850.t, tests/02ibm851.t, tests/02ibm852.t, tests/02ibm855.t,
+ tests/02ibm857.t, tests/02ibm860.t, tests/02ibm861.t, tests/02ibm862.t,
+ tests/02ibm863.t, tests/02ibm864.t, tests/02ibm865.t, tests/02ibm866.t,
+ tests/02ibm868.t, tests/02ibm869.t, tests/02ibm870.t, tests/02ibm871.t,
+ tests/02ibm874.t, tests/02ibm875.t, tests/02ibm880.t, tests/02ibm891.t,
+ tests/02ibm903.t, tests/02ibm904.t, tests/02ibm905.t, tests/02ibm918.t,
+ tests/02iec_p27-1.t, tests/02inis-8.t, tests/02inis-cyrillic.t,
+ tests/02inis.t, tests/02iso-8859-1.t, tests/02iso-8859-10.t,
+ tests/02iso-8859-11.t, tests/02iso-8859-13.t, tests/02iso-8859-14.t,
+ tests/02iso-8859-15.t, tests/02iso-8859-16.t, tests/02iso-8859-2.t,
+ tests/02iso-8859-3.t, tests/02iso-8859-4.t, tests/02iso-8859-5.t,
+ tests/02iso-8859-6.t, tests/02iso-8859-7.t, tests/02iso-8859-8.t,
+ tests/02iso-8859-9.t, tests/02iso_10367-box.t, tests/02iso_2033-1983.t,
+ tests/02iso_5427-ext.t, tests/02iso_5427.t, tests/02iso_5428.t,
+ tests/02koi-8.t, tests/02koi8-r.t, tests/02koi8-ru.t, tests/02koi8-t.t,
+ tests/02koi8-u.t, tests/02latin-greek-1.t, tests/02latin-greek.t,
+ tests/02mac-is.t, tests/02mac-sami.t, tests/02mac-uk.t, tests/02macarabic.t,
+ tests/02maccroatian.t, tests/02maccyrillic.t, tests/02macgreek.t,
+ tests/02machebrew.t, tests/02maciceland.t, tests/02macintosh.t,
+ tests/02macromania.t, tests/02macthai.t, tests/02macturkish.t,
+ tests/02macukraine.t, tests/02nats-dano.t, tests/02nats-sefi.t,
+ tests/02nextstep.t, tests/02sami-ws2.t, tests/02tis-620.t,
+ tests/02us-ascii.t, tests/02utf-8.t, tests/02viscii.t,
+ tests/03bind_textdomain_codeset.t, tests/03bind_textdomain_codeset_pp.t,
+ tests/03bindtextdomain.t, tests/03bindtextdomain_pp.t, tests/03dcgettext.t,
+ tests/03dcgettext_pp.t, tests/03dcngettext.t, tests/03dcngettext_pp.t,
+ tests/03dgettext.t, tests/03dgettext_pp.t, tests/03dngettext.t,
+ tests/03dngettext_pp.t, tests/03gettext.t, tests/03gettext_pp.t,
+ tests/03ngettext.t, tests/03ngettext_pp.t, tests/03textdomain.t,
+ tests/03textdomain_pp.t, tests/LocaleData/de/LC_MESSAGES/additional.mo,
+ tests/LocaleData/de/LC_MESSAGES/existing.mo,
+ tests/LocaleData/de_AT/LC_MESSAGES/additional.mo,
+ tests/LocaleData/de_AT/LC_MESSAGES/existing.mo, tests/po/Makefile,
+ tests/po/additional.de.po, tests/po/additional.de_AT.po,
+ tests/po/existing.de.po, tests/po/existing.de_AT.po: - directory t/ moved to
+ tests/
+
+ * t/00gettext.t, t/00recode.t, t/01trivial.t, t/02asmo_449.t,
+ t/02atari-st-euro.t, t/02atari-st.t, t/02cp10007.t, t/02cp1250.t,
+ t/02cp1251.t, t/02cp1252.t, t/02cp1253.t, t/02cp1254.t, t/02cp1256.t,
+ t/02cp1257.t, t/02csn_369103.t, t/02cwi.t, t/02dec-mcs.t,
+ t/02ebcdic-at-de-a.t, t/02ebcdic-at-de.t, t/02ebcdic-ca-fr.t,
+ t/02ebcdic-dk-no-a.t, t/02ebcdic-dk-no.t, t/02ebcdic-es-a.t,
+ t/02ebcdic-es-s.t, t/02ebcdic-es.t, t/02ebcdic-fi-se-a.t, t/02ebcdic-fi-se.t,
+ t/02ebcdic-fr.t, t/02ebcdic-is-friss.t, t/02ebcdic-it.t, t/02ebcdic-pt.t,
+ t/02ebcdic-uk.t, t/02ebcdic-us.t, t/02ecma-cyrillic.t,
+ t/02georgian-academy.t, t/02georgian-ps.t, t/02gost_19768-74.t,
+ t/02greek-ccitt.t, t/02greek7-old.t, t/02greek7.t, t/02hp-roman8.t,
+ t/02ibm037.t, t/02ibm038.t, t/02ibm1004.t, t/02ibm1026.t, t/02ibm1047.t,
+ t/02ibm256.t, t/02ibm273.t, t/02ibm274.t, t/02ibm275.t, t/02ibm277.t,
+ t/02ibm278.t, t/02ibm280.t, t/02ibm281.t, t/02ibm284.t, t/02ibm285.t,
+ t/02ibm290.t, t/02ibm297.t, t/02ibm420.t, t/02ibm423.t, t/02ibm424.t,
+ t/02ibm437.t, t/02ibm500.t, t/02ibm850.t, t/02ibm851.t, t/02ibm852.t,
+ t/02ibm855.t, t/02ibm857.t, t/02ibm860.t, t/02ibm861.t, t/02ibm862.t,
+ t/02ibm863.t, t/02ibm864.t, t/02ibm865.t, t/02ibm866.t, t/02ibm868.t,
+ t/02ibm869.t, t/02ibm870.t, t/02ibm871.t, t/02ibm874.t, t/02ibm875.t,
+ t/02ibm880.t, t/02ibm891.t, t/02ibm903.t, t/02ibm904.t, t/02ibm905.t,
+ t/02ibm918.t, t/02iec_p27-1.t, t/02inis-8.t, t/02inis-cyrillic.t, t/02inis.t,
+ t/02iso-8859-1.t, t/02iso-8859-10.t, t/02iso-8859-11.t, t/02iso-8859-13.t,
+ t/02iso-8859-14.t, t/02iso-8859-15.t, t/02iso-8859-16.t, t/02iso-8859-2.t,
+ t/02iso-8859-3.t, t/02iso-8859-4.t, t/02iso-8859-5.t, t/02iso-8859-6.t,
+ t/02iso-8859-7.t, t/02iso-8859-8.t, t/02iso-8859-9.t, t/02iso_10367-box.t,
+ t/02iso_2033-1983.t, t/02iso_5427-ext.t, t/02iso_5427.t, t/02iso_5428.t,
+ t/02koi-8.t, t/02koi8-r.t, t/02koi8-ru.t, t/02koi8-t.t, t/02koi8-u.t,
+ t/02latin-greek-1.t, t/02latin-greek.t, t/02mac-is.t, t/02mac-sami.t,
+ t/02mac-uk.t, t/02macarabic.t, t/02maccroatian.t, t/02maccyrillic.t,
+ t/02macgreek.t, t/02machebrew.t, t/02maciceland.t, t/02macintosh.t,
+ t/02macromania.t, t/02macthai.t, t/02macturkish.t, t/02macukraine.t,
+ t/02nats-dano.t, t/02nats-sefi.t, t/02nextstep.t, t/02sami-ws2.t,
+ t/02tis-620.t, t/02us-ascii.t, t/02utf-8.t, t/02viscii.t,
+ t/03bind_textdomain_codeset.t, t/03bind_textdomain_codeset_pp.t,
+ t/03bindtextdomain.t, t/03bindtextdomain_pp.t, t/03dcgettext.t,
+ t/03dcgettext_pp.t, t/03dcngettext.t, t/03dcngettext_pp.t, t/03dgettext.t,
+ t/03dgettext_pp.t, t/03dngettext.t, t/03dngettext_pp.t, t/03gettext.t,
+ t/03gettext_pp.t, t/03ngettext.t, t/03ngettext_pp.t, t/03textdomain.t,
+ t/03textdomain_pp.t, t/locale/de/LC_MESSAGES/additional.mo,
+ t/locale/de/LC_MESSAGES/existing.mo,
+ t/locale/de_AT/LC_MESSAGES/additional.mo,
+ t/locale/de_AT/LC_MESSAGES/existing.mo: moved to directory tests
+
+ * lib/Locale/RecodeData/_Encode.pm: merged from norma branch
+
+ 2003-08-11 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/RecodeData/_Encode.pm: fixed pod typo (reported by Mike Castle
+ <dalgoda@ix.netcom.com>)
+
+ 2003-08-07 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/RecodeData/_Encode.pm: _recode must return a true value if
+ Encode::from_to returns 0
+
+ 2003-08-07 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # re-generated
+
+ * lib/Locale/gettext_pp.pm: renamed variables
+
+ * lib/Locale/TextDomain.pm: bumped version number to 1.00
+
+ * README, lib/Locale/Messages.pm, lib/Locale/Recode/_Aliases.pm,
+ lib/Locale/RecodeData.pm, sample/README: documentation tweaks
+
+ 2003-07-28 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # regenerated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 0.14
+
+ * README, sample/README: fixed web addresses
+
+ * ChangeLog: # re-generated
+
+ * sample/README, sample/simplecal/MANIFEST, sample/simplecal/Makefile.PL,
+ sample/simplecal/bin/simplecal.pl,
+ .../ar/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../ar_SA/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../de/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../de_AT/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../fr/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../ga/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../it/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../nl/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../pt/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../pt_BR/LC_MESSAGES/org.imperia.simplecal.mo,
+ .../ru/LC_MESSAGES/org.imperia.simplecal.mo,
+ sample/simplecal/lib/SimpleCal.pm, sample/simplecal/po/LINGUAS,
+ sample/simplecal/po/Makefile, sample/simplecal/po/POTFILES.in,
+ sample/simplecal/po/TEXTDOMAIN, sample/simplecal/po/all.pot,
+ sample/simplecal/po/ar.po, sample/simplecal/po/ar_SA.po,
+ sample/simplecal/po/de.po, sample/simplecal/po/de_AT.po,
+ sample/simplecal/po/fr.po, sample/simplecal/po/ga.po,
+ sample/simplecal/po/it.po, sample/simplecal/po/nl.po,
+ sample/simplecal/po/org.imperia.simplecal.pot, sample/simplecal/po/pt.po,
+ sample/simplecal/po/pt_BR.po, sample/simplecal/po/ru.po: added directory
+ sample with a self-containing example
+
+ * README: updated
+
+ * lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/RecodeData/_Encode.pm, lib/Locale/TextDomain.pm,
+ lib/Locale/gettext_pp.pm: # fixed Emacs variables
+
+ 2003-07-15 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # re-generated
+
+ * BUGS, MANIFEST, README, TODO: updated
+
+ * lib/Locale/TextDomain.pm: - changed placeholder format to {curlies} -
+ bumped version number to 0.13
+
+ 2003-07-14 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: # updated
+
+ * lib/Locale/gettext_pp.pm: early exit if no directories for catalogs exist
+
+ * ChangeLog: updated
+
+ * lib/Locale/Messages.pm: return converted string in utf8_off
+
+ 2003-07-14 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: syntax errors
+
+ * lib/Locale/Messages.pm, lib/Locale/gettext_pp.pm: performance tweaks
+
+ 2003-07-14 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/TextDomain.pm: fixed fatal typo
+
+ * lib/Locale/gettext_pp.pm: - use nl_langinfo() if available to determine
+ output charset - variable names
+
+ 2003-06-30 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Recode.pm: compatibility tweak, (SuSE rpm perl-5.8.0-104!)
+
+ 2003-06-27 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/Messages.pm: fixed pod error
+
+ * lib/Locale/gettext_pp.pm: fixed pod errors
+
+ 2003-06-27 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Recode.pm: fixed for new conversion interface
+
+ 2003-06-23 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: ChangeLog
+
+ * lib/Locale/gettext_pp.pm: *** empty log message ***
+
+ * ChangeLog: # updated
+
+ * lib/Locale/gettext_pp.pm: - avoid intermediate function calls - renamed
+ internal functions to initial values in order to avoid unintended
+ similarities to GNU implementation
+
+ * ChangeLog: updated
+
+ 2003-06-23 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/RecodeData/ASMO_449.pm, lib/Locale/RecodeData/ATARI_ST.pm,
+ lib/Locale/RecodeData/ATARI_ST_EURO.pm, lib/Locale/RecodeData/CP10007.pm,
+ lib/Locale/RecodeData/CP1250.pm, lib/Locale/RecodeData/CP1251.pm,
+ lib/Locale/RecodeData/CP1252.pm, lib/Locale/RecodeData/CP1253.pm,
+ lib/Locale/RecodeData/CP1254.pm, lib/Locale/RecodeData/CP1256.pm,
+ lib/Locale/RecodeData/CP1257.pm, lib/Locale/RecodeData/CSN_369103.pm,
+ lib/Locale/RecodeData/CWI.pm, lib/Locale/RecodeData/DEC_MCS.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_RU.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/NEXTSTEP.pm, lib/Locale/RecodeData/SAMI_WS2.pm,
+ lib/Locale/RecodeData/TIS_620.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm: - use
+ strict; moved up - no bare words after 'use base'
+
+ * lib/Locale/TextDomain.pm: fixed typo in pod
+
+ 2003-06-23 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/TextDomain.pm: leave undefined placeholders untouched
+
+ 2003-06-20 Guido Flohr <guido@imperia.net>
+
+ * ChangeLog: updated
+
+ * lib/Locale/TextDomain.pm: bumped version number to 0.11
+
+ * ChangeLog: new
+
+ * MANIFEST: - added ChangeLog - added KOI8-RU files
+
+ * MANIFEST.SKIP: also exclude x-shell scripts from distcheck
+
+ * lib/Locale/Messages.pm: always turn utf-8 flag off for messages
+
+ * lib/Locale/gettext_pp.pm: untaint the plural header code
+
+ * lib/Locale/gettext_pp.pm: avoid re-loading of message catalogs
+
+ 2003-06-16 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/Recode/_Conversions.pm: $optional_conversion may *only* contain
+ the preferred MIME names!
+
+ * lib/Locale/RecodeData/ISO_8859_1.pm: bugfix for Perl without Encode
+
+ * lib/Locale/RecodeData/US_ASCII.pm, t/02us-ascii.t: - now replaces with
+ Unicode replacement char 0xfffd - fixed test
+
+ * MANIFEST, MANIFEST.SKIP, Makefile.PL, lib/Locale/Messages.pm,
+ lib/Locale/Recode.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/TextDomain.pm, lib/Locale/gettext_pp.pm: - general clean-up -
+ added and fixed documentation - added MANIFEST.SKIP
+
+ * test-benchmark: removed unmaintained benchmark test
+
+ * lib/Locale/Recode/_Aliases.pm: general clean-up
+
+ * lib/Locale/RecodeData/ISO_IR_197.pm, lib/Locale/RecodeData/ISO_IR_209.pm,
+ t/02iso-ir-197.t, t/02iso-ir-209.t: removed iso-ir-{197,209}
+
+ * t/02utf-8.t: utf-8 should now pass all tests, even with Perl 5.8
+
+ * t/02mac.t: Mac is now Macintosh
+
+ * lib/Locale/RecodeData/KOI8_RU.pm, t/02koi8-ru.t: added KOI8-RU
+
+ * lib/Locale/RecodeData/NEXTSTEP.pm, t/02nextstep.t: NextStep encoding added
+
+ * lib/Locale/RecodeData/MACARABIC.pm, lib/Locale/RecodeData/MACCROATIAN.pm,
+ lib/Locale/RecodeData/MACCYRILLIC.pm, lib/Locale/RecodeData/MACGREEK.pm,
+ lib/Locale/RecodeData/MACHEBREW.pm, lib/Locale/RecodeData/MACICELAND.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MACROMANIA.pm,
+ lib/Locale/RecodeData/MACTHAI.pm, lib/Locale/RecodeData/MACTURKISH.pm,
+ lib/Locale/RecodeData/MACUKRAINE.pm, t/02macarabic.t, t/02maccroatian.t,
+ t/02maccyrillic.t, t/02macgreek.t, t/02machebrew.t, t/02maciceland.t,
+ t/02macintosh.t, t/02macromania.t, t/02macthai.t, t/02macturkish.t,
+ t/02macukraine.t: Macintosh encodings added
+
+ * lib/Locale/RecodeData/ASCII.pm, lib/Locale/RecodeData/US_ASCII.pm,
+ t/02ascii.t, t/02us-ascii.t: renamed ASCII to US-ASCII
+
+ * lib/Locale/RecodeData/_Encode.pm: wrapper around converters realized with
+ Encode(3pm)
+
+ 2003-06-15 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, THANKS, lib/Locale/Recode/_Aliases.pm,
+ lib/Locale/Recode/_Conversions.pm, lib/Locale/RecodeData/ATARI_ST.pm,
+ lib/Locale/RecodeData/ATARI_ST_EURO.pm, t/02atari-st-euro.t, t/02atari-st.t,
+ t/02x-atari-st-euro.t, t/02x-atari-st.t: renamed X-ATARI-ST and
+ X-ATARI-ST-EURO to ATARI-ST and ATARI-ST-EURO
+
+ * BUGS, MANIFEST, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/EUC_KR.pod, lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_11.pm, lib/Locale/RecodeData/ISO_8859_13.pm,
+ lib/Locale/RecodeData/ISO_8859_14.pm, lib/Locale/RecodeData/ISO_8859_15.pm,
+ lib/Locale/RecodeData/ISO_8859_16.pm, lib/Locale/RecodeData/ISO_8859_2.pm,
+ lib/Locale/RecodeData/ISO_8859_3.pm, lib/Locale/RecodeData/ISO_8859_4.pm,
+ lib/Locale/RecodeData/ISO_8859_5.pm, lib/Locale/RecodeData/ISO_8859_6.pm,
+ lib/Locale/RecodeData/ISO_8859_7.pm, lib/Locale/RecodeData/ISO_8859_8.pm,
+ lib/Locale/RecodeData/ISO_8859_9.pm, lib/Locale/RecodeData/ISO_IR_197.pm,
+ lib/Locale/RecodeData/ISO_IR_209.pm, lib/Locale/RecodeData/KOI8_R.pm,
+ lib/Locale/RecodeData/KOI8_T.pm, lib/Locale/RecodeData/KOI8_U.pm,
+ lib/Locale/RecodeData/KOI_8.pm, lib/Locale/RecodeData/LATIN_GREEK.pm,
+ lib/Locale/RecodeData/LATIN_GREEK_1.pm, lib/Locale/RecodeData/MACINTOSH.pm,
+ lib/Locale/RecodeData/MAC_IS.pm, lib/Locale/RecodeData/MAC_SAMI.pm,
+ lib/Locale/RecodeData/MAC_UK.pm, lib/Locale/RecodeData/MS_KANJI.pod,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/SAMI_WS2.pm, lib/Locale/RecodeData/TIS_620.pm,
+ lib/Locale/RecodeData/UTF_8_Encode.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/TextDomain.pm, lib/Locale/gettext_pp.pm, t/02ascii.t,
+ t/02asmo_449.t, t/02atari-st-euro.t, t/02atari-st.t, t/02cp10007.t,
+ t/02cp1250.t, t/02cp1251.t, t/02cp1252.t, t/02cp1253.t, t/02cp1254.t,
+ t/02cp1256.t, t/02cp1257.t, t/02csn_369103.t, t/02cwi.t, t/02dec-mcs.t,
+ t/02ebcdic-at-de-a.t, t/02ebcdic-at-de.t, t/02ebcdic-ca-fr.t,
+ t/02ebcdic-dk-no-a.t, t/02ebcdic-dk-no.t, t/02ebcdic-es-a.t,
+ t/02ebcdic-es-s.t, t/02ebcdic-es.t, t/02ebcdic-fi-se-a.t, t/02ebcdic-fi-se.t,
+ t/02ebcdic-fr.t, t/02ebcdic-is-friss.t, t/02ebcdic-it.t, t/02ebcdic-pt.t,
+ t/02ebcdic-uk.t, t/02ebcdic-us.t, t/02ecma-cyrillic.t, t/02euc-kr.t,
+ t/02georgian-academy.t, t/02georgian-ps.t, t/02gost_19768-74.t,
+ t/02greek-ccitt.t, t/02greek7-old.t, t/02greek7.t, t/02hp-roman8.t,
+ t/02ibm037.t, t/02ibm038.t, t/02ibm1004.t, t/02ibm1026.t, t/02ibm1047.t,
+ t/02ibm256.t, t/02ibm273.t, t/02ibm274.t, t/02ibm275.t, t/02ibm277.t,
+ t/02ibm278.t, t/02ibm280.t, t/02ibm281.t, t/02ibm284.t, t/02ibm285.t,
+ t/02ibm290.t, t/02ibm297.t, t/02ibm420.t, t/02ibm423.t, t/02ibm424.t,
+ t/02ibm437.t, t/02ibm500.t, t/02ibm850.t, t/02ibm851.t, t/02ibm852.t,
+ t/02ibm855.t, t/02ibm857.t, t/02ibm860.t, t/02ibm861.t, t/02ibm862.t,
+ t/02ibm863.t, t/02ibm864.t, t/02ibm865.t, t/02ibm866.t, t/02ibm868.t,
+ t/02ibm869.t, t/02ibm870.t, t/02ibm871.t, t/02ibm874.t, t/02ibm875.t,
+ t/02ibm880.t, t/02ibm891.t, t/02ibm903.t, t/02ibm904.t, t/02ibm905.t,
+ t/02ibm918.t, t/02iec_p27-1.t, t/02inis-8.t, t/02inis-cyrillic.t, t/02inis.t,
+ t/02iso-8859-1.t, t/02iso-8859-10.t, t/02iso-8859-11.t, t/02iso-8859-13.t,
+ t/02iso-8859-14.t, t/02iso-8859-15.t, t/02iso-8859-16.t, t/02iso-8859-2.t,
+ t/02iso-8859-3.t, t/02iso-8859-4.t, t/02iso-8859-5.t, t/02iso-8859-6.t,
+ t/02iso-8859-7.t, t/02iso-8859-8.t, t/02iso-8859-9.t, t/02iso-ir-197.t,
+ t/02iso-ir-209.t, t/02iso_10367-box.t, t/02iso_2033-1983.t,
+ t/02iso_5427-ext.t, t/02iso_5427.t, t/02iso_5428.t, t/02koi-8.t,
+ t/02koi8-r.t, t/02koi8-t.t, t/02koi8-u.t, t/02latin-greek-1.t,
+ t/02latin-greek.t, t/02mac-is.t, t/02mac-sami.t, t/02mac-uk.t, t/02mac.t,
+ t/02macintosh.t, t/02ms_kanji.t, t/02nats-dano.t, t/02nats-sefi.t,
+ t/02sami-ws2.t, t/02tis-620.t, t/02utf-8.t, t/02viscii.t,
+ t/02x-atari-st-euro.t, t/02x-atari-st.t, t/03bind_textdomain_codeset.t,
+ t/03bindtextdomain.t, t/03bindtextdomain_pp.t, t/03dcgettext.t,
+ t/03dcngettext.t, t/03dcngettext_pp.t, t/03dgettext.t, t/03dngettext.t,
+ t/03dngettext_pp.t, t/03gettext.t, t/03ngettext.t, t/03ngettext_pp.t: - added
+ and updated lots of documentation - use Encode if possible - added prototypes
+ to procedural interfaces - regenerated conversion tables - removed multi-byte
+ encodings
+
+ 2003-06-13 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/UTF_8_Encode.pm: vim
+ line
+
+ 2003-06-10 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST: added README-MSDOS
+
+ * lib/Locale/gettext_pp.pm: moved version information to Locale::TextDomain
+
+ * lib/Locale/Messages.pm: truth value
+
+ * lib/Locale/TextDomain.pm: new
+
+ * Makefile.PL: get version from Locale::TextDomain
+
+ * MANIFEST: - added Locale/TextDomain.pm - t/02ms_kanji.t was forgotten
+
+ 2003-06-06 Guido Flohr <guido@imperia.net>
+
+ * README-MSDOS: special notes for MS-DOS
+
+ * t/03bind_textdomain_codeset_pp.t, t/03dcgettext_pp.t, t/03dcngettext_pp.t,
+ t/03dgettext_pp.t, t/03dngettext_pp.t, t/03gettext_pp.t, t/03ngettext_pp.t:
+ compatibility tweaks for MS-DOS
+
+ * MANIFEST, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData/BIG_5.pm, lib/Locale/RecodeData/CP1361.pm,
+ lib/Locale/RecodeData/CP1361.pod, lib/Locale/RecodeData/CP949.pm,
+ lib/Locale/RecodeData/CP949.pod, lib/Locale/RecodeData/EUC_JP.pm,
+ lib/Locale/RecodeData/EUC_JP.pod, lib/Locale/RecodeData/EUC_TW.pm,
+ lib/Locale/RecodeData/MS_KANJI.pm, lib/Locale/RecodeData/MS_KANJI.pod,
+ t/02big-5.t, t/02cp1361.t, t/02cp949.t, t/02euc-jp.t, t/02euc-tw.t,
+ t/02ms_kanji.t: - optimized CJK multi-byte encodings
+
+ 2003-06-05 Guido Flohr <guido@imperia.net>
+
+ * BUGS, MANIFEST, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData/EUC_TW.pm: fixed EUC-TW and optimized it, attention:
+ U+5344 has three representations
+
+ * lib/Locale/RecodeData/BIG_5.pm: removed superfluous inner parentheses in
+ conversion re
+
+ * lib/Locale/RecodeData/EUC_JP.pm, lib/Locale/RecodeData/EUC_KR.pm: optimized
+ conversion
+
+ * lib/Locale/RecodeData/BIG_5.pm: optimized conversion
+
+ * lib/Locale/RecodeData/MS_KANJI.pm: more optimizations
+
+ * lib/Locale/RecodeData/MS_KANJI.pm: compiled regular expression with
+ modifier s
+
+ * lib/Locale/RecodeData/MS_KANJI.pm: removed debugging code
+
+ * lib/Locale/RecodeData/MS_KANJI.pm: optimized conversion
+
+ * MANIFEST, TODO, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData/BIG_5.pm, lib/Locale/RecodeData/BIG_5.pod,
+ lib/Locale/RecodeData/EUC_KR.pod, lib/Locale/RecodeData/MS_KANJI.pm,
+ lib/Locale/RecodeData/MS_KANJI.pod, t/02euc-kr.t: - insert empty lines in
+ contiguous areas of large PODs - support for Korean CP1361 (JOHAB) - support
+ for Korean CP949 (UHC) - support for EUC (JP, KR, and TW)
+
+ 2003-06-05 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/RecodeData/BIG_5.pm, lib/Locale/RecodeData/MS_KANJI.pm: Perl
+ 5.005 issue (base.pm Bug)
+
+ 2003-06-05 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, TODO, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData/MS_KANJI.pod, t/02ms_kanji.t: - support for MS_Kanji
+ (Shift-JIS) - support for Big-5 (traditional Chinese)
+
+ 2003-06-04 Guido Flohr <guido@imperia.net>
+
+ * lib/Locale/RecodeData/ISO_8859_11.pm: updated origin information for
+ ISO-8859-11
+
+ * MANIFEST, lib/Locale/Recode.pm, lib/Locale/Recode/_Aliases.pm,
+ lib/Locale/Recode/_Conversions.pm, lib/Locale/RecodeData/ISO_8859_11.pm,
+ lib/Locale/gettext_pp.pm, t/02iso-8859-11.t: support for ISO-8859-11
+
+ * Makefile.PL: extract version from gettext_pp, not Recode
+
+ 2003-06-02 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST, Makefile.PL, README, THANKS, lib/Locale/Messages.pm,
+ lib/Locale/Recode.pm, lib/Locale/Recode/_Aliases.pm,
+ lib/Locale/Recode/_Conversions.pm, lib/Locale/RecodeData.pm,
+ lib/Locale/RecodeData/ASCII.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_13.pm, lib/Locale/RecodeData/ISO_8859_14.pm,
+ lib/Locale/RecodeData/ISO_8859_15.pm, lib/Locale/RecodeData/ISO_8859_16.pm,
+ lib/Locale/RecodeData/ISO_8859_2.pm, lib/Locale/RecodeData/ISO_8859_3.pm,
+ lib/Locale/RecodeData/ISO_8859_4.pm, lib/Locale/RecodeData/ISO_8859_5.pm,
+ lib/Locale/RecodeData/ISO_8859_6.pm, lib/Locale/RecodeData/ISO_8859_7.pm,
+ lib/Locale/RecodeData/ISO_8859_8.pm, lib/Locale/RecodeData/ISO_8859_9.pm,
+ lib/Locale/RecodeData/ISO_IR_197.pm, lib/Locale/RecodeData/ISO_IR_209.pm,
+ lib/Locale/RecodeData/KOI8_R.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/SAMI_WS2.pm, lib/Locale/RecodeData/TIS_620.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/UTF_8_Encode.pm,
+ lib/Locale/RecodeData/VISCII.pm, lib/Locale/gettext_pp.pm, t/02ascii.t,
+ t/02asmo_449.t, t/02atari-st-euro.t, t/02atari-st.t, t/02cp10007.t,
+ t/02cp1250.t, t/02cp1251.t, t/02cp1252.t, t/02cp1253.t, t/02cp1254.t,
+ t/02cp1256.t, t/02cp1257.t, t/02csn_369103.t, t/02cwi.t, t/02dec-mcs.t,
+ t/02ebcdic-at-de-a.t, t/02ebcdic-at-de.t, t/02ebcdic-ca-fr.t,
+ t/02ebcdic-dk-no-a.t, t/02ebcdic-dk-no.t, t/02ebcdic-es-a.t,
+ t/02ebcdic-es-s.t, t/02ebcdic-es.t, t/02ebcdic-fi-se-a.t, t/02ebcdic-fi-se.t,
+ t/02ebcdic-fr.t, t/02ebcdic-is-friss.t, t/02ebcdic-it.t, t/02ebcdic-pt.t,
+ t/02ebcdic-uk.t, t/02ebcdic-us.t, t/02ecma-cyrillic.t,
+ t/02georgian-academy.t, t/02georgian-ps.t, t/02gost_19768-74.t,
+ t/02greek-ccitt.t, t/02greek7-old.t, t/02greek7.t, t/02hp-roman8.t,
+ t/02ibm037.t, t/02ibm038.t, t/02ibm1004.t, t/02ibm1026.t, t/02ibm1047.t,
+ t/02ibm256.t, t/02ibm273.t, t/02ibm274.t, t/02ibm275.t, t/02ibm277.t,
+ t/02ibm278.t, t/02ibm280.t, t/02ibm281.t, t/02ibm284.t, t/02ibm285.t,
+ t/02ibm290.t, t/02ibm297.t, t/02ibm420.t, t/02ibm423.t, t/02ibm424.t,
+ t/02ibm437.t, t/02ibm500.t, t/02ibm850.t, t/02ibm851.t, t/02ibm852.t,
+ t/02ibm855.t, t/02ibm857.t, t/02ibm860.t, t/02ibm861.t, t/02ibm862.t,
+ t/02ibm863.t, t/02ibm864.t, t/02ibm865.t, t/02ibm866.t, t/02ibm868.t,
+ t/02ibm869.t, t/02ibm870.t, t/02ibm871.t, t/02ibm874.t, t/02ibm875.t,
+ t/02ibm880.t, t/02ibm891.t, t/02ibm903.t, t/02ibm904.t, t/02ibm905.t,
+ t/02ibm918.t, t/02iec_p27-1.t, t/02inis-8.t, t/02inis-cyrillic.t, t/02inis.t,
+ t/02iso-8859-1.t, t/02iso-8859-10.t, t/02iso-8859-13.t, t/02iso-8859-14.t,
+ t/02iso-8859-15.t, t/02iso-8859-16.t, t/02iso-8859-2.t, t/02iso-8859-3.t,
+ t/02iso-8859-4.t, t/02iso-8859-5.t, t/02iso-8859-6.t, t/02iso-8859-7.t,
+ t/02iso-8859-8.t, t/02iso-8859-9.t, t/02iso-ir-197.t, t/02iso-ir-209.t,
+ t/02iso_10367-box.t, t/02iso_2033-1983.t, t/02iso_5427-ext.t, t/02iso_5427.t,
+ t/02iso_5428.t, t/02koi-8.t, t/02koi8-r.t, t/02koi8-t.t, t/02koi8-u.t,
+ t/02latin-greek-1.t, t/02latin-greek.t, t/02mac-is.t, t/02mac-sami.t,
+ t/02mac-uk.t, t/02macintosh.t, t/02nats-dano.t, t/02nats-sefi.t,
+ t/02sami-ws2.t, t/02tis-620.t, t/02utf-8.t, t/02viscii.t, test-benchmark: -
+ support for Perl 5.8 - vim lines - emacs variables - changed copyright
+ statements - general update
+
+ 2003-01-20 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/gettext_pp.pm: eval '&POSIX::LC_MESSAGES' only if
+ $POSIX::{LC_MESSAGES} exists (avoiding calls to Carp and avoiding problems
+ with ptkdb step over)
+
+ 2003-01-10 Oliver Hoos <oliver.hoos@imperia.net>
+
+ * MANIFEST, Makefile.PL: fixed for new directory structure
+
+ 2002-10-22 Ingrid Graefen <ingrid.graefen@imperia.net>
+
+ * lib/Locale/RecodeData/ASCII.pm, lib/Locale/RecodeData/ASMO_449.pm,
+ lib/Locale/RecodeData/ATARI_ST.pm, lib/Locale/RecodeData/ATARI_ST_EURO.pm,
+ lib/Locale/RecodeData/CP10007.pm, lib/Locale/RecodeData/CP1250.pm,
+ lib/Locale/RecodeData/CP1251.pm, lib/Locale/RecodeData/CP1252.pm,
+ lib/Locale/RecodeData/CP1253.pm, lib/Locale/RecodeData/CP1254.pm,
+ lib/Locale/RecodeData/CP1256.pm, lib/Locale/RecodeData/CP1257.pm,
+ lib/Locale/RecodeData/CSN_369103.pm, lib/Locale/RecodeData/CWI.pm,
+ lib/Locale/RecodeData/DEC_MCS.pm, lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_13.pm, lib/Locale/RecodeData/ISO_8859_14.pm,
+ lib/Locale/RecodeData/ISO_8859_15.pm, lib/Locale/RecodeData/ISO_8859_16.pm,
+ lib/Locale/RecodeData/ISO_8859_2.pm, lib/Locale/RecodeData/ISO_8859_3.pm,
+ lib/Locale/RecodeData/ISO_8859_4.pm, lib/Locale/RecodeData/ISO_8859_5.pm,
+ lib/Locale/RecodeData/ISO_8859_6.pm, lib/Locale/RecodeData/ISO_8859_7.pm,
+ lib/Locale/RecodeData/ISO_8859_8.pm, lib/Locale/RecodeData/ISO_8859_9.pm,
+ lib/Locale/RecodeData/ISO_IR_197.pm, lib/Locale/RecodeData/ISO_IR_209.pm,
+ lib/Locale/RecodeData/KOI8_R.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/SAMI_WS2.pm, lib/Locale/RecodeData/TIS_620.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm: no BAREWORD
+ after use base
+
+ 2002-08-16 Guido Flohr <guido@imperia.net>
+
+ * Artistic, COPYING, MANIFEST, Makefile.PL, README, THANKS, _Aliases.pm,
+ _Conversions.pm, gettext_pp.pm, lib/Locale/Messages.pm, lib/Locale/Recode.pm,
+ lib/Locale/Recode/_Aliases.pm, lib/Locale/Recode/_Conversions.pm,
+ lib/Locale/RecodeData.pm, lib/Locale/RecodeData/ASCII.pm,
+ lib/Locale/RecodeData/ASMO_449.pm, lib/Locale/RecodeData/ATARI_ST.pm,
+ lib/Locale/RecodeData/ATARI_ST_EURO.pm, lib/Locale/RecodeData/CP10007.pm,
+ lib/Locale/RecodeData/CP1250.pm, lib/Locale/RecodeData/CP1251.pm,
+ lib/Locale/RecodeData/CP1252.pm, lib/Locale/RecodeData/CP1253.pm,
+ lib/Locale/RecodeData/CP1254.pm, lib/Locale/RecodeData/CP1256.pm,
+ lib/Locale/RecodeData/CP1257.pm, lib/Locale/RecodeData/CSN_369103.pm,
+ lib/Locale/RecodeData/CWI.pm, lib/Locale/RecodeData/DEC_MCS.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE.pm,
+ lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ lib/Locale/RecodeData/EBCDIC_CA_FR.pm, lib/Locale/RecodeData/EBCDIC_DK_NO.pm,
+ lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm, lib/Locale/RecodeData/EBCDIC_ES.pm,
+ lib/Locale/RecodeData/EBCDIC_ES_A.pm, lib/Locale/RecodeData/EBCDIC_ES_S.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE.pm,
+ lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm, lib/Locale/RecodeData/EBCDIC_FR.pm,
+ lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm, lib/Locale/RecodeData/EBCDIC_IT.pm,
+ lib/Locale/RecodeData/EBCDIC_PT.pm, lib/Locale/RecodeData/EBCDIC_UK.pm,
+ lib/Locale/RecodeData/EBCDIC_US.pm, lib/Locale/RecodeData/ECMA_CYRILLIC.pm,
+ lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ lib/Locale/RecodeData/GEORGIAN_PS.pm, lib/Locale/RecodeData/GOST_19768_74.pm,
+ lib/Locale/RecodeData/GREEK7.pm, lib/Locale/RecodeData/GREEK7_OLD.pm,
+ lib/Locale/RecodeData/GREEK_CCITT.pm, lib/Locale/RecodeData/HP_ROMAN8.pm,
+ lib/Locale/RecodeData/IBM037.pm, lib/Locale/RecodeData/IBM038.pm,
+ lib/Locale/RecodeData/IBM1004.pm, lib/Locale/RecodeData/IBM1026.pm,
+ lib/Locale/RecodeData/IBM1047.pm, lib/Locale/RecodeData/IBM256.pm,
+ lib/Locale/RecodeData/IBM273.pm, lib/Locale/RecodeData/IBM274.pm,
+ lib/Locale/RecodeData/IBM275.pm, lib/Locale/RecodeData/IBM277.pm,
+ lib/Locale/RecodeData/IBM278.pm, lib/Locale/RecodeData/IBM280.pm,
+ lib/Locale/RecodeData/IBM281.pm, lib/Locale/RecodeData/IBM284.pm,
+ lib/Locale/RecodeData/IBM285.pm, lib/Locale/RecodeData/IBM290.pm,
+ lib/Locale/RecodeData/IBM297.pm, lib/Locale/RecodeData/IBM420.pm,
+ lib/Locale/RecodeData/IBM423.pm, lib/Locale/RecodeData/IBM424.pm,
+ lib/Locale/RecodeData/IBM437.pm, lib/Locale/RecodeData/IBM500.pm,
+ lib/Locale/RecodeData/IBM850.pm, lib/Locale/RecodeData/IBM851.pm,
+ lib/Locale/RecodeData/IBM852.pm, lib/Locale/RecodeData/IBM855.pm,
+ lib/Locale/RecodeData/IBM857.pm, lib/Locale/RecodeData/IBM860.pm,
+ lib/Locale/RecodeData/IBM861.pm, lib/Locale/RecodeData/IBM862.pm,
+ lib/Locale/RecodeData/IBM863.pm, lib/Locale/RecodeData/IBM864.pm,
+ lib/Locale/RecodeData/IBM865.pm, lib/Locale/RecodeData/IBM866.pm,
+ lib/Locale/RecodeData/IBM868.pm, lib/Locale/RecodeData/IBM869.pm,
+ lib/Locale/RecodeData/IBM870.pm, lib/Locale/RecodeData/IBM871.pm,
+ lib/Locale/RecodeData/IBM874.pm, lib/Locale/RecodeData/IBM875.pm,
+ lib/Locale/RecodeData/IBM880.pm, lib/Locale/RecodeData/IBM891.pm,
+ lib/Locale/RecodeData/IBM903.pm, lib/Locale/RecodeData/IBM904.pm,
+ lib/Locale/RecodeData/IBM905.pm, lib/Locale/RecodeData/IBM918.pm,
+ lib/Locale/RecodeData/IEC_P27_1.pm, lib/Locale/RecodeData/INIS.pm,
+ lib/Locale/RecodeData/INIS_8.pm, lib/Locale/RecodeData/INIS_CYRILLIC.pm,
+ lib/Locale/RecodeData/ISO_10367_BOX.pm,
+ lib/Locale/RecodeData/ISO_2033_1983.pm, lib/Locale/RecodeData/ISO_5427.pm,
+ lib/Locale/RecodeData/ISO_5427_EXT.pm, lib/Locale/RecodeData/ISO_5428.pm,
+ lib/Locale/RecodeData/ISO_8859_1.pm, lib/Locale/RecodeData/ISO_8859_10.pm,
+ lib/Locale/RecodeData/ISO_8859_13.pm, lib/Locale/RecodeData/ISO_8859_14.pm,
+ lib/Locale/RecodeData/ISO_8859_15.pm, lib/Locale/RecodeData/ISO_8859_16.pm,
+ lib/Locale/RecodeData/ISO_8859_2.pm, lib/Locale/RecodeData/ISO_8859_3.pm,
+ lib/Locale/RecodeData/ISO_8859_4.pm, lib/Locale/RecodeData/ISO_8859_5.pm,
+ lib/Locale/RecodeData/ISO_8859_6.pm, lib/Locale/RecodeData/ISO_8859_7.pm,
+ lib/Locale/RecodeData/ISO_8859_8.pm, lib/Locale/RecodeData/ISO_8859_9.pm,
+ lib/Locale/RecodeData/ISO_IR_197.pm, lib/Locale/RecodeData/ISO_IR_209.pm,
+ lib/Locale/RecodeData/KOI8_R.pm, lib/Locale/RecodeData/KOI8_T.pm,
+ lib/Locale/RecodeData/KOI8_U.pm, lib/Locale/RecodeData/KOI_8.pm,
+ lib/Locale/RecodeData/LATIN_GREEK.pm, lib/Locale/RecodeData/LATIN_GREEK_1.pm,
+ lib/Locale/RecodeData/MACINTOSH.pm, lib/Locale/RecodeData/MAC_IS.pm,
+ lib/Locale/RecodeData/MAC_SAMI.pm, lib/Locale/RecodeData/MAC_UK.pm,
+ lib/Locale/RecodeData/NATS_DANO.pm, lib/Locale/RecodeData/NATS_SEFI.pm,
+ lib/Locale/RecodeData/SAMI_WS2.pm, lib/Locale/RecodeData/TIS_620.pm,
+ lib/Locale/RecodeData/UTF_8.pm, lib/Locale/RecodeData/VISCII.pm,
+ lib/Locale/gettext_pp.pm, test-benchmark: unchaos
+
+ * ASCII.pm, ASMO_449.pm, ATARI_ST.pm, ATARI_ST_EURO.pm, Artistic, COPYING,
+ CP10007.pm, CP1250.pm, CP1251.pm, CP1252.pm, CP1253.pm, CP1254.pm, CP1256.pm,
+ CP1257.pm, CSN_369103.pm, CWI.pm, DEC_MCS.pm, EBCDIC_AT_DE.pm,
+ EBCDIC_AT_DE_A.pm, EBCDIC_CA_FR.pm, EBCDIC_DK_NO.pm, EBCDIC_DK_NO_A.pm,
+ EBCDIC_ES.pm, EBCDIC_ES_A.pm, EBCDIC_ES_S.pm, EBCDIC_FI_SE.pm,
+ EBCDIC_FI_SE_A.pm, EBCDIC_FR.pm, EBCDIC_IS_FRISS.pm, EBCDIC_IT.pm,
+ EBCDIC_PT.pm, EBCDIC_UK.pm, EBCDIC_US.pm, ECMA_CYRILLIC.pm,
+ GEORGIAN_ACADEMY.pm, GEORGIAN_PS.pm, GOST_19768_74.pm, GREEK7.pm,
+ GREEK7_OLD.pm, GREEK_CCITT.pm, HP_ROMAN8.pm, IBM037.pm, IBM038.pm,
+ IBM1004.pm, IBM1026.pm, IBM1047.pm, IBM256.pm, IBM273.pm, IBM274.pm,
+ IBM275.pm, IBM277.pm, IBM278.pm, IBM280.pm, IBM281.pm, IBM284.pm, IBM285.pm,
+ IBM290.pm, IBM297.pm, IBM420.pm, IBM423.pm, IBM424.pm, IBM437.pm, IBM500.pm,
+ IBM850.pm, IBM851.pm, IBM852.pm, IBM855.pm, IBM857.pm, IBM860.pm, IBM861.pm,
+ IBM862.pm, IBM863.pm, IBM864.pm, IBM865.pm, IBM866.pm, IBM868.pm, IBM869.pm,
+ IBM870.pm, IBM871.pm, IBM874.pm, IBM875.pm, IBM880.pm, IBM891.pm, IBM903.pm,
+ IBM904.pm, IBM905.pm, IBM918.pm, IEC_P27_1.pm, INIS.pm, INIS_8.pm,
+ INIS_CYRILLIC.pm, ISO_10367_BOX.pm, ISO_2033_1983.pm, ISO_5427.pm,
+ ISO_5427_EXT.pm, ISO_5428.pm, ISO_8859_1.pm, ISO_8859_10.pm, ISO_8859_13.pm,
+ ISO_8859_14.pm, ISO_8859_15.pm, ISO_8859_16.pm, ISO_8859_2.pm, ISO_8859_3.pm,
+ ISO_8859_4.pm, ISO_8859_5.pm, ISO_8859_6.pm, ISO_8859_7.pm, ISO_8859_8.pm,
+ ISO_8859_9.pm, ISO_IR_197.pm, ISO_IR_209.pm, KOI8_R.pm, KOI8_T.pm, KOI8_U.pm,
+ KOI_8.pm, LATIN_GREEK.pm, LATIN_GREEK_1.pm, MACINTOSH.pm, MAC_IS.pm,
+ MAC_SAMI.pm, MAC_UK.pm, MANIFEST, Makefile.PL, Messages.pm, NATS_DANO.pm,
+ NATS_SEFI.pm, README, Recode.pm, RecodeData.pm, SAMI_WS2.pm, THANKS,
+ TIS_620.pm, UTF_8.pm, VISCII.pm, test-benchmark: unchaos
+
+ * ASCII.pm, ASMO_449.pm, ATARI_ST.pm, ATARI_ST_EURO.pm, CP10007.pm,
+ CP1250.pm, CP1251.pm, CP1252.pm, CP1253.pm, CP1254.pm, CP1256.pm, CP1257.pm,
+ CSN_369103.pm, CWI.pm, DEC_MCS.pm, EBCDIC_AT_DE.pm, EBCDIC_AT_DE_A.pm,
+ EBCDIC_CA_FR.pm, EBCDIC_DK_NO.pm, EBCDIC_DK_NO_A.pm, EBCDIC_ES.pm,
+ EBCDIC_ES_A.pm, EBCDIC_ES_S.pm, EBCDIC_FI_SE.pm, EBCDIC_FI_SE_A.pm,
+ EBCDIC_FR.pm, EBCDIC_IS_FRISS.pm, EBCDIC_IT.pm, EBCDIC_PT.pm, EBCDIC_UK.pm,
+ EBCDIC_US.pm, ECMA_CYRILLIC.pm, GEORGIAN_ACADEMY.pm, GEORGIAN_PS.pm,
+ GOST_19768_74.pm, GREEK7.pm, GREEK7_OLD.pm, GREEK_CCITT.pm, HP_ROMAN8.pm,
+ IBM037.pm, IBM038.pm, IBM1004.pm, IBM1026.pm, IBM1047.pm, IBM256.pm,
+ IBM273.pm, IBM274.pm, IBM275.pm, IBM277.pm, IBM278.pm, IBM280.pm, IBM281.pm,
+ IBM284.pm, IBM285.pm, IBM290.pm, IBM297.pm, IBM420.pm, IBM423.pm, IBM424.pm,
+ IBM437.pm, IBM500.pm, IBM850.pm, IBM851.pm, IBM852.pm, IBM855.pm, IBM857.pm,
+ IBM860.pm, IBM861.pm, IBM862.pm, IBM863.pm, IBM864.pm, IBM865.pm, IBM866.pm,
+ IBM868.pm, IBM869.pm, IBM870.pm, IBM871.pm, IBM874.pm, IBM875.pm, IBM880.pm,
+ IBM891.pm, IBM903.pm, IBM904.pm, IBM905.pm, IBM918.pm, IEC_P27_1.pm, INIS.pm,
+ INIS_8.pm, INIS_CYRILLIC.pm, ISO_10367_BOX.pm, ISO_2033_1983.pm, ISO_5427.pm,
+ ISO_5427_EXT.pm, ISO_5428.pm, ISO_8859_1.pm, ISO_8859_10.pm, ISO_8859_13.pm,
+ ISO_8859_14.pm, ISO_8859_15.pm, ISO_8859_16.pm, ISO_8859_2.pm, ISO_8859_3.pm,
+ ISO_8859_4.pm, ISO_8859_5.pm, ISO_8859_6.pm, ISO_8859_7.pm, ISO_8859_8.pm,
+ ISO_8859_9.pm, ISO_IR_197.pm, ISO_IR_209.pm, KOI8_R.pm, KOI8_T.pm, KOI8_U.pm,
+ KOI_8.pm, LATIN_GREEK.pm, LATIN_GREEK_1.pm, Locale/Messages.pm,
+ Locale/Recode.pm, Locale/Recode/_Aliases.pm, Locale/Recode/_Conversions.pm,
+ Locale/RecodeData.pm, Locale/RecodeData/ASCII.pm,
+ Locale/RecodeData/ASMO_449.pm, Locale/RecodeData/ATARI_ST.pm,
+ Locale/RecodeData/ATARI_ST_EURO.pm, Locale/RecodeData/CP10007.pm,
+ Locale/RecodeData/CP1250.pm, Locale/RecodeData/CP1251.pm,
+ Locale/RecodeData/CP1252.pm, Locale/RecodeData/CP1253.pm,
+ Locale/RecodeData/CP1254.pm, Locale/RecodeData/CP1256.pm,
+ Locale/RecodeData/CP1257.pm, Locale/RecodeData/CSN_369103.pm,
+ Locale/RecodeData/CWI.pm, Locale/RecodeData/DEC_MCS.pm,
+ Locale/RecodeData/EBCDIC_AT_DE.pm, Locale/RecodeData/EBCDIC_AT_DE_A.pm,
+ Locale/RecodeData/EBCDIC_CA_FR.pm, Locale/RecodeData/EBCDIC_DK_NO.pm,
+ Locale/RecodeData/EBCDIC_DK_NO_A.pm, Locale/RecodeData/EBCDIC_ES.pm,
+ Locale/RecodeData/EBCDIC_ES_A.pm, Locale/RecodeData/EBCDIC_ES_S.pm,
+ Locale/RecodeData/EBCDIC_FI_SE.pm, Locale/RecodeData/EBCDIC_FI_SE_A.pm,
+ Locale/RecodeData/EBCDIC_FR.pm, Locale/RecodeData/EBCDIC_IS_FRISS.pm,
+ Locale/RecodeData/EBCDIC_IT.pm, Locale/RecodeData/EBCDIC_PT.pm,
+ Locale/RecodeData/EBCDIC_UK.pm, Locale/RecodeData/EBCDIC_US.pm,
+ Locale/RecodeData/ECMA_CYRILLIC.pm, Locale/RecodeData/GEORGIAN_ACADEMY.pm,
+ Locale/RecodeData/GEORGIAN_PS.pm, Locale/RecodeData/GOST_19768_74.pm,
+ Locale/RecodeData/GREEK7.pm, Locale/RecodeData/GREEK7_OLD.pm,
+ Locale/RecodeData/GREEK_CCITT.pm, Locale/RecodeData/HP_ROMAN8.pm,
+ Locale/RecodeData/IBM037.pm, Locale/RecodeData/IBM038.pm,
+ Locale/RecodeData/IBM1004.pm, Locale/RecodeData/IBM1026.pm,
+ Locale/RecodeData/IBM1047.pm, Locale/RecodeData/IBM256.pm,
+ Locale/RecodeData/IBM273.pm, Locale/RecodeData/IBM274.pm,
+ Locale/RecodeData/IBM275.pm, Locale/RecodeData/IBM277.pm,
+ Locale/RecodeData/IBM278.pm, Locale/RecodeData/IBM280.pm,
+ Locale/RecodeData/IBM281.pm, Locale/RecodeData/IBM284.pm,
+ Locale/RecodeData/IBM285.pm, Locale/RecodeData/IBM290.pm,
+ Locale/RecodeData/IBM297.pm, Locale/RecodeData/IBM420.pm,
+ Locale/RecodeData/IBM423.pm, Locale/RecodeData/IBM424.pm,
+ Locale/RecodeData/IBM437.pm, Locale/RecodeData/IBM500.pm,
+ Locale/RecodeData/IBM850.pm, Locale/RecodeData/IBM851.pm,
+ Locale/RecodeData/IBM852.pm, Locale/RecodeData/IBM855.pm,
+ Locale/RecodeData/IBM857.pm, Locale/RecodeData/IBM860.pm,
+ Locale/RecodeData/IBM861.pm, Locale/RecodeData/IBM862.pm,
+ Locale/RecodeData/IBM863.pm, Locale/RecodeData/IBM864.pm,
+ Locale/RecodeData/IBM865.pm, Locale/RecodeData/IBM866.pm,
+ Locale/RecodeData/IBM868.pm, Locale/RecodeData/IBM869.pm,
+ Locale/RecodeData/IBM870.pm, Locale/RecodeData/IBM871.pm,
+ Locale/RecodeData/IBM874.pm, Locale/RecodeData/IBM875.pm,
+ Locale/RecodeData/IBM880.pm, Locale/RecodeData/IBM891.pm,
+ Locale/RecodeData/IBM903.pm, Locale/RecodeData/IBM904.pm,
+ Locale/RecodeData/IBM905.pm, Locale/RecodeData/IBM918.pm,
+ Locale/RecodeData/IEC_P27_1.pm, Locale/RecodeData/INIS.pm,
+ Locale/RecodeData/INIS_8.pm, Locale/RecodeData/INIS_CYRILLIC.pm,
+ Locale/RecodeData/ISO_10367_BOX.pm, Locale/RecodeData/ISO_2033_1983.pm,
+ Locale/RecodeData/ISO_5427.pm, Locale/RecodeData/ISO_5427_EXT.pm,
+ Locale/RecodeData/ISO_5428.pm, Locale/RecodeData/ISO_8859_1.pm,
+ Locale/RecodeData/ISO_8859_10.pm, Locale/RecodeData/ISO_8859_13.pm,
+ Locale/RecodeData/ISO_8859_14.pm, Locale/RecodeData/ISO_8859_15.pm,
+ Locale/RecodeData/ISO_8859_16.pm, Locale/RecodeData/ISO_8859_2.pm,
+ Locale/RecodeData/ISO_8859_3.pm, Locale/RecodeData/ISO_8859_4.pm,
+ Locale/RecodeData/ISO_8859_5.pm, Locale/RecodeData/ISO_8859_6.pm,
+ Locale/RecodeData/ISO_8859_7.pm, Locale/RecodeData/ISO_8859_8.pm,
+ Locale/RecodeData/ISO_8859_9.pm, Locale/RecodeData/ISO_IR_197.pm,
+ Locale/RecodeData/ISO_IR_209.pm, Locale/RecodeData/KOI8_R.pm,
+ Locale/RecodeData/KOI8_T.pm, Locale/RecodeData/KOI8_U.pm,
+ Locale/RecodeData/KOI_8.pm, Locale/RecodeData/LATIN_GREEK.pm,
+ Locale/RecodeData/LATIN_GREEK_1.pm, Locale/RecodeData/MACINTOSH.pm,
+ Locale/RecodeData/MAC_IS.pm, Locale/RecodeData/MAC_SAMI.pm,
+ Locale/RecodeData/MAC_UK.pm, Locale/RecodeData/NATS_DANO.pm,
+ Locale/RecodeData/NATS_SEFI.pm, Locale/RecodeData/SAMI_WS2.pm,
+ Locale/RecodeData/TIS_620.pm, Locale/RecodeData/UTF_8.pm,
+ Locale/RecodeData/VISCII.pm, Locale/gettext_pp.pm, MACINTOSH.pm, MAC_IS.pm,
+ MAC_SAMI.pm, MAC_UK.pm, MANIFEST, Makefile.PL, Messages.pm, NATS_DANO.pm,
+ NATS_SEFI.pm, Recode.pm, RecodeData.pm, SAMI_WS2.pm, TIS_620.pm, UTF_8.pm,
+ VISCII.pm, _Aliases.pm, _Conversions.pm, gettext_pp.pm: moved modules to
+ subdirectory lib
+
+ 2002-08-01 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST: updated
+
+ * Locale/Recode.pm: version number to 0.05
+
+ * Locale/RecodeData/UTF_8.pm: implemented decoding of UTF-8 for Perl < 5.6.0
+
+ * t/00gettext.t: forgotten to add
+
+ 2002-07-16 Guido Flohr <guido@imperia.net>
+
+ * Locale/Recode.pm: do not list unsupported charsets in getCharsets().
+
+ * Locale/Recode/_Aliases.pm, Locale/Recode/_Conversions.pm,
+ Locale/RecodeData/ASCII.pm, Locale/RecodeData/ASMO_449.pm,
+ Locale/RecodeData/ATARI_ST.pm, Locale/RecodeData/ATARI_ST_EURO.pm,
+ Locale/RecodeData/CP10007.pm, Locale/RecodeData/CP1250.pm,
+ Locale/RecodeData/CP1251.pm, Locale/RecodeData/CP1252.pm,
+ Locale/RecodeData/CP1253.pm, Locale/RecodeData/CP1254.pm,
+ Locale/RecodeData/CP1256.pm, Locale/RecodeData/CP1257.pm,
+ Locale/RecodeData/CSN_369103.pm, Locale/RecodeData/CWI.pm,
+ Locale/RecodeData/DEC_MCS.pm, Locale/RecodeData/EBCDIC_AT_DE.pm,
+ Locale/RecodeData/EBCDIC_AT_DE_A.pm, Locale/RecodeData/EBCDIC_CA_FR.pm,
+ Locale/RecodeData/EBCDIC_DK_NO.pm, Locale/RecodeData/EBCDIC_DK_NO_A.pm,
+ Locale/RecodeData/EBCDIC_ES.pm, Locale/RecodeData/EBCDIC_ES_A.pm,
+ Locale/RecodeData/EBCDIC_ES_S.pm, Locale/RecodeData/EBCDIC_FI_SE.pm,
+ Locale/RecodeData/EBCDIC_FI_SE_A.pm, Locale/RecodeData/EBCDIC_FR.pm,
+ Locale/RecodeData/EBCDIC_IS_FRISS.pm, Locale/RecodeData/EBCDIC_IT.pm,
+ Locale/RecodeData/EBCDIC_PT.pm, Locale/RecodeData/EBCDIC_UK.pm,
+ Locale/RecodeData/EBCDIC_US.pm, Locale/RecodeData/ECMA_CYRILLIC.pm,
+ Locale/RecodeData/GEORGIAN_ACADEMY.pm, Locale/RecodeData/GEORGIAN_PS.pm,
+ Locale/RecodeData/GOST_19768_74.pm, Locale/RecodeData/GREEK7.pm,
+ Locale/RecodeData/GREEK7_OLD.pm, Locale/RecodeData/GREEK_CCITT.pm,
+ Locale/RecodeData/HP_ROMAN8.pm, Locale/RecodeData/IBM037.pm,
+ Locale/RecodeData/IBM038.pm, Locale/RecodeData/IBM1004.pm,
+ Locale/RecodeData/IBM1026.pm, Locale/RecodeData/IBM1047.pm,
+ Locale/RecodeData/IBM256.pm, Locale/RecodeData/IBM273.pm,
+ Locale/RecodeData/IBM274.pm, Locale/RecodeData/IBM275.pm,
+ Locale/RecodeData/IBM277.pm, Locale/RecodeData/IBM278.pm,
+ Locale/RecodeData/IBM280.pm, Locale/RecodeData/IBM281.pm,
+ Locale/RecodeData/IBM284.pm, Locale/RecodeData/IBM285.pm,
+ Locale/RecodeData/IBM290.pm, Locale/RecodeData/IBM297.pm,
+ Locale/RecodeData/IBM420.pm, Locale/RecodeData/IBM423.pm,
+ Locale/RecodeData/IBM424.pm, Locale/RecodeData/IBM437.pm,
+ Locale/RecodeData/IBM500.pm, Locale/RecodeData/IBM850.pm,
+ Locale/RecodeData/IBM851.pm, Locale/RecodeData/IBM852.pm,
+ Locale/RecodeData/IBM855.pm, Locale/RecodeData/IBM857.pm,
+ Locale/RecodeData/IBM860.pm, Locale/RecodeData/IBM861.pm,
+ Locale/RecodeData/IBM862.pm, Locale/RecodeData/IBM863.pm,
+ Locale/RecodeData/IBM864.pm, Locale/RecodeData/IBM865.pm,
+ Locale/RecodeData/IBM866.pm, Locale/RecodeData/IBM868.pm,
+ Locale/RecodeData/IBM869.pm, Locale/RecodeData/IBM870.pm,
+ Locale/RecodeData/IBM871.pm, Locale/RecodeData/IBM874.pm,
+ Locale/RecodeData/IBM875.pm, Locale/RecodeData/IBM880.pm,
+ Locale/RecodeData/IBM891.pm, Locale/RecodeData/IBM903.pm,
+ Locale/RecodeData/IBM904.pm, Locale/RecodeData/IBM905.pm,
+ Locale/RecodeData/IBM918.pm, Locale/RecodeData/IEC_P27_1.pm,
+ Locale/RecodeData/INIS.pm, Locale/RecodeData/INIS_8.pm,
+ Locale/RecodeData/INIS_CYRILLIC.pm, Locale/RecodeData/ISO_10367_BOX.pm,
+ Locale/RecodeData/ISO_2033_1983.pm, Locale/RecodeData/ISO_5427.pm,
+ Locale/RecodeData/ISO_5427_EXT.pm, Locale/RecodeData/ISO_5428.pm,
+ Locale/RecodeData/ISO_8859_1.pm, Locale/RecodeData/ISO_8859_10.pm,
+ Locale/RecodeData/ISO_8859_13.pm, Locale/RecodeData/ISO_8859_14.pm,
+ Locale/RecodeData/ISO_8859_15.pm, Locale/RecodeData/ISO_8859_16.pm,
+ Locale/RecodeData/ISO_8859_2.pm, Locale/RecodeData/ISO_8859_3.pm,
+ Locale/RecodeData/ISO_8859_4.pm, Locale/RecodeData/ISO_8859_5.pm,
+ Locale/RecodeData/ISO_8859_6.pm, Locale/RecodeData/ISO_8859_7.pm,
+ Locale/RecodeData/ISO_8859_8.pm, Locale/RecodeData/ISO_8859_9.pm,
+ Locale/RecodeData/ISO_IR_197.pm, Locale/RecodeData/ISO_IR_209.pm,
+ Locale/RecodeData/KOI8_R.pm, Locale/RecodeData/KOI8_T.pm,
+ Locale/RecodeData/KOI8_U.pm, Locale/RecodeData/KOI_8.pm,
+ Locale/RecodeData/LATIN_GREEK.pm, Locale/RecodeData/LATIN_GREEK_1.pm,
+ Locale/RecodeData/MACINTOSH.pm, Locale/RecodeData/MAC_IS.pm,
+ Locale/RecodeData/MAC_SAMI.pm, Locale/RecodeData/MAC_UK.pm,
+ Locale/RecodeData/NATS_DANO.pm, Locale/RecodeData/NATS_SEFI.pm,
+ Locale/RecodeData/SAMI_WS2.pm, Locale/RecodeData/TIS_620.pm,
+ Locale/RecodeData/UTF_8.pm, Locale/RecodeData/VISCII.pm: renamed Iconv to
+ Recode
+
+ 2002-07-15 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST: updated
+
+ * Locale/gettext_pp.pm: - fixed retrieving of plural forms from mo files -
+ implemented bind_textdomain_codeset - fixed setlocale() inquiries - more
+ Locale::gettext compatibility
+
+ * Locale/Messages.pm: - now requires (imaginary) Locale::gettext 2.00 - also
+ require this Locale::gettext version with select_package - fixed warning in
+ select_package
+
+ * Locale/Recode.pm, Locale/RecodeData.pm, Makefile.PL: renamed Iconv to
+ Recode
+
+ * t/po/Makefile, t/po/additional.de.po, t/po/additional.de_AT.po,
+ t/po/existing.de.po, t/po/existing.de_AT.po: added tests for gettext library
+
+ * Locale/Iconv.pm, Locale/Iconv/_Aliases.pm, Locale/Iconv/_Conversions.pm,
+ Locale/IconvData.pm, Locale/IconvData/ASCII.pm, Locale/IconvData/ASMO_449.pm,
+ Locale/IconvData/ATARI_ST.pm, Locale/IconvData/ATARI_ST_EURO.pm,
+ Locale/IconvData/CP10007.pm, Locale/IconvData/CP1250.pm,
+ Locale/IconvData/CP1251.pm, Locale/IconvData/CP1252.pm,
+ Locale/IconvData/CP1253.pm, Locale/IconvData/CP1254.pm,
+ Locale/IconvData/CP1256.pm, Locale/IconvData/CP1257.pm,
+ Locale/IconvData/CSN_369103.pm, Locale/IconvData/CWI.pm,
+ Locale/IconvData/DEC_MCS.pm, Locale/IconvData/EBCDIC_AT_DE.pm,
+ Locale/IconvData/EBCDIC_AT_DE_A.pm, Locale/IconvData/EBCDIC_CA_FR.pm,
+ Locale/IconvData/EBCDIC_DK_NO.pm, Locale/IconvData/EBCDIC_DK_NO_A.pm,
+ Locale/IconvData/EBCDIC_ES.pm, Locale/IconvData/EBCDIC_ES_A.pm,
+ Locale/IconvData/EBCDIC_ES_S.pm, Locale/IconvData/EBCDIC_FI_SE.pm,
+ Locale/IconvData/EBCDIC_FI_SE_A.pm, Locale/IconvData/EBCDIC_FR.pm,
+ Locale/IconvData/EBCDIC_IS_FRISS.pm, Locale/IconvData/EBCDIC_IT.pm,
+ Locale/IconvData/EBCDIC_PT.pm, Locale/IconvData/EBCDIC_UK.pm,
+ Locale/IconvData/EBCDIC_US.pm, Locale/IconvData/ECMA_CYRILLIC.pm,
+ Locale/IconvData/GEORGIAN_ACADEMY.pm, Locale/IconvData/GEORGIAN_PS.pm,
+ Locale/IconvData/GOST_19768_74.pm, Locale/IconvData/GREEK7.pm,
+ Locale/IconvData/GREEK7_OLD.pm, Locale/IconvData/GREEK_CCITT.pm,
+ Locale/IconvData/HP_ROMAN8.pm, Locale/IconvData/IBM037.pm,
+ Locale/IconvData/IBM038.pm, Locale/IconvData/IBM1004.pm,
+ Locale/IconvData/IBM1026.pm, Locale/IconvData/IBM1047.pm,
+ Locale/IconvData/IBM256.pm, Locale/IconvData/IBM273.pm,
+ Locale/IconvData/IBM274.pm, Locale/IconvData/IBM275.pm,
+ Locale/IconvData/IBM277.pm, Locale/IconvData/IBM278.pm,
+ Locale/IconvData/IBM280.pm, Locale/IconvData/IBM281.pm,
+ Locale/IconvData/IBM284.pm, Locale/IconvData/IBM285.pm,
+ Locale/IconvData/IBM290.pm, Locale/IconvData/IBM297.pm,
+ Locale/IconvData/IBM420.pm, Locale/IconvData/IBM423.pm,
+ Locale/IconvData/IBM424.pm, Locale/IconvData/IBM437.pm,
+ Locale/IconvData/IBM500.pm, Locale/IconvData/IBM850.pm,
+ Locale/IconvData/IBM851.pm, Locale/IconvData/IBM852.pm,
+ Locale/IconvData/IBM855.pm, Locale/IconvData/IBM857.pm,
+ Locale/IconvData/IBM860.pm, Locale/IconvData/IBM861.pm,
+ Locale/IconvData/IBM862.pm, Locale/IconvData/IBM863.pm,
+ Locale/IconvData/IBM864.pm, Locale/IconvData/IBM865.pm,
+ Locale/IconvData/IBM866.pm, Locale/IconvData/IBM868.pm,
+ Locale/IconvData/IBM869.pm, Locale/IconvData/IBM870.pm,
+ Locale/IconvData/IBM871.pm, Locale/IconvData/IBM874.pm,
+ Locale/IconvData/IBM875.pm, Locale/IconvData/IBM880.pm,
+ Locale/IconvData/IBM891.pm, Locale/IconvData/IBM903.pm,
+ Locale/IconvData/IBM904.pm, Locale/IconvData/IBM905.pm,
+ Locale/IconvData/IBM918.pm, Locale/IconvData/IEC_P27_1.pm,
+ Locale/IconvData/INIS.pm, Locale/IconvData/INIS_8.pm,
+ Locale/IconvData/INIS_CYRILLIC.pm, Locale/IconvData/ISO_10367_BOX.pm,
+ Locale/IconvData/ISO_2033_1983.pm, Locale/IconvData/ISO_5427.pm,
+ Locale/IconvData/ISO_5427_EXT.pm, Locale/IconvData/ISO_5428.pm,
+ Locale/IconvData/ISO_8859_1.pm, Locale/IconvData/ISO_8859_10.pm,
+ Locale/IconvData/ISO_8859_13.pm, Locale/IconvData/ISO_8859_14.pm,
+ Locale/IconvData/ISO_8859_15.pm, Locale/IconvData/ISO_8859_16.pm,
+ Locale/IconvData/ISO_8859_2.pm, Locale/IconvData/ISO_8859_3.pm,
+ Locale/IconvData/ISO_8859_4.pm, Locale/IconvData/ISO_8859_5.pm,
+ Locale/IconvData/ISO_8859_6.pm, Locale/IconvData/ISO_8859_7.pm,
+ Locale/IconvData/ISO_8859_8.pm, Locale/IconvData/ISO_8859_9.pm,
+ Locale/IconvData/ISO_IR_197.pm, Locale/IconvData/ISO_IR_209.pm,
+ Locale/IconvData/KOI8_R.pm, Locale/IconvData/KOI8_T.pm,
+ Locale/IconvData/KOI8_U.pm, Locale/IconvData/KOI_8.pm,
+ Locale/IconvData/LATIN_GREEK.pm, Locale/IconvData/LATIN_GREEK_1.pm,
+ Locale/IconvData/MACINTOSH.pm, Locale/IconvData/MAC_IS.pm,
+ Locale/IconvData/MAC_SAMI.pm, Locale/IconvData/MAC_UK.pm,
+ Locale/IconvData/NATS_DANO.pm, Locale/IconvData/NATS_SEFI.pm,
+ Locale/IconvData/SAMI_WS2.pm, Locale/IconvData/TIS_620.pm,
+ Locale/IconvData/UTF_8.pm, Locale/IconvData/VISCII.pm: renamed from Iconv to
+ Recode
+
+ * t/00base.t, t/00recode.t, t/01trivial.t, t/02ascii.t, t/02asmo_449.t,
+ t/02atari-st-euro.t, t/02atari-st.t, t/02cp10007.t, t/02cp1250.t,
+ t/02cp1251.t, t/02cp1252.t, t/02cp1253.t, t/02cp1254.t, t/02cp1256.t,
+ t/02cp1257.t, t/02csn_369103.t, t/02cwi.t, t/02dec-mcs.t,
+ t/02ebcdic-at-de-a.t, t/02ebcdic-at-de.t, t/02ebcdic-ca-fr.t,
+ t/02ebcdic-dk-no-a.t, t/02ebcdic-dk-no.t, t/02ebcdic-es-a.t,
+ t/02ebcdic-es-s.t, t/02ebcdic-es.t, t/02ebcdic-fi-se-a.t, t/02ebcdic-fi-se.t,
+ t/02ebcdic-fr.t, t/02ebcdic-is-friss.t, t/02ebcdic-it.t, t/02ebcdic-pt.t,
+ t/02ebcdic-uk.t, t/02ebcdic-us.t, t/02ecma-cyrillic.t,
+ t/02georgian-academy.t, t/02georgian-ps.t, t/02gost_19768-74.t,
+ t/02greek-ccitt.t, t/02greek7-old.t, t/02greek7.t, t/02hp-roman8.t,
+ t/02ibm037.t, t/02ibm038.t, t/02ibm1004.t, t/02ibm1026.t, t/02ibm1047.t,
+ t/02ibm256.t, t/02ibm273.t, t/02ibm274.t, t/02ibm275.t, t/02ibm277.t,
+ t/02ibm278.t, t/02ibm280.t, t/02ibm281.t, t/02ibm284.t, t/02ibm285.t,
+ t/02ibm290.t, t/02ibm297.t, t/02ibm420.t, t/02ibm423.t, t/02ibm424.t,
+ t/02ibm437.t, t/02ibm500.t, t/02ibm850.t, t/02ibm851.t, t/02ibm852.t,
+ t/02ibm855.t, t/02ibm857.t, t/02ibm860.t, t/02ibm861.t, t/02ibm862.t,
+ t/02ibm863.t, t/02ibm864.t, t/02ibm865.t, t/02ibm866.t, t/02ibm868.t,
+ t/02ibm869.t, t/02ibm870.t, t/02ibm871.t, t/02ibm874.t, t/02ibm875.t,
+ t/02ibm880.t, t/02ibm891.t, t/02ibm903.t, t/02ibm904.t, t/02ibm905.t,
+ t/02ibm918.t, t/02iec_p27-1.t, t/02inis-8.t, t/02inis-cyrillic.t, t/02inis.t,
+ t/02iso-8859-1.t, t/02iso-8859-10.t, t/02iso-8859-13.t, t/02iso-8859-14.t,
+ t/02iso-8859-15.t, t/02iso-8859-16.t, t/02iso-8859-2.t, t/02iso-8859-3.t,
+ t/02iso-8859-4.t, t/02iso-8859-5.t, t/02iso-8859-6.t, t/02iso-8859-7.t,
+ t/02iso-8859-8.t, t/02iso-8859-9.t, t/02iso-ir-197.t, t/02iso-ir-209.t,
+ t/02iso_10367-box.t, t/02iso_2033-1983.t, t/02iso_5427-ext.t, t/02iso_5427.t,
+ t/02iso_5428.t, t/02koi-8.t, t/02koi8-r.t, t/02koi8-t.t, t/02koi8-u.t,
+ t/02latin-greek-1.t, t/02latin-greek.t, t/02mac-is.t, t/02mac-sami.t,
+ t/02mac-uk.t, t/02macintosh.t, t/02nats-dano.t, t/02nats-sefi.t,
+ t/02sami-ws2.t, t/02tis-620.t, t/02utf-8.t, t/02viscii.t, t/ascii.t,
+ t/asmo_449.t, t/atari-st-euro.t, t/atari-st.t, t/cp10007.t, t/cp1250.t,
+ t/cp1251.t, t/cp1252.t, t/cp1253.t, t/cp1254.t, t/cp1256.t, t/cp1257.t,
+ t/csn_369103.t, t/cwi.t, t/dec-mcs.t, t/ebcdic-at-de-a.t, t/ebcdic-at-de.t,
+ t/ebcdic-ca-fr.t, t/ebcdic-dk-no-a.t, t/ebcdic-dk-no.t, t/ebcdic-es-a.t,
+ t/ebcdic-es-s.t, t/ebcdic-es.t, t/ebcdic-fi-se-a.t, t/ebcdic-fi-se.t,
+ t/ebcdic-fr.t, t/ebcdic-is-friss.t, t/ebcdic-it.t, t/ebcdic-pt.t,
+ t/ebcdic-uk.t, t/ebcdic-us.t, t/ecma-cyrillic.t, t/georgian-academy.t,
+ t/georgian-ps.t, t/gost_19768-74.t, t/greek-ccitt.t, t/greek7-old.t,
+ t/greek7.t, t/hp-roman8.t, t/ibm037.t, t/ibm038.t, t/ibm1004.t, t/ibm1026.t,
+ t/ibm1047.t, t/ibm256.t, t/ibm273.t, t/ibm274.t, t/ibm275.t, t/ibm277.t,
+ t/ibm278.t, t/ibm280.t, t/ibm281.t, t/ibm284.t, t/ibm285.t, t/ibm290.t,
+ t/ibm297.t, t/ibm420.t, t/ibm423.t, t/ibm424.t, t/ibm437.t, t/ibm500.t,
+ t/ibm850.t, t/ibm851.t, t/ibm852.t, t/ibm855.t, t/ibm857.t, t/ibm860.t,
+ t/ibm861.t, t/ibm862.t, t/ibm863.t, t/ibm864.t, t/ibm865.t, t/ibm866.t,
+ t/ibm868.t, t/ibm869.t, t/ibm870.t, t/ibm871.t, t/ibm874.t, t/ibm875.t,
+ t/ibm880.t, t/ibm891.t, t/ibm903.t, t/ibm904.t, t/ibm905.t, t/ibm918.t,
+ t/iec_p27-1.t, t/inis-8.t, t/inis-cyrillic.t, t/inis.t, t/iso-8859-1.t,
+ t/iso-8859-10.t, t/iso-8859-13.t, t/iso-8859-14.t, t/iso-8859-15.t,
+ t/iso-8859-16.t, t/iso-8859-2.t, t/iso-8859-3.t, t/iso-8859-4.t,
+ t/iso-8859-5.t, t/iso-8859-6.t, t/iso-8859-7.t, t/iso-8859-8.t,
+ t/iso-8859-9.t, t/iso-ir-197.t, t/iso-ir-209.t, t/iso_10367-box.t,
+ t/iso_2033-1983.t, t/iso_5427-ext.t, t/iso_5427.t, t/iso_5428.t, t/koi-8.t,
+ t/koi8-r.t, t/koi8-t.t, t/koi8-u.t, t/latin-greek-1.t, t/latin-greek.t,
+ t/mac-is.t, t/mac-sami.t, t/mac-uk.t, t/macintosh.t, t/nats-dano.t,
+ t/nats-sefi.t, t/sami-ws2.t, t/tis-620.t, t/utf-8.t, t/viscii.t: - added
+ tests for gettext library - put numbers in front of file names (ordered
+ tests)
+
+ * t/03bind_textdomain_codeset.t, t/03bind_textdomain_codeset_pp.t,
+ t/03bindtextdomain.t, t/03bindtextdomain_pp.t, t/03dcgettext.t,
+ t/03dcgettext_pp.t, t/03dcngettext.t, t/03dcngettext_pp.t, t/03dgettext.t,
+ t/03dgettext_pp.t, t/03dngettext.t, t/03dngettext_pp.t, t/03gettext.t,
+ t/03gettext_pp.t, t/03ngettext.t, t/03ngettext_pp.t, t/03textdomain.t,
+ t/03textdomain_pp.t, t/locale/de/LC_MESSAGES/additional.mo,
+ t/locale/de/LC_MESSAGES/existing.mo,
+ t/locale/de_AT/LC_MESSAGES/additional.mo,
+ t/locale/de_AT/LC_MESSAGES/existing.mo: added text for gettext library
+
+ 2002-07-12 Guido Flohr <guido@imperia.net>
+
+ * t/asmo_449.t, t/atari-st-euro.t, t/atari-st.t, t/cp10007.t, t/cp1250.t,
+ t/cp1251.t, t/cp1252.t, t/cp1253.t, t/cp1254.t, t/cp1256.t, t/cp1257.t,
+ t/csn_369103.t, t/cwi.t, t/dec-mcs.t, t/ebcdic-at-de-a.t, t/ebcdic-at-de.t,
+ t/ebcdic-ca-fr.t, t/ebcdic-dk-no-a.t, t/ebcdic-dk-no.t, t/ebcdic-es-a.t,
+ t/ebcdic-es-s.t, t/ebcdic-es.t, t/ebcdic-fi-se-a.t, t/ebcdic-fi-se.t,
+ t/ebcdic-fr.t, t/ebcdic-is-friss.t, t/ebcdic-it.t, t/ebcdic-pt.t,
+ t/ebcdic-uk.t, t/ebcdic-us.t, t/ecma-cyrillic.t, t/georgian-academy.t,
+ t/georgian-ps.t, t/gost_19768-74.t, t/greek-ccitt.t, t/greek7-old.t,
+ t/greek7.t, t/hp-roman8.t, t/ibm037.t, t/ibm038.t, t/ibm1004.t, t/ibm1026.t,
+ t/ibm1047.t, t/ibm256.t, t/ibm273.t, t/ibm274.t, t/ibm275.t, t/ibm277.t,
+ t/ibm278.t, t/ibm280.t, t/ibm281.t, t/ibm284.t, t/ibm285.t, t/ibm290.t,
+ t/ibm297.t, t/ibm420.t, t/ibm423.t, t/ibm424.t, t/ibm437.t, t/ibm500.t,
+ t/ibm850.t, t/ibm851.t, t/ibm852.t, t/ibm855.t, t/ibm857.t, t/ibm860.t,
+ t/ibm861.t, t/ibm862.t, t/ibm863.t, t/ibm864.t, t/ibm865.t, t/ibm866.t,
+ t/ibm868.t, t/ibm869.t, t/ibm870.t, t/ibm871.t, t/ibm874.t, t/ibm875.t,
+ t/ibm880.t, t/ibm891.t, t/ibm903.t, t/ibm904.t, t/ibm905.t, t/ibm918.t,
+ t/iec_p27-1.t, t/inis-8.t, t/inis-cyrillic.t, t/inis.t, t/iso-8859-1.t,
+ t/iso-8859-10.t, t/iso-8859-13.t, t/iso-8859-14.t, t/iso-8859-15.t,
+ t/iso-8859-16.t, t/iso-8859-2.t, t/iso-8859-3.t, t/iso-8859-4.t,
+ t/iso-8859-5.t, t/iso-8859-6.t, t/iso-8859-7.t, t/iso-8859-8.t,
+ t/iso-8859-9.t, t/iso-ir-197.t, t/iso-ir-209.t, t/iso_10367-box.t,
+ t/iso_2033-1983.t, t/iso_5427-ext.t, t/iso_5427.t, t/iso_5428.t, t/koi-8.t,
+ t/koi8-r.t, t/koi8-t.t, t/koi8-u.t, t/latin-greek-1.t, t/latin-greek.t,
+ t/mac-is.t, t/mac-sami.t, t/mac-uk.t, t/macintosh.t, t/nats-dano.t,
+ t/nats-sefi.t, t/sami-ws2.t, t/tis-620.t, t/viscii.t: removed reference to my
+ home directory
+
+ * Locale/Iconv/_Aliases.pm, Locale/Iconv/_Conversions.pm,
+ Locale/IconvData/ASCII.pm, Locale/IconvData/UTF_8.pm, t/ascii.t, t/utf-8.t:
+ new charsets UTF-8 (requires Perl >= 5.6.0) and ASCII.
+
+ 2002-07-10 Guido Flohr <guido@imperia.net>
+
+ * Locale/Iconv.pm: - bumped version number to 0.03
+
+ * Locale/Messages.pm: - properly check for invalid gettext versions
+
+ * test-benchmark: run also against Encode(3pm) in perl 5.8.0
+
+ * Locale/Iconv/_Conversions.pm, Locale/IconvData/ASMO_449.pm,
+ Locale/IconvData/ATARI_ST.pm, Locale/IconvData/ATARI_ST_EURO.pm,
+ Locale/IconvData/CP10007.pm, Locale/IconvData/CP1250.pm,
+ Locale/IconvData/CP1251.pm, Locale/IconvData/CP1252.pm,
+ Locale/IconvData/CP1253.pm, Locale/IconvData/CP1254.pm,
+ Locale/IconvData/CP1256.pm, Locale/IconvData/CP1257.pm,
+ Locale/IconvData/CSN_369103.pm, Locale/IconvData/CWI.pm,
+ Locale/IconvData/DEC_MCS.pm, Locale/IconvData/EBCDIC_AT_DE.pm,
+ Locale/IconvData/EBCDIC_AT_DE_A.pm, Locale/IconvData/EBCDIC_CA_FR.pm,
+ Locale/IconvData/EBCDIC_DK_NO.pm, Locale/IconvData/EBCDIC_DK_NO_A.pm,
+ Locale/IconvData/EBCDIC_ES.pm, Locale/IconvData/EBCDIC_ES_A.pm,
+ Locale/IconvData/EBCDIC_ES_S.pm, Locale/IconvData/EBCDIC_FI_SE.pm,
+ Locale/IconvData/EBCDIC_FI_SE_A.pm, Locale/IconvData/EBCDIC_FR.pm,
+ Locale/IconvData/EBCDIC_IS_FRISS.pm, Locale/IconvData/EBCDIC_IT.pm,
+ Locale/IconvData/EBCDIC_PT.pm, Locale/IconvData/EBCDIC_UK.pm,
+ Locale/IconvData/EBCDIC_US.pm, Locale/IconvData/ECMA_CYRILLIC.pm,
+ Locale/IconvData/GEORGIAN_ACADEMY.pm, Locale/IconvData/GEORGIAN_PS.pm,
+ Locale/IconvData/GOST_19768_74.pm, Locale/IconvData/GREEK7.pm,
+ Locale/IconvData/GREEK7_OLD.pm, Locale/IconvData/GREEK_CCITT.pm,
+ Locale/IconvData/HP_ROMAN8.pm, Locale/IconvData/IBM037.pm,
+ Locale/IconvData/IBM038.pm, Locale/IconvData/IBM1004.pm,
+ Locale/IconvData/IBM1026.pm, Locale/IconvData/IBM1047.pm,
+ Locale/IconvData/IBM256.pm, Locale/IconvData/IBM273.pm,
+ Locale/IconvData/IBM274.pm, Locale/IconvData/IBM275.pm,
+ Locale/IconvData/IBM277.pm, Locale/IconvData/IBM278.pm,
+ Locale/IconvData/IBM280.pm, Locale/IconvData/IBM281.pm,
+ Locale/IconvData/IBM284.pm, Locale/IconvData/IBM285.pm,
+ Locale/IconvData/IBM290.pm, Locale/IconvData/IBM297.pm,
+ Locale/IconvData/IBM420.pm, Locale/IconvData/IBM423.pm,
+ Locale/IconvData/IBM424.pm, Locale/IconvData/IBM437.pm,
+ Locale/IconvData/IBM500.pm, Locale/IconvData/IBM850.pm,
+ Locale/IconvData/IBM851.pm, Locale/IconvData/IBM852.pm,
+ Locale/IconvData/IBM855.pm, Locale/IconvData/IBM857.pm,
+ Locale/IconvData/IBM860.pm, Locale/IconvData/IBM861.pm,
+ Locale/IconvData/IBM862.pm, Locale/IconvData/IBM863.pm,
+ Locale/IconvData/IBM864.pm, Locale/IconvData/IBM865.pm,
+ Locale/IconvData/IBM866.pm, Locale/IconvData/IBM868.pm,
+ Locale/IconvData/IBM869.pm, Locale/IconvData/IBM870.pm,
+ Locale/IconvData/IBM871.pm, Locale/IconvData/IBM874.pm,
+ Locale/IconvData/IBM875.pm, Locale/IconvData/IBM880.pm,
+ Locale/IconvData/IBM891.pm, Locale/IconvData/IBM903.pm,
+ Locale/IconvData/IBM904.pm, Locale/IconvData/IBM905.pm,
+ Locale/IconvData/IBM918.pm, Locale/IconvData/IEC_P27_1.pm,
+ Locale/IconvData/INIS.pm, Locale/IconvData/INIS_8.pm,
+ Locale/IconvData/INIS_CYRILLIC.pm, Locale/IconvData/ISO_10367_BOX.pm,
+ Locale/IconvData/ISO_2033_1983.pm, Locale/IconvData/ISO_5427.pm,
+ Locale/IconvData/ISO_5427_EXT.pm, Locale/IconvData/ISO_5428.pm,
+ Locale/IconvData/ISO_8859_10.pm, Locale/IconvData/ISO_8859_13.pm,
+ Locale/IconvData/ISO_8859_14.pm, Locale/IconvData/ISO_8859_15.pm,
+ Locale/IconvData/ISO_8859_16.pm, Locale/IconvData/ISO_8859_2.pm,
+ Locale/IconvData/ISO_8859_3.pm, Locale/IconvData/ISO_8859_4.pm,
+ Locale/IconvData/ISO_8859_5.pm, Locale/IconvData/ISO_8859_6.pm,
+ Locale/IconvData/ISO_8859_7.pm, Locale/IconvData/ISO_8859_8.pm,
+ Locale/IconvData/ISO_8859_9.pm, Locale/IconvData/ISO_IR_197.pm,
+ Locale/IconvData/ISO_IR_209.pm, Locale/IconvData/KOI8_R.pm,
+ Locale/IconvData/KOI8_T.pm, Locale/IconvData/KOI8_U.pm,
+ Locale/IconvData/KOI_8.pm, Locale/IconvData/LATIN_GREEK.pm,
+ Locale/IconvData/LATIN_GREEK_1.pm, Locale/IconvData/MACINTOSH.pm,
+ Locale/IconvData/MAC_IS.pm, Locale/IconvData/MAC_SAMI.pm,
+ Locale/IconvData/MAC_UK.pm, Locale/IconvData/NATS_DANO.pm,
+ Locale/IconvData/NATS_SEFI.pm, Locale/IconvData/SAMI_WS2.pm,
+ Locale/IconvData/TIS_620.pm, Locale/IconvData/VISCII.pm: - added vim
+ modelines
+
+ * Locale/IconvData/ISO_8859_1.pm: - (hopefully) optimized _recode() - vim
+ modelines
+
+ 2002-07-09 Guido Flohr <guido@imperia.net>
+
+ * MANIFEST: now really removed CVS from MANIFEST
+
+ * THANKS: new file
+
+ * Locale/Messages.pm, Locale/gettext_pp.pm, test-benchmark: new files
+
+ * Locale/Iconv/_Conversions.pm: unnecessary optimizations from module
+ generation :-(
+
+ * Locale/Iconv.pm: bumped version number to 0.02
+
+ * Locale/IconvData/ASMO_449.pm, Locale/IconvData/ATARI_ST.pm,
+ Locale/IconvData/ATARI_ST_EURO.pm, Locale/IconvData/CP10007.pm,
+ Locale/IconvData/CP1250.pm, Locale/IconvData/CP1251.pm,
+ Locale/IconvData/CP1252.pm, Locale/IconvData/CP1253.pm,
+ Locale/IconvData/CP1254.pm, Locale/IconvData/CP1256.pm,
+ Locale/IconvData/CP1257.pm, Locale/IconvData/CSN_369103.pm,
+ Locale/IconvData/CWI.pm, Locale/IconvData/DEC_MCS.pm,
+ Locale/IconvData/EBCDIC_AT_DE.pm, Locale/IconvData/EBCDIC_AT_DE_A.pm,
+ Locale/IconvData/EBCDIC_CA_FR.pm, Locale/IconvData/EBCDIC_DK_NO.pm,
+ Locale/IconvData/EBCDIC_DK_NO_A.pm, Locale/IconvData/EBCDIC_ES.pm,
+ Locale/IconvData/EBCDIC_ES_A.pm, Locale/IconvData/EBCDIC_ES_S.pm,
+ Locale/IconvData/EBCDIC_FI_SE.pm, Locale/IconvData/EBCDIC_FI_SE_A.pm,
+ Locale/IconvData/EBCDIC_FR.pm, Locale/IconvData/EBCDIC_IS_FRISS.pm,
+ Locale/IconvData/EBCDIC_IT.pm, Locale/IconvData/EBCDIC_PT.pm,
+ Locale/IconvData/EBCDIC_UK.pm, Locale/IconvData/EBCDIC_US.pm,
+ Locale/IconvData/ECMA_CYRILLIC.pm, Locale/IconvData/GEORGIAN_ACADEMY.pm,
+ Locale/IconvData/GEORGIAN_PS.pm, Locale/IconvData/GOST_19768_74.pm,
+ Locale/IconvData/GREEK7.pm, Locale/IconvData/GREEK7_OLD.pm,
+ Locale/IconvData/GREEK_CCITT.pm, Locale/IconvData/HP_ROMAN8.pm,
+ Locale/IconvData/IBM037.pm, Locale/IconvData/IBM038.pm,
+ Locale/IconvData/IBM1004.pm, Locale/IconvData/IBM1026.pm,
+ Locale/IconvData/IBM1047.pm, Locale/IconvData/IBM256.pm,
+ Locale/IconvData/IBM273.pm, Locale/IconvData/IBM274.pm,
+ Locale/IconvData/IBM275.pm, Locale/IconvData/IBM277.pm,
+ Locale/IconvData/IBM278.pm, Locale/IconvData/IBM280.pm,
+ Locale/IconvData/IBM281.pm, Locale/IconvData/IBM284.pm,
+ Locale/IconvData/IBM285.pm, Locale/IconvData/IBM290.pm,
+ Locale/IconvData/IBM297.pm, Locale/IconvData/IBM420.pm,
+ Locale/IconvData/IBM423.pm, Locale/IconvData/IBM424.pm,
+ Locale/IconvData/IBM437.pm, Locale/IconvData/IBM500.pm,
+ Locale/IconvData/IBM850.pm, Locale/IconvData/IBM851.pm,
+ Locale/IconvData/IBM852.pm, Locale/IconvData/IBM855.pm,
+ Locale/IconvData/IBM857.pm, Locale/IconvData/IBM860.pm,
+ Locale/IconvData/IBM861.pm, Locale/IconvData/IBM862.pm,
+ Locale/IconvData/IBM863.pm, Locale/IconvData/IBM864.pm,
+ Locale/IconvData/IBM865.pm, Locale/IconvData/IBM866.pm,
+ Locale/IconvData/IBM868.pm, Locale/IconvData/IBM869.pm,
+ Locale/IconvData/IBM870.pm, Locale/IconvData/IBM871.pm,
+ Locale/IconvData/IBM874.pm, Locale/IconvData/IBM875.pm,
+ Locale/IconvData/IBM880.pm, Locale/IconvData/IBM891.pm,
+ Locale/IconvData/IBM903.pm, Locale/IconvData/IBM904.pm,
+ Locale/IconvData/IBM905.pm, Locale/IconvData/IBM918.pm,
+ Locale/IconvData/IEC_P27_1.pm, Locale/IconvData/INIS.pm,
+ Locale/IconvData/INIS_8.pm, Locale/IconvData/INIS_CYRILLIC.pm,
+ Locale/IconvData/ISO_10367_BOX.pm, Locale/IconvData/ISO_2033_1983.pm,
+ Locale/IconvData/ISO_5427.pm, Locale/IconvData/ISO_5427_EXT.pm,
+ Locale/IconvData/ISO_5428.pm, Locale/IconvData/ISO_8859_10.pm,
+ Locale/IconvData/ISO_8859_13.pm, Locale/IconvData/ISO_8859_14.pm,
+ Locale/IconvData/ISO_8859_15.pm, Locale/IconvData/ISO_8859_16.pm,
+ Locale/IconvData/ISO_8859_2.pm, Locale/IconvData/ISO_8859_3.pm,
+ Locale/IconvData/ISO_8859_4.pm, Locale/IconvData/ISO_8859_5.pm,
+ Locale/IconvData/ISO_8859_6.pm, Locale/IconvData/ISO_8859_7.pm,
+ Locale/IconvData/ISO_8859_8.pm, Locale/IconvData/ISO_8859_9.pm,
+ Locale/IconvData/ISO_IR_197.pm, Locale/IconvData/ISO_IR_209.pm,
+ Locale/IconvData/KOI8_R.pm, Locale/IconvData/KOI8_T.pm,
+ Locale/IconvData/KOI8_U.pm, Locale/IconvData/KOI_8.pm,
+ Locale/IconvData/LATIN_GREEK.pm, Locale/IconvData/LATIN_GREEK_1.pm,
+ Locale/IconvData/MACINTOSH.pm, Locale/IconvData/MAC_IS.pm,
+ Locale/IconvData/MAC_SAMI.pm, Locale/IconvData/MAC_UK.pm,
+ Locale/IconvData/NATS_DANO.pm, Locale/IconvData/NATS_SEFI.pm,
+ Locale/IconvData/SAMI_WS2.pm, Locale/IconvData/TIS_620.pm,
+ Locale/IconvData/VISCII.pm: performance optimizations
+
+ * MANIFEST: - removed CVS from manifest - added Locale/Messages.pm and
+ Locale/gettext_pp.pm - added test-benchmark
+
+ 2002-07-08 Guido Flohr <guido@imperia.net>
+
+ * Artistic, COPYING, Locale/Iconv.pm, Locale/Iconv/_Aliases.pm,
+ Locale/Iconv/_Conversions.pm, Locale/IconvData.pm,
+ Locale/IconvData/ASMO_449.pm, Locale/IconvData/ATARI_ST.pm,
+ Locale/IconvData/ATARI_ST_EURO.pm, Locale/IconvData/CP10007.pm,
+ Locale/IconvData/CP1250.pm, Locale/IconvData/CP1251.pm,
+ Locale/IconvData/CP1252.pm, Locale/IconvData/CP1253.pm,
+ Locale/IconvData/CP1254.pm, Locale/IconvData/CP1256.pm,
+ Locale/IconvData/CP1257.pm, Locale/IconvData/CSN_369103.pm,
+ Locale/IconvData/CWI.pm, Locale/IconvData/DEC_MCS.pm,
+ Locale/IconvData/EBCDIC_AT_DE.pm, Locale/IconvData/EBCDIC_AT_DE_A.pm,
+ Locale/IconvData/EBCDIC_CA_FR.pm, Locale/IconvData/EBCDIC_DK_NO.pm,
+ Locale/IconvData/EBCDIC_DK_NO_A.pm, Locale/IconvData/EBCDIC_ES.pm,
+ Locale/IconvData/EBCDIC_ES_A.pm, Locale/IconvData/EBCDIC_ES_S.pm,
+ Locale/IconvData/EBCDIC_FI_SE.pm, Locale/IconvData/EBCDIC_FI_SE_A.pm,
+ Locale/IconvData/EBCDIC_FR.pm, Locale/IconvData/EBCDIC_IS_FRISS.pm,
+ Locale/IconvData/EBCDIC_IT.pm, Locale/IconvData/EBCDIC_PT.pm,
+ Locale/IconvData/EBCDIC_UK.pm, Locale/IconvData/EBCDIC_US.pm,
+ Locale/IconvData/ECMA_CYRILLIC.pm, Locale/IconvData/GEORGIAN_ACADEMY.pm,
+ Locale/IconvData/GEORGIAN_PS.pm, Locale/IconvData/GOST_19768_74.pm,
+ Locale/IconvData/GREEK7.pm, Locale/IconvData/GREEK7_OLD.pm,
+ Locale/IconvData/GREEK_CCITT.pm, Locale/IconvData/HP_ROMAN8.pm,
+ Locale/IconvData/IBM037.pm, Locale/IconvData/IBM038.pm,
+ Locale/IconvData/IBM1004.pm, Locale/IconvData/IBM1026.pm,
+ Locale/IconvData/IBM1047.pm, Locale/IconvData/IBM256.pm,
+ Locale/IconvData/IBM273.pm, Locale/IconvData/IBM274.pm,
+ Locale/IconvData/IBM275.pm, Locale/IconvData/IBM277.pm,
+ Locale/IconvData/IBM278.pm, Locale/IconvData/IBM280.pm,
+ Locale/IconvData/IBM281.pm, Locale/IconvData/IBM284.pm,
+ Locale/IconvData/IBM285.pm, Locale/IconvData/IBM290.pm,
+ Locale/IconvData/IBM297.pm, Locale/IconvData/IBM420.pm,
+ Locale/IconvData/IBM423.pm, Locale/IconvData/IBM424.pm,
+ Locale/IconvData/IBM437.pm, Locale/IconvData/IBM500.pm,
+ Locale/IconvData/IBM850.pm, Locale/IconvData/IBM851.pm,
+ Locale/IconvData/IBM852.pm, Locale/IconvData/IBM855.pm,
+ Locale/IconvData/IBM857.pm, Locale/IconvData/IBM860.pm,
+ Locale/IconvData/IBM861.pm, Locale/IconvData/IBM862.pm,
+ Locale/IconvData/IBM863.pm, Locale/IconvData/IBM864.pm,
+ Locale/IconvData/IBM865.pm, Locale/IconvData/IBM866.pm,
+ Locale/IconvData/IBM868.pm, Locale/IconvData/IBM869.pm,
+ Locale/IconvData/IBM870.pm, Locale/IconvData/IBM871.pm,
+ Locale/IconvData/IBM874.pm, Locale/IconvData/IBM875.pm,
+ Locale/IconvData/IBM880.pm, Locale/IconvData/IBM891.pm,
+ Locale/IconvData/IBM903.pm, Locale/IconvData/IBM904.pm,
+ Locale/IconvData/IBM905.pm, Locale/IconvData/IBM918.pm,
+ Locale/IconvData/IEC_P27_1.pm, Locale/IconvData/INIS.pm,
+ Locale/IconvData/INIS_8.pm, Locale/IconvData/INIS_CYRILLIC.pm,
+ Locale/IconvData/ISO_10367_BOX.pm, Locale/IconvData/ISO_2033_1983.pm,
+ Locale/IconvData/ISO_5427.pm, Locale/IconvData/ISO_5427_EXT.pm,
+ Locale/IconvData/ISO_5428.pm, Locale/IconvData/ISO_8859_1.pm,
+ Locale/IconvData/ISO_8859_10.pm, Locale/IconvData/ISO_8859_13.pm,
+ Locale/IconvData/ISO_8859_14.pm, Locale/IconvData/ISO_8859_15.pm,
+ Locale/IconvData/ISO_8859_16.pm, Locale/IconvData/ISO_8859_2.pm,
+ Locale/IconvData/ISO_8859_3.pm, Locale/IconvData/ISO_8859_4.pm,
+ Locale/IconvData/ISO_8859_5.pm, Locale/IconvData/ISO_8859_6.pm,
+ Locale/IconvData/ISO_8859_7.pm, Locale/IconvData/ISO_8859_8.pm,
+ Locale/IconvData/ISO_8859_9.pm, Locale/IconvData/ISO_IR_197.pm,
+ Locale/IconvData/ISO_IR_209.pm, Locale/IconvData/KOI8_R.pm,
+ Locale/IconvData/KOI8_T.pm, Locale/IconvData/KOI8_U.pm,
+ Locale/IconvData/KOI_8.pm, Locale/IconvData/LATIN_GREEK.pm,
+ Locale/IconvData/LATIN_GREEK_1.pm, Locale/IconvData/MACINTOSH.pm,
+ Locale/IconvData/MAC_IS.pm, Locale/IconvData/MAC_SAMI.pm,
+ Locale/IconvData/MAC_UK.pm, Locale/IconvData/NATS_DANO.pm,
+ Locale/IconvData/NATS_SEFI.pm, Locale/IconvData/SAMI_WS2.pm,
+ Locale/IconvData/TIS_620.pm, Locale/IconvData/VISCII.pm, MANIFEST,
+ Makefile.PL, README, t/00base.t, t/01trivial.t, t/asmo_449.t,
+ t/atari-st-euro.t, t/atari-st.t, t/cp10007.t, t/cp1250.t, t/cp1251.t,
+ t/cp1252.t, t/cp1253.t, t/cp1254.t, t/cp1256.t, t/cp1257.t, t/csn_369103.t,
+ t/cwi.t, t/dec-mcs.t, t/ebcdic-at-de-a.t, t/ebcdic-at-de.t, t/ebcdic-ca-fr.t,
+ t/ebcdic-dk-no-a.t, t/ebcdic-dk-no.t, t/ebcdic-es-a.t, t/ebcdic-es-s.t,
+ t/ebcdic-es.t, t/ebcdic-fi-se-a.t, t/ebcdic-fi-se.t, t/ebcdic-fr.t,
+ t/ebcdic-is-friss.t, t/ebcdic-it.t, t/ebcdic-pt.t, t/ebcdic-uk.t,
+ t/ebcdic-us.t, t/ecma-cyrillic.t, t/georgian-academy.t, t/georgian-ps.t,
+ t/gost_19768-74.t, t/greek-ccitt.t, t/greek7-old.t, t/greek7.t,
+ t/hp-roman8.t, t/ibm037.t, t/ibm038.t, t/ibm1004.t, t/ibm1026.t, t/ibm1047.t,
+ t/ibm256.t, t/ibm273.t, t/ibm274.t, t/ibm275.t, t/ibm277.t, t/ibm278.t,
+ t/ibm280.t, t/ibm281.t, t/ibm284.t, t/ibm285.t, t/ibm290.t, t/ibm297.t,
+ t/ibm420.t, t/ibm423.t, t/ibm424.t, t/ibm437.t, t/ibm500.t, t/ibm850.t,
+ t/ibm851.t, t/ibm852.t, t/ibm855.t, t/ibm857.t, t/ibm860.t, t/ibm861.t,
+ t/ibm862.t, t/ibm863.t, t/ibm864.t, t/ibm865.t, t/ibm866.t, t/ibm868.t,
+ t/ibm869.t, t/ibm870.t, t/ibm871.t, t/ibm874.t, t/ibm875.t, t/ibm880.t,
+ t/ibm891.t, t/ibm903.t, t/ibm904.t, t/ibm905.t, t/ibm918.t, t/iec_p27-1.t,
+ t/inis-8.t, t/inis-cyrillic.t, t/inis.t, t/iso-8859-1.t, t/iso-8859-10.t,
+ t/iso-8859-13.t, t/iso-8859-14.t, t/iso-8859-15.t, t/iso-8859-16.t,
+ t/iso-8859-2.t, t/iso-8859-3.t, t/iso-8859-4.t, t/iso-8859-5.t,
+ t/iso-8859-6.t, t/iso-8859-7.t, t/iso-8859-8.t, t/iso-8859-9.t,
+ t/iso-ir-197.t, t/iso-ir-209.t, t/iso_10367-box.t, t/iso_2033-1983.t,
+ t/iso_5427-ext.t, t/iso_5427.t, t/iso_5428.t, t/koi-8.t, t/koi8-r.t,
+ t/koi8-t.t, t/koi8-u.t, t/latin-greek-1.t, t/latin-greek.t, t/mac-is.t,
+ t/mac-sami.t, t/mac-uk.t, t/macintosh.t, t/nats-dano.t, t/nats-sefi.t,
+ t/sami-ws2.t, t/tis-620.t, t/viscii.t: Initial revision
diff --git a/tp/maintain/lib/libintl-perl/Credits b/tp/maintain/lib/libintl-perl/Credits
new file mode 100644
index 0000000..41a38f0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/Credits
@@ -0,0 +1,40 @@
+$Id: Credits,v 1.1 2011-10-12 23:51:23 pertusus Exp $
+
+These people have helped in the development of libintl-perl:
+
+- Imperia (http://www.imperia.net/) has contributed this part of the
+ Enterprise Content Management System Imperia to the Perl community
+ as free software.
+
+- Joshua Miller <unrtst@cpan.com> has extended libintl-perl to provide
+ the important context-sensitive functions (pgettext() and friends).
+
+- Christian Lackas <delta@lackas.net> has given various hints on
+ performance optimizations
+
+- Ingrid Gräfen <ingrid.graefen@imperia.net> has fixed a major performance
+ penalty on systems without POSIX::LC_MESSAGES, and she has extensively
+ tested the Perl backend for GNU xgettext under cygwin
+
+- Norma Karl <bcrazy@gmx.de> has thoroughly revised the documentation for
+ the Perl backend to GNU xgettext, and she deserves a credit anyway
+
+- Bruno Haible for libiconv which was the base for many conversions and
+ for integrating my Perl backend into GNU gettext
+
+Other people have helped by sending in improvements, suggestions and
+bug reports:
+
+- DH <crazyinsomniac@yahoo.com>
+- Jo-Even Skarstein <joska@nvg.org>
+- Gerhard Stoll <gerhard_stoll@gmx.de>
+- Marc Brockschmidt <marc@marcbrockschmidt.de>
+- Laurent Bonnaud <Laurent.Bonnaud@inpg.fr>
+- Jan Kratochvil <lace@jankratochvil.net>
+- Светослав Агафонкин <slavi.agafonkin@imperia.net>
+- Michael Bell <michael.bell@cms.hu-berlin.de>
+- David Cantrell <dcantrell@cpan.org>
+
+Please inform me if I have forgotten your contribution.
+
+Guido Flohr
diff --git a/tp/maintain/lib/libintl-perl/FAQ b/tp/maintain/lib/libintl-perl/FAQ
new file mode 100644
index 0000000..5f49496
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/FAQ
@@ -0,0 +1,7 @@
+$Id: FAQ,v 1.1 2011-10-12 23:51:23 pertusus Exp $
+
+The FAQ has been podified, see "perldoc Locale::libintlFAQ". If you
+haven't installed libintl-perl and read this file in the source distribution,
+either try "perldoc lib/Locale/libintlFAQ.pod", or point your favorite
+web browser to
+http://search.cpan.org/~guido/libintl-perl/lib/Locale/libintlFAQ.pod.
diff --git a/tp/maintain/lib/libintl-perl/MANIFEST b/tp/maintain/lib/libintl-perl/MANIFEST
new file mode 100644
index 0000000..b4663f5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/MANIFEST
@@ -0,0 +1,390 @@
+COPYING.LESSER Lesser GNU Public License
+ChangeLog Detailed list of changes
+FAQ Frequently asked questions
+MANIFEST This list of files
+META.yml Generated
+Makefile.PL Makefile generator
+MyInstall.pm Workaround file
+NEWS Latest Changes
+ReleaseNotes Same as NEWS
+README Read it
+README-oldversions Where are old versions of this module?
+README.solaris Build libintl-perl on Solaris platforms
+README.win32 Build libintl-perl on MS-DOS platforms
+REFERENCES Who uses libintl-perl?
+THANKS Contributors
+Credits Same as THANKS
+TODO Missing
+gettext_xs/Makefile.PL Makefile generator
+gettext_xs/gettext_xs.pm XS loader
+gettext_xs/gettext_xs.xs XS binding
+lib/Locale/Messages.pm Gettext Like Message Retrieval
+lib/Locale/Recode.pm Object−Oriented Portable Charset Conversion
+lib/Locale/Recode/_Aliases.pm
+lib/Locale/Recode/_Conversions.pm
+lib/Locale/RecodeData.pm
+lib/Locale/RecodeData/ASMO_449.pm
+lib/Locale/RecodeData/ATARI_ST.pm
+lib/Locale/RecodeData/ATARI_ST_EURO.pm
+lib/Locale/RecodeData/CP10007.pm
+lib/Locale/RecodeData/CP1250.pm
+lib/Locale/RecodeData/CP1251.pm
+lib/Locale/RecodeData/CP1252.pm
+lib/Locale/RecodeData/CP1253.pm
+lib/Locale/RecodeData/CP1254.pm
+lib/Locale/RecodeData/CP1256.pm
+lib/Locale/RecodeData/CP1257.pm
+lib/Locale/RecodeData/CSN_369103.pm
+lib/Locale/RecodeData/CWI.pm
+lib/Locale/RecodeData/DEC_MCS.pm
+lib/Locale/RecodeData/EBCDIC_AT_DE.pm
+lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm
+lib/Locale/RecodeData/EBCDIC_CA_FR.pm
+lib/Locale/RecodeData/EBCDIC_DK_NO.pm
+lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm
+lib/Locale/RecodeData/EBCDIC_ES.pm
+lib/Locale/RecodeData/EBCDIC_ES_A.pm
+lib/Locale/RecodeData/EBCDIC_ES_S.pm
+lib/Locale/RecodeData/EBCDIC_FI_SE.pm
+lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm
+lib/Locale/RecodeData/EBCDIC_FR.pm
+lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm
+lib/Locale/RecodeData/EBCDIC_IT.pm
+lib/Locale/RecodeData/EBCDIC_PT.pm
+lib/Locale/RecodeData/EBCDIC_UK.pm
+lib/Locale/RecodeData/EBCDIC_US.pm
+lib/Locale/RecodeData/ECMA_CYRILLIC.pm
+lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm
+lib/Locale/RecodeData/GEORGIAN_PS.pm
+lib/Locale/RecodeData/GOST_19768_74.pm
+lib/Locale/RecodeData/GREEK7.pm
+lib/Locale/RecodeData/GREEK7_OLD.pm
+lib/Locale/RecodeData/GREEK_CCITT.pm
+lib/Locale/RecodeData/HP_ROMAN8.pm
+lib/Locale/RecodeData/IBM037.pm
+lib/Locale/RecodeData/IBM038.pm
+lib/Locale/RecodeData/IBM1004.pm
+lib/Locale/RecodeData/IBM1026.pm
+lib/Locale/RecodeData/IBM1047.pm
+lib/Locale/RecodeData/IBM256.pm
+lib/Locale/RecodeData/IBM273.pm
+lib/Locale/RecodeData/IBM274.pm
+lib/Locale/RecodeData/IBM275.pm
+lib/Locale/RecodeData/IBM277.pm
+lib/Locale/RecodeData/IBM278.pm
+lib/Locale/RecodeData/IBM280.pm
+lib/Locale/RecodeData/IBM281.pm
+lib/Locale/RecodeData/IBM284.pm
+lib/Locale/RecodeData/IBM285.pm
+lib/Locale/RecodeData/IBM290.pm
+lib/Locale/RecodeData/IBM297.pm
+lib/Locale/RecodeData/IBM420.pm
+lib/Locale/RecodeData/IBM423.pm
+lib/Locale/RecodeData/IBM424.pm
+lib/Locale/RecodeData/IBM437.pm
+lib/Locale/RecodeData/IBM500.pm
+lib/Locale/RecodeData/IBM850.pm
+lib/Locale/RecodeData/IBM851.pm
+lib/Locale/RecodeData/IBM852.pm
+lib/Locale/RecodeData/IBM855.pm
+lib/Locale/RecodeData/IBM857.pm
+lib/Locale/RecodeData/IBM860.pm
+lib/Locale/RecodeData/IBM861.pm
+lib/Locale/RecodeData/IBM862.pm
+lib/Locale/RecodeData/IBM863.pm
+lib/Locale/RecodeData/IBM864.pm
+lib/Locale/RecodeData/IBM865.pm
+lib/Locale/RecodeData/IBM866.pm
+lib/Locale/RecodeData/IBM868.pm
+lib/Locale/RecodeData/IBM869.pm
+lib/Locale/RecodeData/IBM870.pm
+lib/Locale/RecodeData/IBM871.pm
+lib/Locale/RecodeData/IBM874.pm
+lib/Locale/RecodeData/IBM875.pm
+lib/Locale/RecodeData/IBM880.pm
+lib/Locale/RecodeData/IBM891.pm
+lib/Locale/RecodeData/IBM903.pm
+lib/Locale/RecodeData/IBM904.pm
+lib/Locale/RecodeData/IBM905.pm
+lib/Locale/RecodeData/IBM918.pm
+lib/Locale/RecodeData/IEC_P27_1.pm
+lib/Locale/RecodeData/INIS.pm
+lib/Locale/RecodeData/INIS_8.pm
+lib/Locale/RecodeData/INIS_CYRILLIC.pm
+lib/Locale/RecodeData/ISO_10367_BOX.pm
+lib/Locale/RecodeData/ISO_2033_1983.pm
+lib/Locale/RecodeData/ISO_5427.pm
+lib/Locale/RecodeData/ISO_5427_EXT.pm
+lib/Locale/RecodeData/ISO_5428.pm
+lib/Locale/RecodeData/ISO_8859_1.pm
+lib/Locale/RecodeData/ISO_8859_10.pm
+lib/Locale/RecodeData/ISO_8859_11.pm
+lib/Locale/RecodeData/ISO_8859_13.pm
+lib/Locale/RecodeData/ISO_8859_14.pm
+lib/Locale/RecodeData/ISO_8859_15.pm
+lib/Locale/RecodeData/ISO_8859_16.pm
+lib/Locale/RecodeData/ISO_8859_2.pm
+lib/Locale/RecodeData/ISO_8859_3.pm
+lib/Locale/RecodeData/ISO_8859_4.pm
+lib/Locale/RecodeData/ISO_8859_5.pm
+lib/Locale/RecodeData/ISO_8859_6.pm
+lib/Locale/RecodeData/ISO_8859_7.pm
+lib/Locale/RecodeData/ISO_8859_8.pm
+lib/Locale/RecodeData/ISO_8859_9.pm
+lib/Locale/RecodeData/KOI8_R.pm
+lib/Locale/RecodeData/KOI8_RU.pm
+lib/Locale/RecodeData/KOI8_T.pm
+lib/Locale/RecodeData/KOI8_U.pm
+lib/Locale/RecodeData/KOI_8.pm
+lib/Locale/RecodeData/LATIN_GREEK.pm
+lib/Locale/RecodeData/LATIN_GREEK_1.pm
+lib/Locale/RecodeData/MACARABIC.pm
+lib/Locale/RecodeData/MACCROATIAN.pm
+lib/Locale/RecodeData/MACCYRILLIC.pm
+lib/Locale/RecodeData/MACGREEK.pm
+lib/Locale/RecodeData/MACHEBREW.pm
+lib/Locale/RecodeData/MACICELAND.pm
+lib/Locale/RecodeData/MACINTOSH.pm
+lib/Locale/RecodeData/MACROMANIA.pm
+lib/Locale/RecodeData/MACTHAI.pm
+lib/Locale/RecodeData/MACTURKISH.pm
+lib/Locale/RecodeData/MACUKRAINE.pm
+lib/Locale/RecodeData/MAC_IS.pm
+lib/Locale/RecodeData/MAC_SAMI.pm
+lib/Locale/RecodeData/MAC_UK.pm
+lib/Locale/RecodeData/NATS_DANO.pm
+lib/Locale/RecodeData/NATS_SEFI.pm
+lib/Locale/RecodeData/NEXTSTEP.pm
+lib/Locale/RecodeData/SAMI_WS2.pm
+lib/Locale/RecodeData/TIS_620.pm
+lib/Locale/RecodeData/US_ASCII.pm
+lib/Locale/RecodeData/UTF_8.pm
+lib/Locale/RecodeData/VISCII.pm
+lib/Locale/RecodeData/_Encode.pm
+lib/Locale/TextDomain.pm
+lib/Locale/Util.pm Attention! Alpha code!
+lib/Locale/gettext_pp.pm
+lib/Locale/gettext_xs.pod
+lib/Locale/libintlFAQ.pod
+sample/README
+sample/simplecal/MANIFEST
+sample/simplecal/Makefile.PL
+sample/simplecal/README-NLS
+sample/simplecal/TRANSLATIONS
+sample/simplecal/bin/simplecal.pl
+sample/simplecal/lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mo
+sample/simplecal/lib/SimpleCal.pm
+sample/simplecal/po/Makefile
+sample/simplecal/po/PACKAGE
+sample/simplecal/po/POTFILES.in
+sample/simplecal/po/ar.po
+sample/simplecal/po/ar_SA.po
+sample/simplecal/po/de.po
+sample/simplecal/po/de_AT.po
+sample/simplecal/po/fr.po
+sample/simplecal/po/ga.po
+sample/simplecal/po/it.po
+sample/simplecal/po/nl.po
+sample/simplecal/po/org.imperia.simplecal.pot
+sample/simplecal/po/pt.po
+sample/simplecal/po/pt_BR.po
+sample/simplecal/po/ru.po
+test.pl
+tests/00gettext.t
+tests/00recode.t
+tests/01trivial.t
+tests/02asmo_449.t
+tests/02atari-st-euro.t
+tests/02atari-st.t
+tests/02cp10007.t
+tests/02cp1250.t
+tests/02cp1251.t
+tests/02cp1252.t
+tests/02cp1253.t
+tests/02cp1254.t
+tests/02cp1256.t
+tests/02cp1257.t
+tests/02csn_369103.t
+tests/02cwi.t
+tests/02dec-mcs.t
+tests/02ebcdic-at-de-a.t
+tests/02ebcdic-at-de.t
+tests/02ebcdic-ca-fr.t
+tests/02ebcdic-dk-no-a.t
+tests/02ebcdic-dk-no.t
+tests/02ebcdic-es-a.t
+tests/02ebcdic-es-s.t
+tests/02ebcdic-es.t
+tests/02ebcdic-fi-se-a.t
+tests/02ebcdic-fi-se.t
+tests/02ebcdic-fr.t
+tests/02ebcdic-is-friss.t
+tests/02ebcdic-it.t
+tests/02ebcdic-pt.t
+tests/02ebcdic-uk.t
+tests/02ebcdic-us.t
+tests/02ecma-cyrillic.t
+tests/02georgian-academy.t
+tests/02georgian-ps.t
+tests/02gost_19768-74.t
+tests/02greek-ccitt.t
+tests/02greek7-old.t
+tests/02greek7.t
+tests/02hp-roman8.t
+tests/02ibm037.t
+tests/02ibm038.t
+tests/02ibm1004.t
+tests/02ibm1026.t
+tests/02ibm1047.t
+tests/02ibm256.t
+tests/02ibm273.t
+tests/02ibm274.t
+tests/02ibm275.t
+tests/02ibm277.t
+tests/02ibm278.t
+tests/02ibm280.t
+tests/02ibm281.t
+tests/02ibm284.t
+tests/02ibm285.t
+tests/02ibm290.t
+tests/02ibm297.t
+tests/02ibm420.t
+tests/02ibm423.t
+tests/02ibm424.t
+tests/02ibm437.t
+tests/02ibm500.t
+tests/02ibm850.t
+tests/02ibm851.t
+tests/02ibm852.t
+tests/02ibm855.t
+tests/02ibm857.t
+tests/02ibm860.t
+tests/02ibm861.t
+tests/02ibm862.t
+tests/02ibm863.t
+tests/02ibm864.t
+tests/02ibm865.t
+tests/02ibm866.t
+tests/02ibm868.t
+tests/02ibm869.t
+tests/02ibm870.t
+tests/02ibm871.t
+tests/02ibm874.t
+tests/02ibm875.t
+tests/02ibm880.t
+tests/02ibm891.t
+tests/02ibm903.t
+tests/02ibm904.t
+tests/02ibm905.t
+tests/02ibm918.t
+tests/02iec_p27-1.t
+tests/02inis-8.t
+tests/02inis-cyrillic.t
+tests/02inis.t
+tests/02iso-8859-1.t
+tests/02iso-8859-10.t
+tests/02iso-8859-11.t
+tests/02iso-8859-13.t
+tests/02iso-8859-14.t
+tests/02iso-8859-15.t
+tests/02iso-8859-16.t
+tests/02iso-8859-2.t
+tests/02iso-8859-3.t
+tests/02iso-8859-4.t
+tests/02iso-8859-5.t
+tests/02iso-8859-6.t
+tests/02iso-8859-7.t
+tests/02iso-8859-8.t
+tests/02iso-8859-9.t
+tests/02iso_10367-box.t
+tests/02iso_2033-1983.t
+tests/02iso_5427-ext.t
+tests/02iso_5427.t
+tests/02iso_5428.t
+tests/02koi-8.t
+tests/02koi8-r.t
+tests/02koi8-ru.t
+tests/02koi8-t.t
+tests/02koi8-u.t
+tests/02latin-greek-1.t
+tests/02latin-greek.t
+tests/02mac-is.t
+tests/02mac-sami.t
+tests/02mac-uk.t
+tests/02macarabic.t
+tests/02maccroatian.t
+tests/02maccyrillic.t
+tests/02macgreek.t
+tests/02machebrew.t
+tests/02maciceland.t
+tests/02macintosh.t
+tests/02macromania.t
+tests/02macthai.t
+tests/02macturkish.t
+tests/02macukraine.t
+tests/02nats-dano.t
+tests/02nats-sefi.t
+tests/02nextstep.t
+tests/02sami-ws2.t
+tests/02tis-620.t
+tests/02us-ascii.t
+tests/02utf-8.t
+tests/02viscii.t
+tests/03_tester_david_pp.t
+tests/03_tester_david_xs.t
+tests/03bind_textdomain_codeset_pp.t
+tests/03bind_textdomain_codeset_xs.t
+tests/03bind_textdomain_filter_pp.t
+tests/03bind_textdomain_filter_xs.t
+tests/03bindtextdomain_pp.t
+tests/03bindtextdomain_xs.t
+tests/03dcgettext_pp.t
+tests/03dcgettext_xs.t
+tests/03dcngettext_pp.t
+tests/03dcngettext_xs.t
+tests/03dcnpgettext_pp.t
+tests/03dcnpgettext_xs.t
+tests/03dcpgettext_pp.t
+tests/03dcpgettext_xs.t
+tests/03dgettext_pp.t
+tests/03dgettext_xs.t
+tests/03dngettext_pp.t
+tests/03dngettext_xs.t
+tests/03dnpgettext_pp.t
+tests/03dnpgettext_xs.t
+tests/03dpgettext_pp.t
+tests/03dpgettext_xs.t
+tests/03gettext_pp.t
+tests/03gettext_xs.t
+tests/03language_pp.t
+tests/03ngettext_pp.t
+tests/03ngettext_xs.t
+tests/03npgettext_pp.t
+tests/03npgettext_xs.t
+tests/03pgettext_pp.t
+tests/03pgettext_xs.t
+tests/03textdomain_pp.t
+tests/03textdomain_xs.t
+tests/04find_domain_bug.t
+tests/04scalar_noop.t
+tests/05parse_accept.t
+tests/LocaleData/de/LC_MESSAGES/additional.mo
+tests/LocaleData/de/LC_MESSAGES/existing.mo
+tests/LocaleData/de_AT/LC_MESSAGES/additional.mo
+tests/LocaleData/de_AT/LC_MESSAGES/existing.mo
+tests/po/Makefile
+tests/po/additional.de.po
+tests/po/additional.de_AT.po
+tests/po/existing.de.po
+tests/po/existing.de_AT.po
+META.yml Module meta-data (added by MakeMaker)
diff --git a/tp/maintain/lib/libintl-perl/META.yml b/tp/maintain/lib/libintl-perl/META.yml
new file mode 100644
index 0000000..a30ccfa
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/META.yml
@@ -0,0 +1,11 @@
+# http://module-build.sourceforge.net/META-spec.html
+#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
+name: libintl-perl
+version: 1.20
+version_from: lib/Locale/Messages.pm
+installdirs: site
+requires:
+ File::Spec: 0
+
+distribution_type: module
+generated_by: ExtUtils::MakeMaker version 6.30
diff --git a/tp/maintain/lib/libintl-perl/Makefile.PL b/tp/maintain/lib/libintl-perl/Makefile.PL
new file mode 100644
index 0000000..5f64a59
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/Makefile.PL
@@ -0,0 +1,244 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# $Id: Makefile.PL,v 1.1 2011-10-12 23:51:23 pertusus Exp $
+
+# Makefile generator for libintl-perl.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.use ExtUtils::MakeMaker;
+
+use 5.004;
+use ExtUtils::MakeMaker;
+
+# Make standard channels unbuffered.
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+# Now try to compile and link a simple test program that uses all
+# gettext facilities we need. Failure of the test is not fatal
+# since the pure Perl implementation will provide the same functionality.
+# However, any help on making this test more portable would be
+# highly appreciated!
+
+use Config;
+
+my $c_code = <<'EOF';
+/* The following code only compiles if the interface to gettext is
+ complete. */
+
+#include <libintl.h>
+/* Handle the case that we link against GNU libintl but include a non
+ * GNU libintl.h. */
+#ifndef __USE_GNU_GETTEXT
+# error "<libintl.h> is not GNU gettext. Maybe you have to adjust your include path."
+#endif
+
+#include <locale.h>
+
+int
+main (argc, argv)
+ int argc;
+ char* argv[];
+{
+ /* FIXME: The gettext runtime libraries provided by Solaris 8 and 9
+ are not sufficient. Those of Solaris 10 *may* work. To play
+ safe, we currently only compile the XS version for GNU gettext
+ and use some undocumented features, to test for that. Thanks
+ to Bruno Haible for the hint. */
+ extern int _nl_msg_cat_cntr;
+#if 0
+ /* This seems to be defined in the GNU libc only, not in standalone
+ * GNU gettext. */
+ extern int* _nl_domain_bindings;
+#endif
+
+ textdomain ("dummy");
+ bindtextdomain ("dummy", ".");
+ bind_textdomain_codeset ("dummy", "us-ascii");
+
+ gettext ("msgid");
+ dgettext ("dummy", "msgid");
+ dcgettext ("dummy", "msgid", LC_MESSAGES);
+ ngettext ("msgid", "msgid_plural",
+#if 0
+ _nl_msg_cat_cntr + *_nl_domain_bindings);
+#else
+ _nl_msg_cat_cntr);
+#endif
+ dngettext ("dummy", "msgid", "msgid_plural", 1);
+ dcngettext ("dummy", "msgid", "msgid_plural", 1, LC_MESSAGES);
+
+ return 0;
+}
+EOF
+
+my $cc = $Config{cc};
+
+print STDERR "Checking whether we can compile the XS version ... ";
+local *HANDLE;
+open HANDLE, ">gettest.c" or die "cannot create file 'gettest.c': $!\n";
+print HANDLE $c_code;
+close HANDLE or die "cannot close file 'gettest.c': $!\n";
+
+my @cmd = $cc;
+push @cmd, $Config{ccflags};
+push @cmd, $Config{ldflags};
+push @cmd, $Config{perllibs};
+push @cmd, "-o", "gettest.exe", "gettest.c";
+
+my $cmd = join ' ', @cmd;
+
+# Temporarily redirect stdout and stderr.
+open OLDOUT, ">&STDOUT" or die "cannot dup STDOUT: $!";
+open OLDERR, ">&STDERR" or die "cannot dup STDERR: $!";
+open STDOUT, ">config.log" or die "cannot redirect STDOUT: $!";
+open STDERR, ">&STDOUT" or die "cannot dup STDOUT: $!";
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+print "$cmd\n";
+my $result = system $cmd;
+unless ($result == 0) {
+ $cmd .= " -lintl";
+ print "$cmd\n";
+ $result = system $cmd;
+}
+unless ($result == 0) {
+ $cmd .= " -liconv";
+ print "$cmd\n";
+ $result = system $cmd;
+}
+
+# Restore standard file descriptors.
+close STDOUT; #or die "cannot close STDOUT: $!";
+close STDERR; #or die "cannot close STDERR: $!";
+open STDOUT, ">&OLDOUT" or die "cannot dup \$oldout: $!";
+open STDERR, ">&OLDERR" or die "cannot dup OLDERR: $!";
+close OLDOUT; close OLDERR; # Shut up warnings.
+
+unless ($result == 0) {
+ print STDERR <<EOF;
+no
+=> Cannot build the XS version of libintl-perl (see 'config.log' for
+=> details). This is harmless!
+EOF
+} else {
+ print STDERR <<EOF;
+ok
+=> Building the XS version of libintl-perl.
+EOF
+}
+unlink "gettest.c", "gettest.exe";
+
+package MY;
+
+# FIXME: This is really a hack! Problem: Depending on the build system,
+# we may or may not build and install the XS version. If the XS version
+# is being built, the directory blib/arch will be populated, if it is
+# not being built, blib/arch will be empty. Unfortunately, if blib/arch
+# is not empty, *all* library files will be installed in the architecture
+# dependent locations, if it is empty, they will be installed in the
+# architecture independent tree.
+#
+# Unfortunately, ExtUtils::MakeMaker does not take care of uninstalling
+# files from previous installations. Consequently, we cannot determine
+# which version of the library will be loaded, since this depends on the
+# current value of @INC.
+#
+# The solution does not really make me happy. The Makefile will be patched,
+# so that instead of ExtUtils::Install a custom module MyInstall.pm will
+# be used. This custom module overwrites the subroutine that detects
+# whether a directory is empty in ExtUtils::Install, and will lie if that
+# directory happens to be "blib/arch". This little hack effectively disables
+# the annoying behavior of ExtUtils::Install (and I sincerely hope that
+# this is portable).
+sub libscan
+{
+ my ($self, $file) = @_;
+
+ return if 'MyInstall.pm' eq $file;
+
+ $self->SUPER::libscan ($file);
+}
+
+sub tools_other
+{
+ my $self = shift;
+
+ my $fragment = $self->SUPER::tools_other (@_);
+
+ $fragment =~ s/^MOD_INSTALL\s*=\s*(.*?)-MExtUtils::Install
+ /MOD_INSTALL =$1-MMyInstall/msx;
+
+ return $fragment;
+}
+
+package main;
+
+my $name = $0;
+$name =~ s,Makefile\.PL$,xs_disabled,;
+local *HANDLE;
+open HANDLE, ">$name" or die "cannot open '$name' for writing: $!";
+print HANDLE $result;
+close HANDLE or die "cannot close '$name': $!";
+
+WriteMakefile (
+ NAME => 'libintl-perl',
+ VERSION_FROM => 'lib/Locale/Messages.pm',
+ ($] >= 5.005 ?
+ (ABSTRACT => 'High-Level Interface to Uniforum Message Translation',
+ AUTHOR => 'Guido Flohr <guido@imperia.net>',
+ ) : (),
+ ),
+ PREREQ_PM => { File::Spec => 0 },
+ PL_FILES => {},
+ DIR => [$result == 0 ? ('gettext_xs') : ()],
+ clean => { FILES => 'xs_disabled build_xs' }
+ # If you want to build the XS version although the automatic detection
+ # suggests not to build it, uncomment the following line.
+ #DIR => [ ('gettext_xs') ],,
+);
+
+sub MY::postamble {
+ '
+all :: Credits ReleaseNotes
+
+# Make search.cpan.org happy but still follow GNU standards:
+# # (Thanks to Graham Barr for the hint)
+Credits: THANKS
+ cat THANKS >$@
+
+ReleaseNotes: NEWS
+ cat NEWS >$@
+'
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/MyInstall.pm b/tp/maintain/lib/libintl-perl/MyInstall.pm
new file mode 100644
index 0000000..2dd8814
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/MyInstall.pm
@@ -0,0 +1,43 @@
+package MyInstall;
+
+use ExtUtils::Install;
+use File::Find;
+
+use vars qw (@ISA @EXPORT @EXPORT_OK);
+
+@ISA = @ExtUtils::Install::ISA;
+@EXPORT = @ExtUtils::Install::EXPORT;
+@EXPORT_OK = @ExtUtils::Install::EXPORT_OK;
+
+sub ExtUtils::Install::directory_not_empty ($) {
+ my($dir) = @_;
+
+ return 0 if $dir eq 'blib/arch';
+
+ my $files = 0;
+ find(sub {
+ return if $_ eq ".exists";
+ if (-f) {
+ $File::Find::prune++;
+ $files = 1;
+ }
+ }, $dir);
+ return $files;
+}
+
+sub AUTOLOAD
+{
+ print STDERR "AUTOLOAD: $AUTOLOAD\n";
+
+ my $name = 'func';
+ my $code;
+ my $string = "\$code = \\&ExtUtils::Install::$name";
+
+ eval $string;
+ *$AUTOLOAD = $code;
+
+ goto &$AUTOLOAD;
+}
+
+1;
+
diff --git a/tp/maintain/lib/libintl-perl/NEWS b/tp/maintain/lib/libintl-perl/NEWS
new file mode 100644
index 0000000..e804888
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/NEWS
@@ -0,0 +1,127 @@
+Version 1.20 - 29 Jue 2009
+
+* Test suite revamped. Failures are now explained better, and it should
+ be easier to debug them remotely.
+
+Version 1.19 - 19 Jun 2009
+
+* New context functions now work with Perl 5.6.2.
+
+* N__() now mirrors its argument in scalar context for convenience.
+
+Version 1.18 - 26 May 2009
+
+* Cosmetic change: The version number is now both in Locale::Messages
+ and in Locale::TextDomain to work around a shortcoming of the
+ PAUSE indexer.
+
+Version 1.17 - 25 May 2009
+
+* New context support, supporting .po files with msgctxt, and
+ appropriate supporting calls (*pgettext calls) under both
+ gettext_pp and gettext_xs. TextDomain.pm received corresponding
+ calls: __p __px __np __npx __xnp.
+
+* New module Locale::Util with some utility functions, especially for
+ web development. Attention, this is still alpha code!
+
+* Try to warn about wrong usage of the tied hashes in
+ Locale::TextDomain.
+
+* Minor bugfixes
+
+Version 1.16 - 28 Sep 2005
+
+* New function Locale::Messages::bind_textdomain_filter() allows you
+ to register an output filter as a callback. You can use this
+ feature for example to set the utf-8 flag on translated string when
+ you are sure that the output is actually utf-8.
+
+* New function Locale::Messages::turn_utf_8_on().
+
+* various minor bug fixes.
+
+Version 1.15 - 1 Sep 2005
+
+* Workarounds and bugfixes for misconfigured Solaris systems
+
+* Fixed the completely broken simplecal example
+
+* Added section about non-ascii msgids to the POD of Locale::Messages
+
+Version 1.14 - 11 Aug 2005
+
+* Oops: forgot to update the version check in Locale::Messages
+
+* The XS version builds easier on *BSD systems now
+
+Version 1.12 - 11 Aug 2005
+
+* Minor bugfixes
+
+* The test scripts now check whether the needed locales are installed
+
+Version 1.11 - 11 Jun 2004
+
+* Version 1.11 is a minor bugfix release
+
+Version 1.10 - 12 Jan 2004
+
+* XS version now compiles under Windows (GNU gettext and libiconv required,
+ build with "perl Makefile.PL DIR=gettext_xs", see README.win32 for details)
+
+Version 1.09 - 29 Dec 2003
+
+* check version match with XS module
+
+* in pure Perl version, use user supplied locale name when guessing
+ the output character set
+
+* corrections for Atari character maps
+
+Version 1.08 - 30 Nov 2003
+
+* fixed bug #4512 on https://rt.cpan.org/ (reported by unknown guest)
+
+Version 1.07 - 28 Nov 2003
+
+* bug with charset detection via I18N::Langinfo fixed
+
+* new function Locale::Messages::turn_utf_8_off()
+
+Version 1.06 - 24 Nov 2003
+
+* fixed warning/error under Solaris 8 when I18N::Langinfo is not available
+
+* simplified sample packaging
+
+Version 1.05 - 10 Oct 2003
+
+* fixed compatibility problems with gettext libraries under Solaris 8
+ and higher
+
+Version 1.04 - 09 Oct 2003
+
+* support for language chains in $LANGUAGE (e. g. "fr_BE:fr:de")
+
+* performance tweaks for Locale::gettext_pp
+
+* do not clobber $@ in Locale::gettext_pp
+
+Version 1.03 - 15 Sep 2003
+
+* alternative XS implemenation of gettext() and friends (outperforms
+ pure Perl version by factor 10-15)
+
+Version 1.02 - 04 Sep 2003
+
+* bugfixes for systems that lack both /usr/share/locale and
+ /usr/local/share/locale
+
+* compatibility tweaks for Perl 5.005
+
+Version 1.01 - 19 Aug 2003
+
+* bugfixes
+
+* compatibility tweaks for MS-DOS
diff --git a/tp/maintain/lib/libintl-perl/README b/tp/maintain/lib/libintl-perl/README
new file mode 100644
index 0000000..275d467
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/README
@@ -0,0 +1,274 @@
+README for libintl-perl
+=======================
+
+$Id: README,v 1.1 2011-10-12 23:51:24 pertusus Exp $
+
+The package libintl-perl is an internationalization library for Perl
+that aims to be compatible with the Uniforum message translations
+system as implemented for example in GNU gettext.
+
+ [NOTE for distributors: This file and the complete subdirectory
+ "sample" of this release should be installed along with the library
+ itself in the according documentation section!]
+
+See the file COPYING.LESSER and the source code for licensing.
+
+More extensive information may be available at the libintl-perl homepage
+on the internet http://guido-flohr.net/projects/libintl-perl.
+
+Requirements
+------------
+
+The library is entirely written in Perl. It should run on every
+system with a Perl5 interpreter. The minimum required Perl version
+should be 5.004.
+
+The behavior of the package varies a little depending on the Perl
+version:
+
+- Perl 5.8 or better
+
+Recommended. Perl 5.8 offers maximum performance and support for
+various multi-byte encodings (even more if Encode::Han is installed).
+Additionally the output charset is chosen automatically according to
+the information provided by I18N::Langinfo. In fact, I18N::Langinfo
+is already available for Perl 5.7 but this developer version is
+probably not much in use any more.
+
+- Perl 5.6 or better
+
+Still offers high-performance UTF-8 handling but no support for other
+multi-byte encodings unless the package Encode is installed.
+
+- Earlier Perl versions
+
+Full UTF-8 support but quiet slow since all conversion routines are
+written in Perl. More exactly: Encoding from 8 bit charsets into
+UTF-8 is reasonably fast and usable. Decoding UTF-8 is slow, however.
+
+Note that these are actually the requirements for the *users* of your
+software internationalized with libintl-perl.
+
+As a maintainer of a Perl package that uses libintl-perl, you will
+also need a recent version of GNU gettext (see the file README in the
+subdirectory "sample/" of the source distribution of libintl-perl).
+Translators of your software can basically do their job with any text
+editor, but it usually makes sense for them, too, to have GNU gettext
+installed. End users of your software, or people that install an
+internationalized Perl package do *not* need it, unless they want to
+add a new language to your software.
+
+Installation
+------------
+
+If libintl-perl is not installed on your system, you have to build it
+from the sources, which is a lot easier than you may think. You need
+the program "make" for that and a command line shell. No C compiler is
+required.
+
+Unpack the package in a directory of your choice, cd into that
+directory and then type
+
+ perl Makefile.PL
+ make
+
+This will build the package. You can then run the tests with
+
+ make test
+
+To install the package, type
+
+ make install
+
+You will probably need root permissions to do that.
+
+Of course, you can also use the CPAN module to install the package.
+
+Feedback
+--------
+
+Send negative (and positive!) feedback to me. Bug reports can be send
+directly to me or you can use the bugtracking system at http://rt.cpan.org/.
+
+If you use libintl-perl for your project, private or public, free or
+commercial, please let me know. I am interested in such information.
+
+If you really like (or dislike?) libintl-perl, tell the world about. You
+can rate it and even write a review at http://cpanratings.perl.org/
+(search for "libintl-perl"). You can also increase the popularity index of
+libintl-perl at freshmeat.net by visiting its project page at
+http://freshmeat.net/projects/libintl-perl, by subscribing to new
+releases from the project page, or by rating it.
+
+Design Goals
+------------
+
+The primary design goal of libintl-perl is maximum compatibility with
+the gettext functions available for other programming languages. It
+is intended that programmers, translators, and end users can fully
+benefit from all existing i18n tools like xgettext for message
+extraction, msgfmt, msgmerge, etc. for catalog manipulation, Emacs PO
+mode (or KBabel, PO-Edit, ...) for catalog editing and so on.
+
+Another design goal is maximum portability. The library should be
+functional without any additional software but with a wide range of
+Perl versions. Wherever possible, hooks have been inserted to benefit
+from advanced features in the runtime environment, but the basic
+functionality should be present everywhere.
+
+Overview
+--------
+
+The core of the library is the module Locale::gettext_pp. It is a
+pure Perl re-implementation of the module Locale::gettext available on
+CPAN. However, the XS version Locale::gettext lacks some functions
+(notably plural handling and output conversion) that are already
+present in Locale::gettext_pp. Locale::gettext_pp provides the
+internationalization functions that are available in your system
+library (libc) or additional C libraries (for example libintl in the
+case of GNU gettext).
+
+The class Locale::Messages is an additional abstraction layer that is
+prepared for dynamic switching between different gettext implementations (for
+example Locale::gettext_pp and Locale::gettext). It provides
+basically the same interface as Locale::gettext_pp but in an
+implementation-independent manner.
+
+The module Locale::TextDomain is the only module that you should
+actually use in your software. It represents the message translation
+system for a particular text domain (a text domain is a unique
+identifier for your software package), makes use of Locale::Messages
+for message translation and catalog location, and it provides
+additional utility functions, for example common shortcut names for
+i18n routines, tied hashes for hash-like lookups into the translation
+database, and finally an interpolation mechanism suitable for
+internationalized messages.
+
+The package also contains a charset conversion library
+Locale::Recode. This library is used internally by Locale::gettext_pp
+to allow on-the-fly charset conversion between the charset in a
+message catalog and the preferred (end) user charset. Its main
+advantage about the Encode package available for recent Perl versions
+is its portability, since it does not require the Unicode capabilities
+of Perl that were introduced with Perl 5.6. It fully supports UTF-8
+with every Perl version and a wealth of common 8 bit encodings. If
+you have to do charset conversion with older Perl versions, then
+Locale::Recode may be worth a try although it is really only a helper
+library, not intended as a competitor to Encode.
+
+Documentation
+-------------
+
+For a basic understanding of message translation in Perl with
+libintl-perl you should read the perldoc of Locale::TextDomain. Don't
+bother about the documentation of the other modules in the library,
+you will not need it unless you want to hack the library yourself.
+
+There is a mailing list <libintl-perl AT imperia DOT net> (replace
+" AT " with "@" and " DOT " with ".") where you can post questions
+related to libintl-perl. The list has also a certain focus on
+internationalization of Perl CGI web applications. Please note, that
+postings from non-subscribers will be held back for approval, and it
+may take a considerable amount of time until all list members will get
+these postings. You can subscribe to the list via a web interface at
+http://ml.imperia.org/mailman/listinfo/libintl-perl/, a searchable
+archive of prior postings to the list is available at
+http://ml.imperia.org/libintl-perl/.
+
+At the time of this writing (July 2003) the list is new and has
+exactly one subscriber and zero postings. But don't be shy, join
+it. ;-)
+
+In order to make use of the software, you will also need various tools
+from GNU gettext (http://savannah.gnu.org/projects/gettext/). The
+documentation is located at http://www.gnu.org/manual/gettext/.
+You will find there a language-independent overview of
+internationalization with GNU gettext, and in the Perl-specific
+sections you will find details about the parser that extracts
+translatable messages from your Perl sources.
+
+Quick-Start
+-----------
+
+The subdirectory "sample" of the source distribution of libintl-perl
+contains a full-fledged example for an internationalized Perl package,
+including a working Makefile. The README of that subdirectory
+explains all necessary steps.
+
+However, if you are on a recent GNU/Linux system or similar (cygwin
+should also do), chances are that you can get the following example to
+run:
+
+ #! /usr/local/bin/perl -w
+
+ use strict;
+
+ # This assumes that the textdomain 'libc' is available on your
+ # system. Try "locate libc.mo" or "locate libc.gmo" (or
+ # "find / -type f -name libc.mo" if locate is not available on
+ # your system).
+ #
+ # By the way, the "use Locale::TextDomain (TEXTDOMAIN) is the
+ # equivalent of
+ #
+ # textdomain ("TEXTDOMAIN");
+ #
+ # in C or similar languages.
+ use Locale::TextDomain ('libc');
+
+ # The locale category LC_MESSAGES is not exported by the POSIX
+ # module on older Perl versions.
+ use Locale::Messages qw (LC_MESSAGES);
+
+ use POSIX ('setlocale');
+
+ # Set the locale according to our environment.
+ setlocale (LC_MESSAGES, '');
+
+ # This makes the assumption that your system libc defines a
+ # message "No such file or directory". Check the exact
+ # spelling on your system with something like
+ # "ls NON-EXISTANT".
+ # Note the double underscore in front of the string. This is
+ # really a function call to the function __() that is
+ # automagically imported by Locale::TextDomain into your
+ # namespace. This function takes its argument, looks up a
+ # translation for it, and returns that, or the unmodified
+ # string in case of failure.
+ print __"No such file or directory", ".\n";
+
+ __END__
+
+Now run the command "locale -a" or "nlsinfo" to get a list of
+available locales on your system. Try the section "Finding locales"
+in "perldoc perllocale" if you have problems.
+
+If, for example, the locale "fr_FR" is available on your system, set
+the environment variable LANG to that value, for a POSIX shell
+
+ LANG=fr_FR
+ export LANG
+
+for the C shell
+
+ setenv LANG fr_FR
+
+and run your little Perl script. It should tell you what the error
+message for "No such file or directory" is in French, or whatever
+language you chose. Not a real example, because we have "stolen" a
+message from a system catalog. But it should give you the general
+idea, especially if you are already familiar with gettext in C.
+
+If you still see the English message, this does not necessarily mean a
+failure, since the string is maybe not translated on your system (try
+"locate libc.mo" to get a list of available translations). Even for
+the translations listed there, that particular message might be
+missing. Try a common locale like "de_DE" or "fr_FR" that are usually
+fully translated then.
+
+Your next steps should be "perldoc Locale::TextDomain", and then study
+the example in the subdirectory "sample" of this distribution.
+
+Have fun with libintl-perl!
+
+Guido Flohr
diff --git a/tp/maintain/lib/libintl-perl/README-oldversions b/tp/maintain/lib/libintl-perl/README-oldversions
new file mode 100644
index 0000000..ddfbff2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/README-oldversions
@@ -0,0 +1,10 @@
+Hi,
+
+old versions of my modules can be found here:
+
+ http://history.perl.org/backpan/authors/id/G/GU/GUIDO/
+
+This is an effort to keep CPAN and its mirrors clean.
+
+Regards,
+Guido
diff --git a/tp/maintain/lib/libintl-perl/README.solaris b/tp/maintain/lib/libintl-perl/README.solaris
new file mode 100644
index 0000000..c5d390a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/README.solaris
@@ -0,0 +1,125 @@
+Special Notes for Sun Solaris
+=============================
+
+Recent versions of Solaris ship with a libintl that is mostly compatible
+with GNU gettext. Even the plural handling functions (ngettext,
+dngettext, dcngettext, ...) and output character conversion functions
+(bind_textdomain_codeset) are included.
+
+On my test system, the behavior of the Solaris version differs in one
+important point from the pure Perl version or the GNU gettext version:
+In a locale environment that is a regional variant of another locale
+(for example "fr_CA" is a regional variant of "fr"), both the pure Perl
+version from libintl-perl and the C version from GNU gettext will fall
+back to translations for the superordinate message catalog ("fr") if
+no special translation for the selected locale ("fr_CA") can be found.
+This fallback mechanism is missing in the Solaris implementation.
+
+This could be considered harmless, because Solaris users are probably
+used to this behavior. On the other hand, the pure Perl version of
+gettext in libintl-perl aims to be as compatible as possible to the
+GNU gettext implementation. Furthermore, if the pure Perl and the
+C/XS version behave differently, users may be unnecessarily confused.
+
+If you think you can live with that little inconsistence, you are not
+completely lost: Edit the toplevel Makefile.PL, in the function
+WriteMakefile(), change the value for the hash slot "DIR" from
+the value depending on "$result" to simply "['gettext_xs']". If you
+have a look at the source code of Makefile.PL, you will see that this
+has already been prepared.
+
+If you do this, the test suite will fail, because the above described
+behavior ("fr_CA" vs. "fr" ...) is checked by the tests. In this case,
+expect the following failures:
+
+Failed Test Stat Wstat Total Fail Failed List of Failed
+-------------------------------------------------------------------------------
+./tests/03bind_textdomain_codeset_xs.t 9 2 22.22% 5 9
+./tests/03dcgettext_xs.t 9 2 22.22% 3 7
+./tests/03dcngettext_xs.t 83 51 61.45% 22-31 43-83
+./tests/03dgettext_xs.t 9 2 22.22% 3 7
+./tests/03dngettext_xs.t 83 51 61.45% 22-31 43-83
+./tests/03gettext_xs.t 6 1 16.67% 3
+./tests/03ngettext_xs.t 85 51 60.00% 23-32 45-85
+
+But even if you have installed GNU gettext, you may run into this error
+when trying to compile the XS version:
+
+"gettext_xs.xs", line 32: #error: "<libintl.h> is not GNU gettext. Maybe you have to adjust your include path."
+cc: acomp failed for gettext_xs.c
+make[1]: *** [gettext_xs.o] Error 2
+make[1]: Leaving directory `/root/libintl-perl-1.15/gettext_xs'
+make: *** [subdirs] Error 2
+
+What has happened here? Have a look at the source code of <libintl.h>
+that ships with GNU gettext:
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+...
+
+/* We redirect the functions to those prefixed with "libintl_". This is
+ necessary, because some systems define gettext/textdomain/... in the C
+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
+ If we used the unprefixed names, there would be cases where the
+ definition in the C library would override the one in the libintl.so
+ shared library. Recall that on ELF systems, the symbols are looked
+ up in the following order:
+ 1. in the executable,
+ 2. in the shared libraries specified on the link command line, in order,
+ 3. in the dependencies of the shared libraries specified on the link
+ command line,
+ 4. in the dlopen()ed shared libraries, in the order in which they were
+ dlopen()ed.
+ The definition in the C library would override the one in libintl.so if
+ either
+ * -lc is given on the link command line and -lintl isn't, or
+ * -lc is given on the link command line before -lintl, or
+ * libintl.so is a dependency of a dlopen()ed shared library but not
+ linked to the executable at link time.
+ Since Solaris gettext() behaves differently than GNU gettext(), this
+ would be unacceptable.
+
+ The redirection happens by default through macros in C, so that &gettext
+ is independent of the compilation unit, but through inline functions in
+ C++, in order not to interfere with the name mangling of class fields or
+ class methods called 'gettext'. */
+
+In brief: The GNU libraries libintl.so and libintl.a prefix all functions
+with "libintl_" in order to avoid symbol name conflicts with the vanilla
+Solaris verssion. These precautions still give room to a popular
+misconfiguration: If you install GNU gettext with the default prefix
+"/usr/local", libraries will get installed in "/usr/local/lib", the
+header files - notably <libintl.h> - will get installed in
+"/usr/local/include", so far so good. Now set the environment variable
+LD_LIBRARY_PATH to "/usr/local/lib", so that the GNU version of libintl.so
+will be found by the dynamic loader at runtime. Yet, if
+"/usr/local/include" comes after "/usr/include" in your C compiler's
+include path, the above described trick does not work, the functions
+like "gettext", "dgettext" etc. will not get re-defined to "libintl_gettext",
+"libintl_dgettext" and so on. Remember, the preprocessor trick used by
+GNU gettext will change every reference to the function gettext() into
+a reference to libintl_gettext() for gettext() into a definition for
+libintl_gettext(). If your C compiler includes the "wrong" include file
+(/usr/include/libintl.h) instead of the "correct" one
+(/usr/local/include/libintl.h), your C sources will still reference
+gettext() instead of libintl_gettext(). At run-time, even if the dynamic
+loader considers the GNU version of libintl.so (in "/usr/local/lib"), it
+will not use it, because it looks for the "wrong" symbol gettext()
+instead of libintl_gettext().
+
+Too complicated? Okay: The order for C header files for the C compiler
+(actually the preprocessor) differs from the inclusion order for
+libraries and this must lead to trouble. If you understand WHY, you
+will find a way to fix it. If not, ignore the problem: Do not
+build the problem, and be assured, that the pure Perl version is
+fast enough. It is very, very unlikely that using the pure Perl
+instead of the XS version of will be the bottleneck of any application
+you use.
+
+Life is complicated under the sun, ain't it? ;-)
+
+Guido
+
diff --git a/tp/maintain/lib/libintl-perl/README.win32 b/tp/maintain/lib/libintl-perl/README.win32
new file mode 100755
index 0000000..c7bd3c5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/README.win32
@@ -0,0 +1,110 @@
+When building libintl-perl under 32 bit versions of MS-DOS, you have several
+options, depending on the facilities available on your system, and on the Perl
+version you use.
+
+Cygwin Perl
+===========
+
+When using the Perl interpreter that ships with cygwin, you are in a pretty
+Unix-like environment, and you should be able to build and use libintl-perl
+like on ordinary operating system.
+
+ActiveState Perl
+================
+
+By default, the XS version of libintl-perl is not built. You will not win
+a lot, by trying to build the XS version, but if you can't help, here are
+the instructions that worked on my system. Your mileage may vary, however.
+
+C Compiler
+----------
+
+Windows does not ship with a C compiler. Since ActiveState Perl is built
+with Microsoft Visual C, you probably will not have a choice, and have to
+purchase MSVC.
+
+Building libiconv and GNU gettext
+---------------------------------
+
+The XS version of libintl-perl requires the runtime facilities provided by
+GNU gettext, which in turn rely on libiconv. You can both in source form
+from ftp://ftp.gnu.org/pub/gnu.
+
+First, unpack both the libiconv and gettext sources in a directory of your
+choice, open the MS-DOS cripple shell ("cmd.exe"), and cd into the directory
+where you have unpacked the libiconv sources. There read the file
+"README.woe32" or just type
+
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 NO_NLS=1
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 NO_NLS=1 check
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 NO_NLS=1 install
+
+The second command line will run the test suite (you may omit this step).
+
+Now cd to the directory where you have unpacked the gettext sources, and
+read "README.woe32", or just type
+
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 check
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 install
+
+You should now go back into the libiconv build directory, and re-build
+the package again with native language support:
+
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 NO_NLS=1 distclean
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 check
+ nmake -f Makefile.msvc MFLAGS=-MD DLL=1 install
+
+You should now have the gettext and libiconv DLLs installed in "\usr\bin",
+and libraries in "\usr\lib". It should be theoretically possible to build
+static versions (instead of DLLs) of both gettext and libiconv, but I
+did not manage to do so here.
+
+Build libintl-perl
+------------------
+
+The Makefile.PL provided with libintl-perl normally autodetects the presence
+of the required gettext shared libraries, but this test (intentionally) fails
+under Windows. You have to bypass the mechanism by saying
+
+ perl Makefile.PL DIR=gettext_xs
+
+This should produce an output like this:
+
+ Checking whether we can compile the XS version ... no
+ => Cannot build the XS version of libintl-perl (see 'config.log' for
+ => details). This is harmless!
+ Writing Makefile Locale::gettext_xs
+ Writing Makefile for libintl-perl
+
+Ignore the warning, that the XS version cannot be built. It will be
+built anyhow.
+
+Now do the usual:
+
+ nmake
+ nmake test
+ nmake install
+
+Please run the testsuite! If it fails, and you cannot sort out the reason,
+re-build the module without the XS version.
+
+Distribution
+------------
+
+If you want a binary version of libintl-perl, you either have to bundle it
+with the DLLs and libraries for GNU gettext and libiconv, or you have to
+build and link against static versions of the two libraries (which I didn't
+manage to do). In any case, please take care that your distribution does
+not violate the licenses under which GNU gettext, libiconv, and libintl-perl
+are provided! Please read the following statement by Bruno Haible,
+maintainer of GNU gettext and libiconv:
+
+ Note that DLLs created with MSVC 7.0 cannot be distributed: They depend
+ on a closed-source library 'msvcr70.dll' which is not normally part of a
+ Woe32 installation, therefore the distribution of such DLLs - with or
+ without msvcr70.dll - would be a violation of the LGPL. This problem does
+ not occur with MSVC 6.0 and earlier.
+
+Guido Flohr <guido@imperia.net>
diff --git a/tp/maintain/lib/libintl-perl/REFERENCES b/tp/maintain/lib/libintl-perl/REFERENCES
new file mode 100644
index 0000000..eb0868a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/REFERENCES
@@ -0,0 +1,48 @@
+- the dvd::rip project
+ http://www.exit1.org/dvdrip/
+
+- the Sympa mailing list manager
+ http://www.sympa.org/
+
+- the public key infrastructure (PKI) OpenCA
+ http://www.openca.org/
+
+- the Lire log file analysis tool
+ http://www.logreport.org/
+
+- the GPG key-signing utility gpgsigs
+ http://www.palfrader.org/gpgsigs
+
+- (the build script for) the TortoiseCVS CVS frontend
+ http://www.tortoisecvs.org/
+
+- the pure Perl implementation of the Twofish algorithm
+ http://search.cpan.org/~guido/Crypt-Twofish_PP/
+
+- the Imperia enterprise content management system
+ http://www.imperia.net/
+
+- the Imperia mailing list archive
+ http://ml.imperia.org/
+
+- the pimp Photo Importer
+ http://www.grawert.net/software/pimp/
+
+- midcat, concatenate MIDI files to stdout
+ http://ptaff.ca/midcat/?lang=en_CA
+
+- Luci is the University of New Brunswick, Canada's enterprise website
+ accessibility solution and requires libintl-perl via Crypt::Twofish_PP
+ http://luci.sourceforge.net/
+
+- gwine, the Gnome wine cellar management tool
+ http://home.gna.org/gwine/
+
+- gtestrunner (Test-Unit-GTestRunner), a unit test GUI
+ http://search.cpan.org/~guido/Test-Unit-GTestRunner/
+
+- hdico, search a definition in the Hachette dictionary
+ http://svn.naquadah.org/listing.php?repname=hdico&path=%2F&rev=0&sc=0
+
+- IWL, a GUI toolkit for html
+ http://search.cpan.org/~viktork/IWL/
diff --git a/tp/maintain/lib/libintl-perl/ReleaseNotes b/tp/maintain/lib/libintl-perl/ReleaseNotes
new file mode 100644
index 0000000..e804888
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/ReleaseNotes
@@ -0,0 +1,127 @@
+Version 1.20 - 29 Jue 2009
+
+* Test suite revamped. Failures are now explained better, and it should
+ be easier to debug them remotely.
+
+Version 1.19 - 19 Jun 2009
+
+* New context functions now work with Perl 5.6.2.
+
+* N__() now mirrors its argument in scalar context for convenience.
+
+Version 1.18 - 26 May 2009
+
+* Cosmetic change: The version number is now both in Locale::Messages
+ and in Locale::TextDomain to work around a shortcoming of the
+ PAUSE indexer.
+
+Version 1.17 - 25 May 2009
+
+* New context support, supporting .po files with msgctxt, and
+ appropriate supporting calls (*pgettext calls) under both
+ gettext_pp and gettext_xs. TextDomain.pm received corresponding
+ calls: __p __px __np __npx __xnp.
+
+* New module Locale::Util with some utility functions, especially for
+ web development. Attention, this is still alpha code!
+
+* Try to warn about wrong usage of the tied hashes in
+ Locale::TextDomain.
+
+* Minor bugfixes
+
+Version 1.16 - 28 Sep 2005
+
+* New function Locale::Messages::bind_textdomain_filter() allows you
+ to register an output filter as a callback. You can use this
+ feature for example to set the utf-8 flag on translated string when
+ you are sure that the output is actually utf-8.
+
+* New function Locale::Messages::turn_utf_8_on().
+
+* various minor bug fixes.
+
+Version 1.15 - 1 Sep 2005
+
+* Workarounds and bugfixes for misconfigured Solaris systems
+
+* Fixed the completely broken simplecal example
+
+* Added section about non-ascii msgids to the POD of Locale::Messages
+
+Version 1.14 - 11 Aug 2005
+
+* Oops: forgot to update the version check in Locale::Messages
+
+* The XS version builds easier on *BSD systems now
+
+Version 1.12 - 11 Aug 2005
+
+* Minor bugfixes
+
+* The test scripts now check whether the needed locales are installed
+
+Version 1.11 - 11 Jun 2004
+
+* Version 1.11 is a minor bugfix release
+
+Version 1.10 - 12 Jan 2004
+
+* XS version now compiles under Windows (GNU gettext and libiconv required,
+ build with "perl Makefile.PL DIR=gettext_xs", see README.win32 for details)
+
+Version 1.09 - 29 Dec 2003
+
+* check version match with XS module
+
+* in pure Perl version, use user supplied locale name when guessing
+ the output character set
+
+* corrections for Atari character maps
+
+Version 1.08 - 30 Nov 2003
+
+* fixed bug #4512 on https://rt.cpan.org/ (reported by unknown guest)
+
+Version 1.07 - 28 Nov 2003
+
+* bug with charset detection via I18N::Langinfo fixed
+
+* new function Locale::Messages::turn_utf_8_off()
+
+Version 1.06 - 24 Nov 2003
+
+* fixed warning/error under Solaris 8 when I18N::Langinfo is not available
+
+* simplified sample packaging
+
+Version 1.05 - 10 Oct 2003
+
+* fixed compatibility problems with gettext libraries under Solaris 8
+ and higher
+
+Version 1.04 - 09 Oct 2003
+
+* support for language chains in $LANGUAGE (e. g. "fr_BE:fr:de")
+
+* performance tweaks for Locale::gettext_pp
+
+* do not clobber $@ in Locale::gettext_pp
+
+Version 1.03 - 15 Sep 2003
+
+* alternative XS implemenation of gettext() and friends (outperforms
+ pure Perl version by factor 10-15)
+
+Version 1.02 - 04 Sep 2003
+
+* bugfixes for systems that lack both /usr/share/locale and
+ /usr/local/share/locale
+
+* compatibility tweaks for Perl 5.005
+
+Version 1.01 - 19 Aug 2003
+
+* bugfixes
+
+* compatibility tweaks for MS-DOS
diff --git a/tp/maintain/lib/libintl-perl/THANKS b/tp/maintain/lib/libintl-perl/THANKS
new file mode 100644
index 0000000..edc7606
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/THANKS
@@ -0,0 +1,40 @@
+$Id: THANKS,v 1.1 2011-10-12 23:51:25 pertusus Exp $
+
+These people have helped in the development of libintl-perl:
+
+- Imperia (http://www.imperia.net/) has contributed this part of the
+ Enterprise Content Management System Imperia to the Perl community
+ as free software.
+
+- Joshua Miller <unrtst@cpan.com> has extended libintl-perl to provide
+ the important context-sensitive functions (pgettext() and friends).
+
+- Christian Lackas <delta@lackas.net> has given various hints on
+ performance optimizations
+
+- Ingrid Gräfen <ingrid.graefen@imperia.net> has fixed a major performance
+ penalty on systems without POSIX::LC_MESSAGES, and she has extensively
+ tested the Perl backend for GNU xgettext under cygwin
+
+- Norma Karl <bcrazy@gmx.de> has thoroughly revised the documentation for
+ the Perl backend to GNU xgettext, and she deserves a credit anyway
+
+- Bruno Haible for libiconv which was the base for many conversions and
+ for integrating my Perl backend into GNU gettext
+
+Other people have helped by sending in improvements, suggestions and
+bug reports:
+
+- DH <crazyinsomniac@yahoo.com>
+- Jo-Even Skarstein <joska@nvg.org>
+- Gerhard Stoll <gerhard_stoll@gmx.de>
+- Marc Brockschmidt <marc@marcbrockschmidt.de>
+- Laurent Bonnaud <Laurent.Bonnaud@inpg.fr>
+- Jan Kratochvil <lace@jankratochvil.net>
+- Светослав Агафонкин <slavi.agafonkin@imperia.net>
+- Michael Bell <michael.bell@cms.hu-berlin.de>
+- David Cantrell <dcantrell@cpan.org>
+
+Please inform me if I have forgotten your contribution.
+
+Guido Flohr
diff --git a/tp/maintain/lib/libintl-perl/TODO b/tp/maintain/lib/libintl-perl/TODO
new file mode 100644
index 0000000..f6bd342
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/TODO
@@ -0,0 +1,24 @@
+- Use LGPL version 3?
+
+- web_set_locale returns the language and the country for lang/country
+ combinations (eg. de-AT) in the language field. Correct?
+
+- add conversion modules for other Unicode encodings than UTF-8
+ (UTF-16, UCS-*)
+
+- Better support for Windows, the locale detection stuff does not
+ really work there. Any help would be appreciated.
+
+- Check whether other locale categories than LC_MESSAGES work.
+
+- Avoid call to __load_domain in Locale::gettext_pp, use a cache table
+ first
+
+- The pure Perl version of gettext will always look for message catalogs
+ in /usr/share/locale/{LANGUAGE}/LC_MESSAGES after the directory
+ specified by bindtextdomain(). This can lead to undesired results.
+ But I think the C version from libintl does the same, correct?
+
+- Allow to dynamically expand the list of supported conversions
+
+- Allow to dynamically restrict the list of suppported conversions
diff --git a/tp/maintain/lib/libintl-perl/gettext_xs/Makefile.PL b/tp/maintain/lib/libintl-perl/gettext_xs/Makefile.PL
new file mode 100644
index 0000000..8884348
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/gettext_xs/Makefile.PL
@@ -0,0 +1,57 @@
+#! /usr/local/bin/perl -w # -*- perl -*-
+
+# vim: tabstop=4
+# $Id: Makefile.PL,v 1.1 2011-10-12 23:51:25 pertusus Exp $
+
+# Makefile generator for libintl-perl.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.use ExtUtils::MakeMaker;
+
+use 5.004;
+use ExtUtils::MakeMaker;
+
+#$ExtUtils::MakeMaker::Verbose = 2;
+#@ExtUtils::MakeMaker::Parent = ();
+
+WriteMakefile (
+ NAME => 'Locale::gettext_xs',
+ VERSION_FROM => '../lib/Locale/Messages.pm',
+ ($] >= 5.005 ?
+ (ABSTRACT => 'XS Interface to Uniforum Message Translation',
+ AUTHOR => 'Guido Flohr <guido@imperia.net>',
+ ) : (),
+ ),
+ PREREQ_PM => { File::Spec => 0 },
+ PL_FILES => {},
+ LIBS => ['-lintl -liconv'],
+);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.pm b/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.pm
new file mode 100644
index 0000000..3c07298
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.pm
@@ -0,0 +1,201 @@
+#! /bin/false
+
+# vim: tabstop=4
+# $Id: gettext_xs.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $
+
+# Pure Perl implementation of Uniforum message translation.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::gettext_xs;
+
+require DynaLoader;
+require Exporter;
+
+use vars qw (%EXPORT_TAGS @EXPORT_OK @ISA);
+
+%EXPORT_TAGS = (locale_h => [ qw (
+ gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ )
+ ],
+ libintl_h => [ qw (LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL)
+ ],
+ );
+
+@EXPORT_OK = qw (gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ nl_putenv
+ LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL);
+@ISA = qw (Exporter DynaLoader);
+
+bootstrap Locale::gettext_xs;
+
+require File::Spec;
+
+# Reimplement pgettext functions
+sub pgettext ($$) {
+ my ($msgctxt, $msgid) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid);
+ return Locale::gettext_xs::_pgettext_aux
+ ("", $msg_ctxt_id, $msgid, Locale::gettext_xs::LC_MESSAGES());
+}
+sub dpgettext ($$$) {
+ my ($domain, $msgctxt, $msgid) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid);
+ return Locale::gettext_xs::_pgettext_aux
+ ($domain, $msg_ctxt_id, $msgid, Locale::gettext_xs::LC_MESSAGES());
+}
+sub dcpgettext ($$$$) {
+ my ($domain, $msgctxt, $msgid, $category) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid);
+ return Locale::gettext_xs::_pgettext_aux
+ ($domain, $msg_ctxt_id, $msgid, $category);
+}
+
+# Reimplement npgettext functions
+sub npgettext ($$$$) {
+ my ($msgctxt, $msgid1, $msgid2, $n) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid1);
+ return Locale::gettext_xs::_npgettext_aux
+ ("", $msg_ctxt_id, $msgid1, $msgid2, $n, Locale::gettext_xs::LC_MESSAGES());
+}
+sub dnpgettext ($$$$$) {
+ my ($domain, $msgctxt, $msgid1, $msgid2, $n) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid1);
+ return Locale::gettext_xs::_npgettext_aux
+ ($domain, $msg_ctxt_id, $msgid1, $msgid2, $n, Locale::gettext_xs::LC_MESSAGES());
+}
+sub dcnpgettext ($$$$$$) {
+ my ($domain, $msgctxt, $msgid1, $msgid2, $n, $category) = @_;
+
+ my $msg_ctxt_id = join("\004", $msgctxt, $msgid1);
+ return Locale::gettext_xs::_npgettext_aux
+ ($domain, $msg_ctxt_id, $msgid1, $msgid2, $n, $category);
+}
+
+# Wrapper function that converts Perl paths to OS paths.
+sub bindtextdomain ($;$) {
+ my ($domain, $directory) = @_;
+
+ if (defined $domain && length $domain &&
+ defined $directory && length $directory) {
+ return Locale::gettext_xs::_bindtextdomain
+ ($domain, File::Spec->catdir ($directory));
+ } else {
+ return &Locale::gettext_xs::_bindtextdomain;
+ }
+}
+
+# In the XS version, making the prototype optional, does not work.
+sub textdomain (;$) {
+ my $domain = shift;
+
+ if (defined $domain) {
+ return Locale::gettext_xs::_textdomain ($domain);
+ } else {
+ return Locale::gettext_xs::_textdomain ("");
+ }
+}
+
+sub nl_putenv ($) {
+ my ($envspec) = @_;
+
+ return unless defined $envspec;
+ return unless length $envspec;
+ return if substr ($envspec, 0, 1) eq '=';
+
+ my ($var, $value) = split /=/, $envspec, 2;
+
+ if ($^O eq 'MSWin32') {
+ $value = '' unless defined $value;
+ return unless Locale::gettext_xs::_nl_putenv ("$var=$value") == 0;
+ if (length $value) {
+ $ENV{$var} = $value;
+ } else {
+ delete $ENV{$var};
+ }
+ } else {
+ if (defined $value) {
+ $ENV{$var} = $value;
+ } else {
+ delete $ENV{$var};
+ }
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.xs b/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.xs
new file mode 100644
index 0000000..e5c66ba
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/gettext_xs/gettext_xs.xs
@@ -0,0 +1,281 @@
+/* -*- C -*- */
+/* $Id: gettext_xs.xs,v 1.1 2011-10-12 23:51:26 pertusus Exp $ */
+/*
+# Perl binding for Uniforum message translation.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA. */
+
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+#include <string.h>
+#include <locale.h>
+#include <libintl.h>
+/* Handle the case that we link against GNU libintl but include a non
+ * GNU libintl.h. */
+#ifndef __USE_GNU_GETTEXT
+# error "<libintl.h> is not GNU gettext. Maybe you have to adjust your include path."
+#endif
+
+MODULE = Locale::gettext_xs PACKAGE = Locale::gettext_xs
+
+PROTOTYPES: ENABLE
+
+char*
+__gettext_xs_version ()
+ CODE:
+ RETVAL = (VERSION);
+ OUTPUT:
+ RETVAL
+
+double
+LC_CTYPE ()
+ CODE:
+ RETVAL = (double) LC_CTYPE;
+ OUTPUT:
+ RETVAL
+
+double
+LC_NUMERIC ()
+ CODE:
+ RETVAL = (double) LC_NUMERIC;
+ OUTPUT:
+ RETVAL
+
+double
+LC_TIME ()
+ CODE:
+ RETVAL = (double) LC_TIME;
+ OUTPUT:
+ RETVAL
+
+double
+LC_COLLATE ()
+ CODE:
+ RETVAL = (double) LC_COLLATE;
+ OUTPUT:
+ RETVAL
+
+double
+LC_MONETARY ()
+ CODE:
+ RETVAL = (double) LC_MONETARY;
+ OUTPUT:
+ RETVAL
+
+double
+LC_MESSAGES ()
+ CODE:
+ RETVAL = (double) LC_MESSAGES;
+ OUTPUT:
+ RETVAL
+
+double
+LC_ALL ()
+ CODE:
+ RETVAL = (double) LC_ALL;
+ OUTPUT:
+ RETVAL
+
+char*
+gettext (msgid)
+ char* msgid
+ PROTOTYPE: $
+ CODE:
+ RETVAL = (char*) gettext (msgid);
+ OUTPUT:
+ RETVAL
+
+char*
+dgettext (domainname, msgid)
+ char* domainname
+ char* msgid
+ PROTOTYPE: $$
+ CODE:
+ RETVAL = (char*) dgettext (domainname, msgid);
+ OUTPUT:
+ RETVAL
+
+char*
+dcgettext (domainname, msgid, category)
+ char* domainname
+ char* msgid
+ int category
+ PROTOTYPE: $$$
+ CODE:
+ RETVAL = (char*) dcgettext (domainname, msgid, category);
+ OUTPUT:
+ RETVAL
+
+char*
+ngettext (msgid1, msgid2, n)
+ char* msgid1
+ char* msgid2
+ unsigned long n
+ PROTOTYPE: $$$
+ CODE:
+ RETVAL = (char*) ngettext (msgid1, msgid2, n);
+ OUTPUT:
+ RETVAL
+
+char*
+dngettext (domainname, msgid1, msgid2, n)
+ char* domainname
+ char* msgid1
+ char* msgid2
+ unsigned long n
+ PROTOTYPE: $$$$
+ CODE:
+ RETVAL = (char*) dngettext (domainname, msgid1, msgid2, n);
+ OUTPUT:
+ RETVAL
+
+char*
+dcngettext (domainname, msgid1, msgid2, n, category)
+ char* domainname
+ char* msgid1
+ char* msgid2
+ unsigned long n
+ int category
+ PROTOTYPE: $$$$$
+ CODE:
+ RETVAL = (char*) dcngettext (domainname, msgid1, msgid2, n, category);
+ OUTPUT:
+ RETVAL
+
+char*
+_pgettext_aux (domain, msg_ctxt_id, msgid, category)
+ char* domain
+ char* msg_ctxt_id
+ char* msgid
+ int category
+ PROTOTYPE: $$$$
+ PREINIT:
+ char* translation;
+ CODE:
+ /* Treat empty or undefined strings as NULL. */
+ if (!domain || domain[0] == '\000')
+ domain = NULL;
+ /* Treat -1 as null, and default to LC_MESSAGES */
+ if (category == -1)
+ category = LC_MESSAGES;
+ /* reimplemented from gettext-0.17 */
+ translation = (char*) dcgettext (domain, msg_ctxt_id, category);
+ if (translation == msg_ctxt_id)
+ RETVAL = msgid;
+ else
+ RETVAL = translation;
+ OUTPUT:
+ RETVAL
+
+char*
+_npgettext_aux (domain, msg_ctxt_id, msgid1, msgid2, n, category)
+ char* domain
+ char* msg_ctxt_id
+ char* msgid1
+ char* msgid2
+ unsigned long n
+ int category
+ PROTOTYPE: $$$$$$
+ PREINIT:
+ char* translation;
+ CODE:
+ /* Treat empty or undefined strings as NULL. */
+ if (!domain || domain[0] == '\000')
+ domain = NULL;
+ /* Treat -1 as null, and default to LC_MESSAGES */
+ if (category == -1)
+ category = LC_MESSAGES;
+ translation = (char*) dcngettext (domain, msg_ctxt_id, msgid2, n, category);
+ if (translation == msg_ctxt_id || translation == msgid2)
+ RETVAL = (n == 1 ? msgid1 : msgid2);
+ else
+ RETVAL = translation;
+ OUTPUT:
+ RETVAL
+
+# FIXME: The prototype should actually be ';$' but it doesn't work
+# as expected. Passing no argument results in an error.
+char*
+_textdomain (domain)
+ char* domain
+ PROTOTYPE: $
+ CODE:
+ /* Treat empty or undefined strings as NULL. */
+ if (!domain || domain[0] == '\000')
+ domain = NULL;
+ RETVAL = (char*) textdomain (domain);
+ if (!RETVAL || RETVAL[0] == '\000') {
+ XSRETURN_UNDEF;
+ }
+ OUTPUT:
+ RETVAL
+
+# This function is a no-op except for MS-DOS with its completely
+# brain-damaged environment interface.
+int
+_nl_putenv (str)
+ char* str
+ PROTOTYPE: $
+ CODE:
+#if defined (WIN32)
+ RETVAL = _putenv (str);
+#else
+ RETVAL = 0;
+#endif
+ OUTPUT:
+ RETVAL
+
+char*
+_bindtextdomain (domain = NULL, dirname = NULL)
+ char* domain
+ char* dirname
+ PROTOTYPE: $;$
+ CODE:
+ /* Treat empty or undefined strings as NULL. */
+ if (!domain || domain[0] == '\000')
+ domain = NULL;
+ if (!dirname || dirname[0] == '\000')
+ dirname = NULL;
+ RETVAL = (char*) bindtextdomain (domain, dirname);
+ if (!RETVAL || RETVAL[0] == '\000') {
+ XSRETURN_UNDEF;
+ }
+
+ OUTPUT:
+ RETVAL
+
+
+char*
+bind_textdomain_codeset (domainname, codeset)
+ char* domainname
+ char* codeset
+ PROTOTYPE: $;$
+ CODE:
+ /* Treat empty or undefined strings as NULL. */
+ if (!domainname || domainname[0] == '\000')
+ domainname = NULL;
+ if (!codeset || codeset[0] == '\000')
+ codeset = NULL;
+ RETVAL = (char*) bind_textdomain_codeset (domainname, codeset);
+ if (!RETVAL || RETVAL[0] == '\000') {
+ XSRETURN_UNDEF;
+ }
+
+ OUTPUT:
+ RETVAL
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/Messages.pm b/tp/maintain/lib/libintl-perl/lib/Locale/Messages.pm
new file mode 100755
index 0000000..14d06f6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/Messages.pm
@@ -0,0 +1,1027 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: Messages.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $
+
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::Messages;
+
+use strict;
+
+use vars qw ($package @EXPORT_OK %EXPORT_TAGS @ISA $VERSION);
+
+$VERSION = '1.20';
+
+# Try to load the C version first.
+$package = 'gettext_xs';
+my $can_xs = 1;
+eval <<'EOF';
+require Locale::gettext_xs;
+my $version = Locale::gettext_xs::__gettext_xs_version();
+die "Version: $version mismatch (1.20 vs. $version)" unless $version eq '1.20';
+EOF
+if ($@) {
+ $package = 'gettext_pp';
+ undef $can_xs;
+ require Locale::gettext_pp;
+}
+
+require Exporter;
+@ISA = qw (Exporter);
+%EXPORT_TAGS = (locale_h => [ qw (gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ )
+ ],
+ libintl_h => [ qw (LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL)
+ ],
+ );
+
+@EXPORT_OK = qw (select_package
+ turn_utf_8_on
+ turn_utf_8_off
+ gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ bind_textdomain_filter
+ nl_putenv
+ LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL);
+
+BEGIN {
+ my ($has_encode, $has_bytes);
+
+ if ($] >= 5.006) {
+ unless (defined $has_encode) {
+ eval "require Encode";
+ $has_encode = !$@;
+ }
+
+ unless ($has_encode || defined $has_bytes) {
+ eval "use bytes";
+ $has_bytes = !$@;
+ }
+ }
+
+ # Turn the UTF-8 flag on or off unconditionally. The prototypes
+ # allow an optional second parameter, so that you can use the
+ # functions as callbacks to bind_textdomain_filter.
+ if ($has_encode) {
+ eval <<'EOF';
+sub turn_utf_8_on($;$)
+{
+ Encode::_utf8_on ($_[0]);
+ return $_[0];
+}
+
+sub turn_utf_8_off($;$)
+{
+ Encode::_utf8_off ($_[0]);
+ return $_[0];
+}
+
+EOF
+ } elsif ($has_bytes) {
+ eval <<'EOF';
+sub turn_utf_8_on($;$)
+{
+ $_[0] = pack "U0C*", unpack "C*", $_[0];
+}
+
+sub turn_utf_8_off($;$)
+{
+ use bytes;
+ $_[0] = join "", split //, $_[0];
+}
+
+EOF
+ } else {
+ eval <<'EOF';
+sub turn_utf_8_on($;$)
+{
+ return $_[0];
+}
+
+sub turn_utf_8_off($;$)
+{
+ return $_[0];
+}
+
+EOF
+ }
+}
+
+# The textdomain could be undef. We avoid a warning by specifying
+# a filter for the undefined textdomain.
+my %filters = (
+ undef => \&turn_utf_8_off,
+ );
+
+sub select_package
+{
+ my ($pkg, $compatibility) = @_;
+
+ # Compatibility quirk for a bug pre 1.17:
+ if (__PACKAGE__ eq $pkg && defined $compatibility) {
+ $pkg = $compatibility;
+ }
+
+ if (!$can_xs || (defined $pkg && 'gettext_pp' eq $pkg)) {
+ require Locale::gettext_pp;
+ $package = 'gettext_pp';
+ } else {
+ eval "require Locale::gettext_xs";
+ $package = 'gettext_xs' unless $@;
+ }
+
+ return $package;
+}
+
+sub bind_textdomain_filter($;$$)
+{
+ my ($textdomain, $coderef, $data) = @_;
+
+ $filters{$textdomain} = [ $coderef, $data ];
+
+ return 1;
+}
+
+sub textdomain(;$)
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::textdomain :
+ &Locale::gettext_pp::textdomain;
+}
+
+sub bindtextdomain($;$)
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::bindtextdomain :
+ &Locale::gettext_pp::bindtextdomain;
+}
+
+sub bind_textdomain_codeset($;$)
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::bind_textdomain_codeset :
+ &Locale::gettext_pp::bind_textdomain_codeset;
+}
+
+sub gettext($)
+{
+ my $textdomain = textdomain;
+ $filters{$textdomain} ||= [ \&turn_utf_8_off ];
+ my $cb = $filters{$textdomain};
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::gettext :
+ &Locale::gettext_pp::gettext, $cb->[1]);
+}
+
+sub dgettext($$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dgettext :
+ &Locale::gettext_pp::dgettext, $cb->[1]);
+}
+
+sub dcgettext($$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dcgettext :
+ &Locale::gettext_pp::dcgettext, $cb->[1]);
+}
+
+sub ngettext($$$)
+{
+ my $textdomain = textdomain;
+ $filters{$textdomain} ||= [ \&turn_utf_8_off ];
+ my $cb = $filters{$textdomain};
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::ngettext :
+ &Locale::gettext_pp::ngettext, $cb->[1]);
+}
+
+sub dngettext($$$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dngettext :
+ &Locale::gettext_pp::dngettext, $cb->[1]);
+}
+
+sub dcngettext($$$$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dcngettext :
+ &Locale::gettext_pp::dcngettext, $cb->[1]);
+}
+
+###
+sub pgettext($$)
+{
+ my $textdomain = textdomain;
+ $filters{$textdomain} ||= [ \&turn_utf_8_off ];
+ my $cb = $filters{$textdomain};
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::pgettext :
+ &Locale::gettext_pp::pgettext, $cb->[1]);
+}
+
+sub dpgettext($$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dpgettext :
+ &Locale::gettext_pp::dpgettext, $cb->[1]);
+}
+
+sub dcpgettext($$$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dcpgettext :
+ &Locale::gettext_pp::dcpgettext, $cb->[1]);
+}
+
+sub npgettext($$$$)
+{
+ my $textdomain = textdomain;
+ $filters{$textdomain} ||= [ \&turn_utf_8_off ];
+ my $cb = $filters{$textdomain};
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::npgettext :
+ &Locale::gettext_pp::npgettext, $cb->[1]);
+}
+
+sub dnpgettext($$$$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dnpgettext :
+ &Locale::gettext_pp::dnpgettext, $cb->[1]);
+}
+
+sub dcnpgettext($$$$$$)
+{
+ my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ];
+
+ $cb->[0] ('gettext_xs' eq $package ?
+ &Locale::gettext_xs::dcnpgettext :
+ &Locale::gettext_pp::dcnpgettext, $cb->[1]);
+}
+
+sub nl_putenv($)
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::nl_putenv :
+ &Locale::gettext_pp::nl_putenv;
+}
+
+sub LC_NUMERIC
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_NUMERIC :
+ &Locale::gettext_pp::LC_NUMERIC;
+}
+
+sub LC_CTYPE
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_CTYPE :
+ &Locale::gettext_pp::LC_CTYPE;
+}
+
+sub LC_TIME
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_TIME :
+ &Locale::gettext_pp::LC_TIME;
+}
+
+sub LC_COLLATE
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_COLLATE :
+ &Locale::gettext_pp::LC_COLLATE;
+}
+
+sub LC_MONETARY
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_MONETARY :
+ &Locale::gettext_pp::LC_MONETARY;
+}
+
+sub LC_MESSAGES
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_MESSAGES :
+ &Locale::gettext_pp::LC_MESSAGES;
+}
+
+sub LC_ALL
+{
+ 'gettext_xs' eq $package ?
+ &Locale::gettext_xs::LC_ALL :
+ &Locale::gettext_pp::LC_ALL;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::Messages - Gettext Like Message Retrieval
+
+=head1 SYNOPSIS
+
+ use Locale::Messages (:locale_h :libintl_h);
+
+ gettext $msgid;
+ dgettext $textdomain, $msgid;
+ dcgettext $textdomain, $msgid, LC_MESSAGES;
+ ngettext $msgid, $msgid_plural, $count;
+ dngettext $textdomain, $msgid, $msgid_plural, $count;
+ dcngettext $textdomain, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ pgettext $msgctxt, $msgid;
+ dpgettext $textdomain, $msgctxt, $msgid;
+ dcpgettext $textdomain, $msgctxt, $msgid, LC_MESSAGES;
+ npgettext $msgctxt, $msgid, $msgid_plural, $count;
+ dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count;
+ dcnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ textdomain $textdomain;
+ bindtextdomain $textdomain, $directory;
+ bind_textdomain_codeset $textdomain, $encoding;
+ bind_textdomain_filter $textdomain, \&filter, $data;
+ turn_utf_8_on ($variable);
+ turn_utf_8_off ($variable);
+ nl_putenv ('OUTPUT_CHARSET=koi8-r');
+ my $category = LC_CTYPE;
+ my $category = LC_NUMERIC;
+ my $category = LC_TIME;
+ my $category = LC_COLLATE;
+ my $category = LC_MONETARY;
+ my $category = LC_MESSAGES;
+ my $category = LC_ALL;
+
+=head1 DESCRIPTION
+
+The module B<Locale::Messages> is a wrapper around the interface to
+message translation according to the Uniforum approach that is
+for example used in GNU gettext and Sun's Solaris. It is intended
+to allow Locale::Messages(3) to switch between different implementations
+of the lower level libraries but this is not yet implemented.
+
+Normally you should not use this module directly, but the high
+level interface Locale::TextDomain(3) that provides a much simpler
+interface. This description is therefore deliberately kept
+brief. Please refer to the GNU gettext documentation available at
+L<http://www.gnu.org/manual/gettext/> for in-depth and background
+information on the topic.
+
+The lower level module Locale::gettext_pp(3) provides the Perl
+implementation of gettext() and related functions.
+
+=head1 FUNCTIONS
+
+The module exports by default nothing. Every function has to be
+imported explicitely or via an export tag (L</"EXPORT TAGS">).
+
+=over 4
+
+=item B<gettext MSGID>
+
+Returns the translation for B<MSGID>. Example:
+
+ print gettext "Hello World!\n";
+
+If no translation can be found, the unmodified B<MSGID> is returned,
+i. e. the function can I<never> fail, and will I<never> mess up your
+original message.
+
+Note for Perl 5.6 and later: The returned string will I<always> have
+the UTF-8 flag off by default. See the documentation for function
+bind_textdomain_filter() for a way to change this behavior.
+
+One common mistake is this:
+
+ print gettext "Hello $name!";
+
+Perl will interpolate the variable C<$name> I<before> the function
+will see the string. Unless the corresponding message catalog
+contains a message "Hello Tom!", "Hello Dick!" or "Hello Harry!",
+no translation will be found.
+
+Using printf() and friends has its own problems:
+
+ print sprintf (gettext ("This is the %s %s."), $color, $thing);
+
+(The example is stupid because neither color nor thing will get
+translated here ...).
+
+In English the adjective (the color) will precede the noun, many
+other languages (for example French or Italian) differ here. The
+translator of the message may therefore have a hard time to find
+a translation that will still work and not sound stupid in the
+target language. Many C implementations of printf() allow to
+change the order of the arguments, and a French translator could
+then say:
+
+ "C'est le %$2s %$1s."
+
+Perl printf() implements this feature as of version 5.8 or better.
+Consequently you can only use it, if you are sure that your software
+will run with Perl 5.8 or a later version.
+
+Another disadvantage of using printf() is its cryptic syntax (maybe
+not for you but translators of your software may have their own
+opinion).
+
+See the description of the function C<__x()> in Locale::TextDomain(3)
+for a much better way to get around this problem.
+
+Non-ASCII message ids ...
+
+You should note that the function (and all other similar functions
+in this module) does a bytewise comparison of the B<MSGID> for the
+lookup in the translation catalog, no matter whether obscure utf-8
+flags are set on it, whether the string looks like utf-8, whether
+the utf8(3pm) pragma is used, or whatever other weird method past
+or future perl(1) versions invent for guessing character sets of
+strings.
+
+Using other than us-ascii characters in Perl source code is a call
+for trouble, a compatibility nightmare. Furthermore, GNU gettext
+only lately introduced support for non-ascii character sets in sources,
+and support for this feature may not be available everywhere. If
+you absolutely want to use B<MSGID>s in non-ascii character sets,
+it is wise to choose utf-8. This will minimize the risk that perl(1)
+itself will mess with the strings, and it will also be a guaranty
+that you can later translate your project into arbitrary target
+languages.
+
+Other character sets can theoretically work. Yet, using another
+character set in the Perl source code than the one used in your
+message catalogs will B<never> work, since the lookup is done bytewise,
+and all strings with non-ascii characters will not be found.
+
+Even if you have solved all these problems, there is still one show
+stopper left: The gettext runtime API lacks a possibility to specify
+the character set of the source code (including the original strings).
+Consequently - in absence of a hint for the input encoding - strings
+without a translation are not subject to output character set conversion.
+In other words: If the (non-determinable) output character set differs
+from the character set used in the source code, output can be a
+mixture of two character sets. There is no point in trying to address
+this problem in the pure Perl version of the gettext functions. because
+breaking compatibilty between the Perl and the C version is a price too
+high to pay.
+
+This all boils down to: Only use ASCII characters in your translatable
+strings!
+
+=item B<dgettext TEXTDOMAIN, MSGID>
+
+Like gettext(), but retrieves the message for the specified
+B<TEXTDOMAIN> instead of the default domain. In case you wonder what
+a textdomain is, you should really read on with Locale::TextDomain(3).
+
+=item B<dcgettext TEXTDOMAIN, MSGID, CATEGORY>
+
+Like dgettext() but retrieves the message from the specified B<CATEGORY>
+instead of the default category C<LC_MESSAGES>.
+
+=item B<ngettext MSGID, MSGID_PLURAL, COUNT>
+
+Retrieves the correct translation for B<COUNT> items. In legacy software
+you will often find something like:
+
+ print "$count file(s) deleted.\n";
+
+or
+
+ printf "$count file%s deleted.\n", $count == 1 ? '' : 's';
+
+The first example looks awkward, the second will only work in English
+and languages with similar plural rules. Before ngettext() was introduced,
+the best practice for internationalized programs was:
+
+ if ($count == 1) {
+ print gettext "One file deleted.\n";
+ } else {
+ printf gettext "%d files deleted.\n";
+ }
+
+This is a nuisance for the programmer and often still not sufficient
+for an adequate translation. Many languages have completely different
+ideas on numerals. Some (French, Italian, ...) treat 0 and 1 alike,
+others make no distinction at all (Japanese, Korean, Chinese, ...),
+others have two or more plural forms (Russian, Latvian, Czech,
+Polish, ...). The solution is:
+
+ printf (ngettext ("One file deleted.\n",
+ "%d files deleted.\n",
+ $count), # argument to ngettext!
+ $count); # argument to printf!
+
+In English, or if no translation can be found, the first argument
+(B<MSGID>) is picked if C<$count> is one, the second one otherwise.
+For other languages, the correct plural form (of 1, 2, 3, 4, ...)
+is automatically picked, too. You don't have to know anything about
+the plural rules in the target language, ngettext() will take care
+of that.
+
+This is most of the time sufficient but you will have to prove your
+creativity in cases like
+
+ printf "%d file(s) deleted, and %d file(s) created.\n";
+
+=item B<dngettext TEXTDOMAIN, MSGID, MSGID_PLURAL, COUNT>
+
+Like ngettext() but retrieves the translation from the specified
+textdomain instead of the default domain.
+
+=item B<dcngettext TEXTDOMAIN, MSGID, MSGID_PLURAL, COUNT, CATEGORY>
+
+Like dngettext() but retrieves the translation from the specified
+category, instead of the default category C<LC_MESSAGES>.
+
+=item B<pgettext MSGCTXT, MSGID>
+
+Returns the translation of MSGID, given the context of MSGCTXT.
+
+Both items are used as a unique key into the message catalog.
+
+This allows the translator to have two entries for words that may
+translate to different foreign words based on their context. For
+example, the word "View" may be a noun or a verb, which may be
+used in a menu as File->View or View->Source.
+
+ pgettext "Verb: To View", "View\n";
+ pgettext "Noun: A View", "View\n";
+
+The above will both lookup different entries in the message catalog.
+
+A typical usage are GUI programs. Imagine a program with a main
+menu and the notorious "Open" entry in the "File" menu. Now imagine,
+there is another menu entry Preferences->Advanced->Policy where you have
+a choice between the alternatives "Open" and "Closed". In English, "Open"
+is the adequate text at both places. In other languages, it is very
+likely that you need two different translations. Therefore, you would
+now write:
+
+ pgettext "File|", "Open";
+ pgettext "Preferences|Advanced|Policy", "Open";
+
+In English, or if no translation can be found, the second argument
+(MSGID) is returned.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<dpgettext TEXTDOMAIN, MSGCTXT, MSGID>
+
+Like pgettext(), but retrieves the message for the specified
+B<TEXTDOMAIN> instead of the default domain.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<dcpgettext TEXTDOMAIN, MSGCTXT, MSGID, CATEGORY>
+
+Like dpgettext() but retrieves the message from the specified B<CATEGORY>
+instead of the default category C<LC_MESSAGES>.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<npgettext MSGCTXT, MSGID, MSGID_PLURAL, COUNT>
+
+Like ngettext() with the addition of context as in pgettext().
+
+In English, or if no translation can be found, the second argument
+(MSGID) is picked if $count is one, the third one otherwise.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<dnpgettext TEXTDOMAIN, MSGCTXT, MSGID, MSGID_PLURAL, COUNT>
+
+Like npgettext() but retrieves the translation from the specified
+textdomain instead of the default domain.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<dcnpgettext TEXTDOMAIN, MSGCTXT, MSGID, MSGID_PLURAL, COUNT, CATEGORY>
+
+Like dnpgettext() but retrieves the translation from the specified
+category, instead of the default category C<LC_MESSAGES>.
+
+The function was introduced with libintl-perl version 1.17.
+
+=item B<textdomain TEXTDOMAIN>
+
+Sets the default textdomain (initially 'messages').
+
+=item B<bindtextdomain TEXTDOMAIN, DIRECTORY>
+
+Binds B<TEXTDOMAIN> to B<DIRECTORY>. Huh? An example:
+
+ bindtextdomain "my-package", "./mylocale";
+
+Say, the selected locale (actually the selected locale for category
+C<LC_MESSAGES>) of the program is 'fr_CH', then the message catalog
+will be expected in F<./mylocale/fr_CH/LC_MESSAGES/my-package.mo>.
+
+=item B<bind_textdomain_codeset TEXTDOMAIN, ENCODING>
+
+Sets the output encoding for B<TEXTDOMAIN> to B<ENCODING>.
+
+=item B<bind_textdomain_filter TEXTDOMAN, CODEREF, DATA>
+
+=item B<bind_textdomain_filter TEXTDOMAN, CODEREF>
+
+By default, Locale::Messages will turn the utf-8 flag of all returned
+messages off. If you want to change this behavior, you can pass
+a reference to a subroutine that does different things - for example
+turn the utf-8 flag on, or leave it untouched. The callback function
+will be called with B<DATA> as the first, and the possibly
+translated string as the second argument. It should return the
+possibly modified string.
+
+If you want an object method to be called, pass the object itself
+in the data parameter and write a wrapper function. Example:
+
+ sub wrapper {
+ my ($string, $obj) = @_;
+
+ $obj->filterMethod ($string);
+ }
+ my $obj = MyPackage->new;
+
+ bind_textdomain_filter ('mydomain', \&wrapper, $obj);
+
+The function cannot fail and always returns a true value.
+
+B<Attention:> If you use the function for setting the utf-8 flag,
+it is B<your> responsability to ensure that the output is really
+utf-8. You should only use it, if you have set the environment
+variable B<OUTPUT_CHARSET> to "utf-8". Additionally you should
+call bind_textdomain_codeset() with "utf-8" as the second
+argument.
+
+This function has been introduced in libintl-perl 1.16 and it is
+B<not> part of the standard gettext API.
+
+=item B<turn_utf_8_on VARIABLE>
+
+Returns VARIABLE but with the UTF-8 flag (only known in Perl >=5.6)
+guaranteed to be turned on. This function does not really fit into
+the module, but it is often handy nevertheless.
+
+The flag does B<not> mean that the string is in fact valid utf-8!
+
+The function was introduced with libintl-perl version 1.16.
+
+=item B<turn_utf_8_off VARIABLE>
+
+Returns VARIABLE but with the UTF-8 flag (only known in Perl >=5.6)
+guaranteed to be turned off. This function does not really fit into
+the module, but it is often handy nevertheless.
+
+The function was introduced with libintl-perl version 1.07.
+
+=item B<select_package PACKAGE>
+
+By default, B<Locale::Messages> will try to load the XS version of
+the gettext implementation, i. e. Locale::gettext_xs(3) and will fall
+back to the pure Perl implementation Locale::gettext_pp(3). You can
+override this behavior by passing the string "gettext_pp" or
+"gettext_xs" to the function select_package(). Passing "gettext_pp"
+here, will prefer the pure Perl implementation.
+
+You will normally want to use that in a BEGIN block of your main
+script.
+
+The function was introduced with libintl-perl version 1.03 and is not
+part of the standard gettext API.
+
+=item B<nl_putenv ENVSPEC>
+
+Resembles the ANSI C putenv(3) function. The sole purpose of this
+function is to work around some ideosyncrasies in the environment
+processing of Windows systems. If you want to portably set or
+unset environment variables, use this function instead of directly
+manipulating C<%ENV>.
+
+The argument B<ENVSPEC> may have three different forms.
+
+=over 8
+
+=item B<LANGUAGE=fr_CH>
+
+This would set the environment variable C<LANGUAGE> to "fr_CH".
+
+=item B<LANGUAGE=>
+
+Normally, this will set the environment variable C<LANGUAGE> to an
+empty string. Under Windows, however, the environment variable will
+be deleted instead (and is no longer present in C<%ENV>). Since
+within libintl-perl empty environment variables are useless, consider
+this usage as deprecated.
+
+=item B<LANGUAGE>
+
+This will delete the environment variable B<LANGUAGE>. If you are
+familiar with the brain-damaged implementation of putenv(3) (resp.
+_putenv()) in the so-called standard C library of MS-Windows, you
+may suspect that this is an invalid argument. This is not the case!
+Passing a variable name not followed by an equal sign will always
+delete the variable, no matter which operating system you use.
+
+=back
+
+The function returns true for success, and false for failure. Possible
+reasons for failure are an invalid syntax or - only under Windows -
+failure to allocate space for the new environment entry ($! will be
+set accordingly in this case).
+
+Why all this hassle? The 32-bit versions of MS-DOS (currently
+Windows 95/98/ME/NT/2000/XP/CE/.NET) maintain two distinct blocks
+of environment variables per process. Which block is considered
+the "correct" environment is a compile-time option of the Perl
+interpreter. Unfortunately, if you have build the XS version
+Locale::gettext_xs(3) under Windows, the underlying library may use
+a different environment block, and changes you make to C<%ENV> may
+not be visible to the library.
+
+The function nl_putenv() is mostly a funny way of saying
+
+ LANGUAGE=some_value
+
+but it does its best, to pass this information to the gettext
+library. Under other operating systems than Windows, it only
+operates on C<%ENV>, under Windows it will call the C library
+function _putenv() (after doing some cleanup to its arguments),
+before manipulating C<%ENV>.
+
+Please note, that you C<%ENV> is updated by nl_putenv() automatically.
+
+The function has been introduced in libintl-perl version 1.10.
+
+=back
+
+=head1 CONSTANTS
+
+You can (maybe) get the same constants from POSIX(3); see there for
+a detailed description
+
+=over 4
+
+=item B<LC_CTYPE>
+
+=item B<LC_NUMERIC>
+
+=item B<LC_TIME>
+
+=item B<LC_COLLATE>
+
+=item B<LC_MONETARY>
+
+=item B<LC_MESSAGES>
+
+This locale category was the reason that these constants from POSIX(3)
+were included here. Even if it was present in your systems C include
+file F<locale.h>, it was not provided by POSIX(3). Perl 5.8 and later
+seems to export the constant if available, although it is not documented
+in POSIX(3).
+
+Locale::Messages(3) makes an attempt to guess the value of this category for
+all systems, and assumes the arbitrary value 1729 otherwise.
+
+=item B<LC_ALL>
+
+If you specify the category B<LC_ALL> as the first argument to
+POSIX::setlocale(), I<all> locale categories will be affected at once.
+
+=back
+
+=head1 EXPORT TAGS
+
+The module does not export anything unless explicitely requested.
+You can import groups of functions via two tags:
+
+=over 4
+
+=item B<use Locale::Messages (':locale_h')>
+
+Imports the functions that are normally defined in the C include
+file F<locale.h>:
+
+=over 8
+
+=item B<gettext()>
+
+=item B<dgettext()>
+
+=item B<dcgettext()>
+
+=item B<ngettext()>
+
+=item B<dngettext()>
+
+=item B<dcngettext()>
+
+=item B<pgettext()>
+
+=item B<dpgettext()>
+
+=item B<dcpgettext()>
+
+=item B<npgettext()>
+
+=item B<dnpgettext()>
+
+=item B<dcnpgettext()>
+
+=item B<textdomain()>
+
+=item B<bindtextdomain()>
+
+=item B<bind_textdomain_codeset()>
+
+=back
+
+=item B<use Locale::Messages (':libintl_h')>
+
+Imports the locale category constants:
+
+=over 8
+
+=item B<LC_CTYPE>
+
+=item B<LC_NUMERIC>
+
+=item B<LC_TIME>
+
+=item B<LC_COLLATE>
+
+=item B<LC_MONETARY>
+
+=item B<LC_MESSAGES>
+
+=item B<LC_ALL>
+
+=back
+
+=back
+
+=head1 OTHER EXPORTS
+
+=item B<select_package PACKAGE>
+
+=head1 USAGE
+
+A complete example:
+
+ 1: use Locale::Messages qw (:locale_h :libintl_h);
+ 2: use POSIX qw (setlocale);
+ 3: setlocale (LC_MESSAGES, '');
+ 4: textdomain ('my-package');
+ 5: bindtextdomain ('my-package' => '/usr/local/share/locale');
+ 6:
+ 7: print gettext ("Hello world!\n");
+
+Step by step: Line 1 imports the necessary functions and constants.
+In line 3 we set the locale for category LC_MESSAGES to the default
+user settings. For C programs you will often read that LC_ALL
+is the best category here but this will also change the locale for
+LC_NUMERIC and many programs will not work reliably after changing
+that category in Perl; choose your own poison!
+
+In line 4 we say that all messages (translations) without an explicit
+domain specification should be retrieved from the message catalog
+for the domain 'my-package'. Line 5 has the effect that the message
+catalog will be searched under the directory F</usr/local/share/locale>.
+
+If the user has selected the locale 'fr_CH', and if the file
+F</usr/local/share/locale/fr_CH/LC_MESSAGES/my-package.mo>
+exists, and if it contains a GNU message object file with a translation
+for the string "Hello world!\n", then line 7 will print the French
+translation (for Switzerland CH) to STDOUT.
+
+The documentation for GNU gettext explains how to extract translatable
+strings from your Perl files and how to create message catalogs.
+
+Another less portable example: If your system uses the GNU libc you
+should be able to find various files with the name F<libc.mo>, the
+message catalog for the library itself. If you have found these
+files under F</usr/share/locale>, then you can try the following:
+
+ use Locale::Messages qw (:locale_h :libintl_h);
+ use POSIX qw (setlocale);
+
+ setlocale LC_MESSAGES, "";
+ textdomain "libc";
+
+ # The following is actually not needed, since this is
+ # one of the default search directories.
+ bindtextdomain libc => '/usr/share/locale';
+ bind_textdomain_codeset libc => 'iso-8859-1';
+
+ print gettext ("No such file or directory");
+
+See Locale::TextDomain(3) for much simpler ways.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::TextDomain(3pm), Locale::gettext_pp(3pm), Encode(3pm),
+perllocale(3pm), POSIX(3pm), perl(1), gettext(1), gettext(3)
+
+=cut
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/Recode.pm b/tp/maintain/lib/libintl-perl/lib/Locale/Recode.pm
new file mode 100644
index 0000000..f135a0a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/Recode.pm
@@ -0,0 +1,370 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: Recode.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $
+
+# Portable character conversion for Perl.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::Recode;
+
+use strict;
+
+require Locale::Recode::_Conversions;
+
+my $loaded = {};
+my $has_encode;
+
+sub new
+{
+ my $class = ref($_[0]) || $_[0];
+ shift;
+ my %args = @_;
+
+ my $self = bless {}, $class;
+
+ my ($from_codeset, $to_codeset) = @args{qw (from to)};
+
+ unless ($from_codeset && $to_codeset) {
+ require Carp;
+ Carp::croak (<<EOF);
+ Usage: $class->new (from => FROM_CODESET, to => TO_CODESET);
+EOF
+ }
+
+ # Find a conversion path.
+ my $path = Locale::Recode::_Conversions->findPath ($from_codeset,
+ $to_codeset);
+ unless ($path) {
+ $self->{__error} = 'EINVAL';
+ return $self;
+ }
+
+ my @conversions = ();
+ foreach (@$path) {
+ my ($module, $from, $to) = @$_;
+
+ unless ($loaded->{$module}) {
+ eval "require Locale::RecodeData::$module";
+ if ($@) {
+ $self->{__error} = $@;
+ return $self;
+ }
+
+ $loaded->{$module} = 1;
+ }
+
+ my $module_name = "Locale::RecodeData::$module";
+ my $method = 'new';
+ my $object = $module_name->$method (from => $from,
+ to => $to);
+
+ push @conversions, $object;
+ }
+
+ $self->{__conversions} = \@conversions;
+
+ return $self;
+}
+
+sub resolveAlias
+{
+ my ($class, $alias) = @_;
+
+ return Locale::Recode::_Conversions->resolveAlias ($alias);
+}
+
+sub getSupported
+{
+ return [ Locale::Recode::_Conversions->listSupported ];
+}
+
+sub getCharsets
+{
+ my $self = shift;
+ my %all = map { $_ => 1 } @{&getSupported};
+
+ require Locale::Recode::_Aliases;
+
+ my $conversions = Locale::Recode::_Conversions->listSupported;
+ foreach my $charset (keys %{Locale::Recode::_Aliases::ALIASES()}) {
+ my $mime_name = $self->resolveAlias ($charset);
+ next unless exists $all{$mime_name};
+ $all{$charset} = 1;
+ }
+
+ return [ keys %all ];
+}
+
+sub recode
+{
+ my $self = $_[0];
+
+ return if $self->{__error};
+
+ return 1 unless defined $_[1];
+
+ my $chain = $self->{__conversions};
+
+ foreach my $module (@$chain) {
+ my $success = $module->_recode ($_[1]);
+
+ unless ($success) {
+ $self->{__error} = $module->_getError;
+ return;
+ }
+ }
+
+ return 1;
+}
+
+sub getError
+{
+ my $self = shift;
+ my $error = $self->{__error} or return;
+
+ if ('EINVAL' eq $error) {
+ return 'Invalid conversion';
+ } else {
+ return $error;
+ }
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::Recode - Object-Oriented Portable Charset Conversion
+
+=head1 SYNOPSIS
+
+ use Locale::Recode;
+
+ $cd = Locale::Recode->new (from => 'UTF-8',
+ to => 'ISO-8859-1');
+
+ die $cd->getError if $cd->getError;
+
+ $cd->recode ($text) or die $cd->getError;
+
+ $mime_name = Locale::Recode->resolveAlias ('latin-1');
+
+ $supported = Locale::Recode->getSupported;
+
+ $complete = Locale::Recode->getCharsets;
+
+=head1 DESCRIPTION
+
+This module provides routines that convert textual data from one
+codeset to another in a portable way. The module has been started
+before Encode(3) was written. It's main purpose today is to provide
+charset conversion even when Encode(3) is not available on the system.
+It should also work for older Perl versions without Unicode support.
+
+Internally Locale::Recode(3) will use Encode(3) whenever possible,
+to allow for a faster conversion and for a wider range of supported
+charsets, and will only fall back to the Perl implementation when
+Encode(3) is not available or does not support a particular charset
+that Locale::Recode(3) does.
+
+Locale::Recode(3) is part of libintl-perl, and it's main purpose is
+actually to implement a portable charset conversion framework for
+the message translation facilities described in Locale::TextDomain(3).
+
+=head1 CONSTRUCTOR
+
+The constructor C<new()> requires two named arguments:
+
+=over 4
+
+=item B<from>
+
+The encoding of the original data. Case doesn't matter, aliases
+are resolved.
+
+=item B<to>
+
+The target encoding. Again, case doesn't matter, and aliases
+are resolved.
+
+=back
+
+The constructor will never fail. In case of an error, the object's
+internal state is set to bad and it will refuse to do any conversions.
+You can inquire the reason for the failure with the method
+getError().
+
+=head1 OBJECT METHODS
+
+The following object methods are available.
+
+=over 4
+
+=item B<recode (STRING)>
+
+Converts B<STRING> from the source encoding into the destination
+encoding. In case of success, a truth value is returned, false
+otherwise. You can inquire the reason for the failure with the
+method getError().
+
+=item B<getError>
+
+Returns either false if the object is not in an error state or
+an error message.
+
+=back
+
+=head1 CLASS METHODS
+
+The object provides some additional class methods:
+
+=over 4
+
+=item B<getSupported>
+
+Returns a reference to a list of all supported charsets. This
+may implicitely load additional Encode(3) conversions like
+Encode::HanExtra(3) which may produce considerable load on your
+system.
+
+The method is therefore not intended for regular use but rather
+for getting resp. displaying I<once> a list of available encodings.
+
+The members of the list are all converted to uppercase!
+
+=item B<getCharsets>
+
+Like getSupported() but also returns all available aliases.
+
+=back
+
+=head1 SUPPORTED CHARSETS
+
+The range of supported charsets is system-dependent. The following
+somewhat special charsets are always available:
+
+=over 4
+
+=item B<UTF-8>
+
+UTF-8 is available independently of your Perl version. For Perl 5.6
+or better or in the presence of Encode(3), conversions are not done
+in Perl but with the interfaces provided by these facilities which
+are written in C, hence much faster.
+
+Encoding data I<into> UTF-8 is fast, even if it is done in Perl.
+Decoding it in Perl may become quite slow. If you frequently have
+to decode UTF-8 with B<Locale::Recode> you will probably want to
+make sure that you do that with Perl 5.6 or beter, or install Encode(3) to
+speed up things.
+
+=item B<INTERNAL>
+
+UTF-8 is fast to write but hard to read for applications. It is
+therefore not the worst for internal string representation but not
+far from that. Locale::Recode(3) stores strings internally as a
+reference to an array of integer values like most programming languages
+(Perl is an exception) do, trading memory for performance.
+
+The integer values are the UCS-4 codes of the characters in host
+byte order.
+
+The encoding B<INTERNAL> is directly availabe via Locale::Recode(3)
+but of course you should not really use it for data exchange, unless
+you know what you are doing.
+
+=back
+
+Locale::Recode(3) has native support for a plethora of other encodings,
+most of them 8 bit encodings that are fast to decode, including most
+encodings used on popular micros like the ISO-8859-* series of encodings,
+most Windows-* encodings (also known as CP*), Macintosh, Atari, etc.
+
+=head1 NAMES AND ALIASES
+
+Each charset resp. encoding is available internally under a unique
+name. Whenever the information was available, the preferred MIME name
+(see L<http://www.iana.org/assignments/character-sets/>) was chosen as
+the internal name.
+
+Alias handling is quite strict. The module does not make wild guesses
+at what you mean ("What's the meaning of the acronym JIS" is a valid
+alias for "7bit-jis" in Encode(3) ....) but aims at providing common
+aliases only. The same applies to so-called aliases that are really
+mistakes, like "utf8" for UTF-8.
+
+The module knows all aliases that are listed with the IANA character
+set registry (L<http://www.iana.org/assignments/character-sets/>), plus
+those known to libiconv version 1.8, and a bunch of additional ones.
+
+=head1 CONVERSION TABLES
+
+The conversion tables have either been taken from official sources
+like the IANA or the Unicode Consortium, from Bruno Haible's libiconv,
+or from the sources of the GNU libc and the regression tests for
+libintl-perl will check for conformance here. For some encodings this data
+differs from Encode(3)'s data which would cause these tests to fail.
+In these cases, the module will not invoke the Encode(3) methods, but
+will fall back to the internal implementation for the sake of
+consistency.
+
+The few encodings that are affected are so simple that you will not
+experience any real performance penalty unless you convert large chunks
+of data. But the package is not really intended for such use anyway, and
+since Encode(3) is relatively new, I rather think that the differences
+are bugs in Encode which will be fixed soon.
+
+=head1 BUGS
+
+The module should provide fall back conversions for other Unicode
+encoding schemes like UCS-2, UCS-4 (big- and little-endian).
+
+The pure Perl UTF-8 decoder will not always handle corrupt UTF-8
+correctly, especially at the end and at the beginning of the string.
+This is not likely to be fixed, since the module's intention is not
+to be a consistency checker for UTF-8 data.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Encode(3), iconv(3), iconv(1), recode(1), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Aliases.pm b/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Aliases.pm
new file mode 100644
index 0000000..ee201f5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Aliases.pm
@@ -0,0 +1,749 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: _Aliases.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Internally known aliases for charsets.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::Recode::_Aliases;
+
+use constant ALIASES => {
+ '1047' => 'IBM1047',
+ '437' => 'IBM437',
+ '850' => 'IBM850',
+ '851' => 'IBM851',
+ '852' => 'IBM852',
+ '855' => 'IBM855',
+ '857' => 'IBM857',
+ '860' => 'IBM860',
+ '861' => 'IBM861',
+ '862' => 'IBM862',
+ '863' => 'IBM863',
+ '865' => 'IBM865',
+ '866' => 'IBM866',
+ '869' => 'IBM869',
+ '904' => 'IBM904',
+ 'ANSI_X3.4-1968' => 'US-ASCII',
+ 'ANSI_X3.4-1986' => 'US-ASCII',
+ 'ARABIC' => 'ISO-8859-6',
+ 'ARABIC7' => 'ASMO_449',
+ 'ASCII' => 'US-ASCII',
+ 'ASMO-708' => 'ISO-8859-6',
+ 'ATARIST' => 'ATARI-ST',
+ 'ATARIST-EURO' => 'ATARI-ST-EURO',
+ 'BIG-5' => 'BIG5',
+ 'BIG-FIVE' => 'BIG5',
+ 'BIG5-ETEN' => 'BIG5',
+ 'BIG5HKSCS' => 'BIG5-HKSCS',
+ 'BIGFIVE' => 'BIG5',
+ 'CA' => 'CSA_Z243.4-1985-1',
+ 'CCSID00924' => 'IBM00924',
+ 'CCSID01140' => 'IBM01140',
+ 'CCSID01141' => 'IBM01141',
+ 'CCSID01142' => 'IBM01142',
+ 'CCSID01143' => 'IBM01143',
+ 'CCSID01144' => 'IBM01144',
+ 'CCSID01145' => 'IBM01145',
+ 'CCSID01146' => 'IBM01146',
+ 'CCSID01147' => 'IBM01147',
+ 'CCSID01148' => 'IBM01148',
+ 'CCSID01149' => 'IBM01149',
+ 'CHINESE' => 'GB_2312-80',
+ 'CN' => 'GB_1988-80',
+ 'CN-BIG5' => 'BIG5',
+ 'CP-AR' => 'IBM868',
+ 'CP-GR' => 'IBM869',
+ 'CP-HU' => 'CWI',
+ 'CP-IS' => 'IBM861',
+ 'CP00924' => 'IBM00924',
+ 'CP01140' => 'IBM01140',
+ 'CP01141' => 'IBM01141',
+ 'CP01142' => 'IBM01142',
+ 'CP01143' => 'IBM01143',
+ 'CP01144' => 'IBM01144',
+ 'CP01145' => 'IBM01145',
+ 'CP01146' => 'IBM01146',
+ 'CP01147' => 'IBM01147',
+ 'CP01148' => 'IBM01148',
+ 'CP01149' => 'IBM01149',
+ 'CP037' => 'IBM037',
+ 'CP038' => 'IBM038',
+ 'CP1004' => 'IBM1004',
+ 'CP1026' => 'IBM1026',
+ 'CP1047' => 'IBM1047',
+ 'CP1250' => 'WINDOWS-1250',
+ 'CP1251' => 'WINDOWS-1251',
+ 'CP1252' => 'WINDOWS-1252',
+ 'CP1253' => 'WINDOWS-1253',
+ 'CP1254' => 'WINDOWS-1254',
+ 'CP1255' => 'WINDOWS-1255',
+ 'CP1256' => 'WINDOWS-1256',
+ 'CP1257' => 'WINDOWS-1257',
+ 'CP1258' => 'WINDOWS-1258',
+ 'CP154' => 'PTCP154',
+ 'CP273' => 'IBM273',
+ 'CP274' => 'IBM274',
+ 'CP275' => 'IBM275',
+ 'CP278' => 'IBM278',
+ 'CP280' => 'IBM280',
+ 'CP281' => 'IBM281',
+ 'CP284' => 'IBM284',
+ 'CP285' => 'IBM285',
+ 'CP290' => 'IBM290',
+ 'CP297' => 'IBM297',
+ 'CP367' => 'US-ASCII',
+ 'CP420' => 'IBM420',
+ 'CP423' => 'IBM423',
+ 'CP424' => 'IBM424',
+ 'CP437' => 'IBM437',
+ 'CP500' => 'IBM500',
+ 'CP775' => 'IBM775',
+ 'CP819' => 'ISO-8859-1',
+ 'CP850' => 'IBM850',
+ 'CP851' => 'IBM851',
+ 'CP852' => 'IBM852',
+ 'CP855' => 'IBM855',
+ 'CP857' => 'IBM857',
+ 'CP860' => 'IBM860',
+ 'CP861' => 'IBM861',
+ 'CP862' => 'IBM862',
+ 'CP863' => 'IBM863',
+ 'CP864' => 'IBM864',
+ 'CP865' => 'IBM865',
+ 'CP866' => 'IBM866',
+ 'CP868' => 'IBM868',
+ 'CP869' => 'IBM869',
+ 'CP870' => 'IBM870',
+ 'CP871' => 'IBM871',
+ 'CP874' => 'IBM874',
+ 'CP875' => 'IBM875',
+ 'CP880' => 'IBM880',
+ 'CP891' => 'IBM891',
+ 'CP903' => 'IBM903',
+ 'CP904' => 'IBM904',
+ 'CP905' => 'IBM905',
+ 'CP918' => 'IBM918',
+ 'CP936' => 'GBK',
+ 'CSA7-1' => 'CSA_Z243.4-1985-1',
+ 'CSA7-2' => 'CSA_Z243.4-1985-2',
+ 'CSADOBESTANDARDENCODING' => 'ADOBE-STANDARD-ENCODING',
+ 'CSASCII' => 'US-ASCII',
+ 'CSA_T500-1983' => 'ANSI_X3.110-1983',
+ 'CSBIG5' => 'BIG5',
+ 'CSBOCU-1' => 'BOCU-1',
+ 'CSCESU-8' => 'CESU-8',
+ 'CSDECMCS' => 'DEC-MCS',
+ 'CSDKUS' => 'DK-US',
+ 'CSEBCDICATDEA' => 'EBCDIC-AT-DE-A',
+ 'CSEBCDICCAFR' => 'EBCDIC-CA-FR',
+ 'CSEBCDICDKNO' => 'EBCDIC-DK-NO',
+ 'CSEBCDICDKNOA' => 'EBCDIC-DK-NO-A',
+ 'CSEBCDICES' => 'EBCDIC-ES',
+ 'CSEBCDICESA' => 'EBCDIC-ES-A',
+ 'CSEBCDICESS' => 'EBCDIC-ES-S',
+ 'CSEBCDICFISE' => 'EBCDIC-FI-SE',
+ 'CSEBCDICFISEA' => 'EBCDIC-FI-SE-A',
+ 'CSEBCDICFR' => 'EBCDIC-FR',
+ 'CSEBCDICIT' => 'EBCDIC-IT',
+ 'CSEBCDICPT' => 'EBCDIC-PT',
+ 'CSEBCDICUK' => 'EBCDIC-UK',
+ 'CSEBCDICUS' => 'EBCDIC-US',
+ 'CSEUCFIXWIDJAPANESE' => 'EXTENDED_UNIX_CODE_FIXED_WIDTH_FOR_JAPANESE',
+ 'CSEUCKR' => 'EUC-KR',
+ 'CSEUCPKDFMTJAPANESE' => 'EUC-JP',
+ 'CSEUCTW' => 'EUC-TW',
+ 'CSGB2312' => 'GB2312',
+ 'CSHALFWIDTHKATAKANA' => 'JIS_X0201',
+ 'CSHPDESKTOP' => 'HP-DESKTOP',
+ 'CSHPLEGAL' => 'HP-LEGAL',
+ 'CSHPMATH8' => 'HP-MATH8',
+ 'CSHPPIFONT' => 'HP-PI-FONT',
+ 'CSHPPSMATH' => 'ADOBE-SYMBOL-ENCODING',
+ 'CSHPROMAN8' => 'HP-ROMAN8',
+ 'CSIBBM904' => 'IBM904',
+ 'CSIBM037' => 'IBM037',
+ 'CSIBM038' => 'IBM038',
+ 'CSIBM1026' => 'IBM1026',
+ 'CSIBM273' => 'IBM273',
+ 'CSIBM274' => 'IBM274',
+ 'CSIBM275' => 'IBM275',
+ 'CSIBM277' => 'IBM277',
+ 'CSIBM278' => 'IBM278',
+ 'CSIBM280' => 'IBM280',
+ 'CSIBM281' => 'IBM281',
+ 'CSIBM284' => 'IBM284',
+ 'CSIBM285' => 'IBM285',
+ 'CSIBM290' => 'IBM290',
+ 'CSIBM297' => 'IBM297',
+ 'CSIBM420' => 'IBM420',
+ 'CSIBM423' => 'IBM423',
+ 'CSIBM424' => 'IBM424',
+ 'CSIBM500' => 'IBM500',
+ 'CSIBM851' => 'IBM851',
+ 'CSIBM855' => 'IBM855',
+ 'CSIBM857' => 'IBM857',
+ 'CSIBM860' => 'IBM860',
+ 'CSIBM861' => 'IBM861',
+ 'CSIBM863' => 'IBM863',
+ 'CSIBM864' => 'IBM864',
+ 'CSIBM865' => 'IBM865',
+ 'CSIBM866' => 'IBM866',
+ 'CSIBM868' => 'IBM868',
+ 'CSIBM869' => 'IBM869',
+ 'CSIBM870' => 'IBM870',
+ 'CSIBM871' => 'IBM871',
+ 'CSIBM880' => 'IBM880',
+ 'CSIBM891' => 'IBM891',
+ 'CSIBM903' => 'IBM903',
+ 'CSIBM905' => 'IBM905',
+ 'CSIBM918' => 'IBM918',
+ 'CSIBMEBCDICATDE' => 'EBCDIC-AT-DE',
+ 'CSIBMSYMBOLS' => 'IBM-SYMBOLS',
+ 'CSIBMTHAI' => 'IBM-THAI',
+ 'CSINVARIANT' => 'INVARIANT',
+ 'CSISO102T617BIT' => 'T.61-7BIT',
+ 'CSISO10367BOX' => 'ISO_10367-BOX',
+ 'CSISO10646UTF1' => 'ISO-10646-UTF-1',
+ 'CSISO10SWEDISH' => 'SEN_850200_B',
+ 'CSISO111ECMACYRILLIC' => 'ECMA-CYRILLIC',
+ 'CSISO11SWEDISHFORNAMES' => 'SEN_850200_C',
+ 'CSISO121CANADIAN1' => 'CSA_Z243.4-1985-1',
+ 'CSISO122CANADIAN2' => 'CSA_Z243.4-1985-2',
+ 'CSISO123CSAZ24341985GR' => 'CSA_Z243.4-1985-GR',
+ 'CSISO128T101G2' => 'T.101-G2',
+ 'CSISO139CSN369103' => 'CSN_369103',
+ 'CSISO13JISC6220JP' => 'JIS_C6220-1969-JP',
+ 'CSISO141JUSIB1002' => 'JUS_I.B1.002',
+ 'CSISO143IECP271' => 'IEC_P27-1',
+ 'CSISO146SERBIAN' => 'JUS_I.B1.003-SERB',
+ 'CSISO147MACEDONIAN' => 'JUS_I.B1.003-MAC',
+ 'CSISO14JISC6220RO' => 'JIS_C6220-1969-RO',
+ 'CSISO150' => 'GREEK-CCITT',
+ 'CSISO150GREEKCCITT' => 'GREEK-CCITT',
+ 'CSISO151CUBA' => 'NC_NC00-10:81',
+ 'CSISO153GOST1976874' => 'GOST_19768-74',
+ 'CSISO158LAP' => 'LATIN-LAP',
+ 'CSISO159JISX02121990' => 'JIS_X0212-1990',
+ 'CSISO15ITALIAN' => 'IT',
+ 'CSISO16PORTUGUESE' => 'PT',
+ 'CSISO17SPANISH' => 'ES',
+ 'CSISO18GREEK7OLD' => 'GREEK7-OLD',
+ 'CSISO19LATINGREEK' => 'LATIN-GREEK',
+ 'CSISO2022JP' => 'ISO-2022-JP',
+ 'CSISO2022JP2' => 'ISO-2022-JP-2',
+ 'CSISO2022KR' => 'ISO-2022-KR',
+ 'CSISO2033' => 'ISO_2033-1983',
+ 'CSISO21GERMAN' => 'DIN_66003',
+ 'CSISO25FRENCH' => 'NF_Z_62-010_(1973)',
+ 'CSISO27LATINGREEK1' => 'LATIN-GREEK-1',
+ 'CSISO2INTLREFVERSION' => 'ISO_646.IRV:1983',
+ 'CSISO42JISC62261978' => 'JIS_C6226-1978',
+ 'CSISO47BSVIEWDATA' => 'BS_VIEWDATA',
+ 'CSISO49INIS' => 'INIS',
+ 'CSISO4UNITEDKINGDOM' => 'BS_4730',
+ 'CSISO50INIS8' => 'INIS-8',
+ 'CSISO51INISCYRILLIC' => 'INIS-CYRILLIC',
+ 'CSISO5427CYRILLIC' => 'ISO_5427',
+ 'CSISO5428GREEK' => 'ISO_5428:1980',
+ 'CSISO57GB1988' => 'GB_1988-80',
+ 'CSISO58GB231280' => 'GB_2312-80',
+ 'CSISO60DANISHNORWEGIAN' => 'NS_4551-1',
+ 'CSISO60NORWEGIAN1' => 'NS_4551-1',
+ 'CSISO61NORWEGIAN2' => 'NS_4551-2',
+ 'CSISO646BASIC1983' => 'ISO_646.BASIC:1983',
+ 'CSISO646DANISH' => 'DS_2089',
+ 'CSISO6937ADD' => 'ISO_6937-2-25',
+ 'CSISO69FRENCH' => 'NF_Z_62-010',
+ 'CSISO70VIDEOTEXSUPP1' => 'VIDEOTEX-SUPPL',
+ 'CSISO84PORTUGUESE2' => 'PT2',
+ 'CSISO85SPANISH2' => 'ES2',
+ 'CSISO86HUNGARIAN' => 'MSZ_7795.3',
+ 'CSISO87JISX0208' => 'JIS_C6226-1983',
+ 'CSISO88596E' => 'ISO-8859-6-E',
+ 'CSISO88596I' => 'ISO-8859-6-I',
+ 'CSISO88598E' => 'ISO-8859-8-E',
+ 'CSISO88598I' => 'ISO-8859-8-I',
+ 'CSISO8859SUPP' => 'ISO_8859-SUPP',
+ 'CSISO88GREEK7' => 'GREEK7',
+ 'CSISO89ASMO449' => 'ASMO_449',
+ 'CSISO90' => 'ISO-IR-90',
+ 'CSISO91JISC62291984A' => 'JIS_C6229-1984-A',
+ 'CSISO92JISC62991984B' => 'JIS_C6229-1984-B',
+ 'CSISO93JIS62291984BADD' => 'JIS_C6229-1984-B-ADD',
+ 'CSISO94JIS62291984HAND' => 'JIS_C6229-1984-HAND',
+ 'CSISO95JIS62291984HANDADD' => 'JIS_C6229-1984-HAND-ADD',
+ 'CSISO96JISC62291984KANA' => 'JIS_C6229-1984-KANA',
+ 'CSISO99NAPLPS' => 'ANSI_X3.110-1983',
+ 'CSISOLATIN1' => 'ISO-8859-1',
+ 'CSISOLATIN2' => 'ISO-8859-2',
+ 'CSISOLATIN3' => 'ISO-8859-3',
+ 'CSISOLATIN4' => 'ISO-8859-4',
+ 'CSISOLATIN5' => 'ISO-8859-9',
+ 'CSISOLATIN6' => 'ISO-8859-10',
+ 'CSISOLATINARABIC' => 'ISO-8859-6',
+ 'CSISOLATINCYRILLIC' => 'ISO-8859-5',
+ 'CSISOLATINGREEK' => 'ISO-8859-7',
+ 'CSISOLATINHEBREW' => 'ISO-8859-8',
+ 'CSISOTEXTCOMM' => 'ISO_6937-2-ADD',
+ 'CSJISENCODING' => 'JIS_ENCODING',
+ 'CSKOI8R' => 'KOI8-R',
+ 'CSKSC56011987' => 'KS_C_5601-1987',
+ 'CSKSC5636' => 'KSC5636',
+ 'CSMACINTOSH' => 'MACINTOSH',
+ 'CSMICROSOFTPUBLISHING' => 'MICROSOFT-PUBLISHING',
+ 'CSMNEM' => 'MNEM',
+ 'CSMNEMONIC' => 'MNEMONIC',
+ 'CSNATSDANO' => 'NATS-DANO',
+ 'CSNATSDANOADD' => 'NATS-DANO-ADD',
+ 'CSNATSSEFI' => 'NATS-SEFI',
+ 'CSNATSSEFIADD' => 'NATS-SEFI-ADD',
+ 'CSPC775BALTIC' => 'IBM775',
+ 'CSPC850MULTILINGUAL' => 'IBM850',
+ 'CSPC862LATINHEBREW' => 'IBM862',
+ 'CSPC8CODEPAGE437' => 'IBM437',
+ 'CSPC8DANISHNORWEGIAN' => 'PC8-DANISH-NORWEGIAN',
+ 'CSPC8TURKISH' => 'PC8-TURKISH',
+ 'CSPCP852' => 'IBM852',
+ 'CSPTCP154' => 'PTCP154',
+ 'CSSHIFTJIS' => 'SHIFT_JIS',
+ 'CSUCS4' => 'ISO-10646-UCS-4',
+ 'CSUNICODE' => 'ISO-10646-UCS-2',
+ 'CSUNICODE11' => 'UNICODE-1-1',
+ 'CSUNICODE11UTF7' => 'UNICODE-1-1-UTF-7',
+ 'CSUNICODEASCII' => 'ISO-10646-UCS-BASIC',
+ 'CSUNICODEIBM1264' => 'ISO-UNICODE-IBM-1264',
+ 'CSUNICODEIBM1265' => 'ISO-UNICODE-IBM-1265',
+ 'CSUNICODEIBM1268' => 'ISO-UNICODE-IBM-1268',
+ 'CSUNICODEIBM1276' => 'ISO-UNICODE-IBM-1276',
+ 'CSUNICODELATIN1' => 'ISO-10646-UNICODE-LATIN1',
+ 'CSUNKNOWN8BIT' => 'UNKNOWN-8BIT',
+ 'CSUSDK' => 'US-DK',
+ 'CSVENTURAINTERNATIONAL' => 'VENTURA-INTERNATIONAL',
+ 'CSVENTURAMATH' => 'VENTURA-MATH',
+ 'CSVENTURAUS' => 'VENTURA-US',
+ 'CSVIQR' => 'VIQR',
+ 'CSVISCII' => 'VISCII',
+ 'CSWINDOWS30LATIN1' => 'ISO-8859-1-WINDOWS-3.0-LATIN-1',
+ 'CSWINDOWS31J' => 'WINDOWS-31J',
+ 'CSWINDOWS31LATIN1' => 'ISO-8859-1-WINDOWS-3.1-LATIN-1',
+ 'CSWINDOWS31LATIN2' => 'ISO-8859-2-WINDOWS-LATIN-2',
+ 'CSWINDOWS31LATIN5' => 'ISO-8859-9-WINDOWS-LATIN-5',
+ 'CUBA' => 'NC_NC00-10:81',
+ 'CWI-2' => 'CWI',
+ 'CYRILLIC' => 'ISO-8859-5',
+ 'CYRILLIC-ASIAN' => 'PTCP154',
+ 'DE' => 'DIN_66003',
+ 'DEC' => 'DEC-MCS',
+ 'DK' => 'DS_2089',
+ 'DS2089' => 'DS_2089',
+ 'E13B' => 'ISO_2033-1983',
+ 'EBCDIC-BE' => 'IBM274',
+ 'EBCDIC-BR' => 'IBM275',
+ 'EBCDIC-CP-AR1' => 'IBM420',
+ 'EBCDIC-CP-AR2' => 'IBM918',
+ 'EBCDIC-CP-BE' => 'IBM500',
+ 'EBCDIC-CP-CA' => 'IBM037',
+ 'EBCDIC-CP-CH' => 'IBM500',
+ 'EBCDIC-CP-DK' => 'IBM277',
+ 'EBCDIC-CP-ES' => 'IBM284',
+ 'EBCDIC-CP-FI' => 'IBM278',
+ 'EBCDIC-CP-FR' => 'IBM297',
+ 'EBCDIC-CP-GB' => 'IBM285',
+ 'EBCDIC-CP-GR' => 'IBM423',
+ 'EBCDIC-CP-HE' => 'IBM424',
+ 'EBCDIC-CP-IS' => 'IBM871',
+ 'EBCDIC-CP-IT' => 'IBM280',
+ 'EBCDIC-CP-NL' => 'IBM037',
+ 'EBCDIC-CP-NO' => 'IBM277',
+ 'EBCDIC-CP-ROECE' => 'IBM870',
+ 'EBCDIC-CP-SE' => 'IBM278',
+ 'EBCDIC-CP-TR' => 'IBM905',
+ 'EBCDIC-CP-US' => 'IBM037',
+ 'EBCDIC-CP-WT' => 'IBM037',
+ 'EBCDIC-CP-YU' => 'IBM870',
+ 'EBCDIC-CYRILLIC' => 'IBM880',
+ 'EBCDIC-DE-273+EURO' => 'IBM01141',
+ 'EBCDIC-DK-277+EURO' => 'IBM01142',
+ 'EBCDIC-ES-284+EURO' => 'IBM01145',
+ 'EBCDIC-FI-278+EURO' => 'IBM01143',
+ 'EBCDIC-FR-297+EURO' => 'IBM01147',
+ 'EBCDIC-GB-285+EURO' => 'IBM01146',
+ 'EBCDIC-GREEK' => 'IBM875',
+ 'EBCDIC-INT' => 'IBM038',
+ 'EBCDIC-INT1' => 'IBM256',
+ 'EBCDIC-INTERNATIONAL-500+EURO' => 'IBM01148',
+ 'EBCDIC-IS-871+EURO' => 'IBM01149',
+ 'EBCDIC-IT-280+EURO' => 'IBM01144',
+ 'EBCDIC-JP-E' => 'IBM281',
+ 'EBCDIC-JP-KANA' => 'IBM290',
+ 'EBCDIC-LATIN9--EURO' => 'IBM00924',
+ 'EBCDIC-NO-277+EURO' => 'IBM01142',
+ 'EBCDIC-SE-278+EURO' => 'IBM01143',
+ 'EBCDIC-US-37+EURO' => 'IBM01140',
+ 'ECMA-114' => 'ISO-8859-6',
+ 'ECMA-118' => 'ISO-8859-7',
+ 'ELOT_928' => 'ISO-8859-7',
+ 'EUC-CN' => 'CN-GB',
+ 'EUCCN' => 'CN-GB',
+ 'EUCJP' => 'EUC-JP',
+ 'EUCKR' => 'EUC-KR',
+ 'EUCTW' => 'EUC-TW',
+ 'EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE' => 'EUC-JP',
+ 'FI' => 'SEN_850200_B',
+ 'FR' => 'NF_Z_62-010',
+ 'FRISS' => 'EBCDIC-IS-FRISS',
+ 'GB' => 'BS_4730',
+ 'GB2312' => 'CN-GB',
+ 'GBK' => 'CP936',
+ 'GREEK' => 'ISO-8859-7',
+ 'GREEK8' => 'ISO-8859-7',
+ 'HEBREW' => 'ISO-8859-8',
+ 'HU' => 'MSZ_7795.3',
+ 'HZ-GB-2312' => 'HZ',
+ 'IBM367' => 'US-ASCII',
+ 'IBM775' => 'CP775',
+ 'IBM819' => 'ISO-8859-1',
+ 'IRV' => 'ISO_646.IRV:1983',
+ 'ISO-10646' => 'ISO-10646-UNICODE-LATIN1',
+ 'ISO-CELTIC' => 'ISO-8859-14',
+ 'ISO-IR-10' => 'SEN_850200_B',
+ 'ISO-IR-100' => 'ISO-8859-1',
+ 'ISO-IR-101' => 'ISO-8859-2',
+ 'ISO-IR-102' => 'T.61-7BIT',
+ 'ISO-IR-109' => 'ISO-8859-3',
+ 'ISO-IR-11' => 'SEN_850200_C',
+ 'ISO-IR-110' => 'ISO-8859-4',
+ 'ISO-IR-111' => 'ECMA-CYRILLIC',
+ 'ISO-IR-121' => 'CSA_Z243.4-1985-1',
+ 'ISO-IR-122' => 'CSA_Z243.4-1985-2',
+ 'ISO-IR-123' => 'CSA_Z243.4-1985-GR',
+ 'ISO-IR-126' => 'ISO-8859-7',
+ 'ISO-IR-127' => 'ISO-8859-6',
+ 'ISO-IR-128' => 'T.101-G2',
+ 'ISO-IR-13' => 'JIS_C6220-1969-JP',
+ 'ISO-IR-138' => 'ISO-8859-8',
+ 'ISO-IR-139' => 'CSN_369103',
+ 'ISO-IR-14' => 'JIS_C6220-1969-RO',
+ 'ISO-IR-141' => 'JUS_I.B1.002',
+ 'ISO-IR-142' => 'ISO_6937-2-ADD',
+ 'ISO-IR-143' => 'IEC_P27-1',
+ 'ISO-IR-144' => 'ISO-8859-5',
+ 'ISO-IR-146' => 'JUS_I.B1.003-SERB',
+ 'ISO-IR-147' => 'JUS_I.B1.003-MAC',
+ 'ISO-IR-148' => 'ISO-8859-9',
+ 'ISO-IR-149' => 'KS_C_5601-1987',
+ 'ISO-IR-15' => 'IT',
+ 'ISO-IR-150' => 'GREEK-CCITT',
+ 'ISO-IR-151' => 'NC_NC00-10:81',
+ 'ISO-IR-152' => 'ISO_6937-2-25',
+ 'ISO-IR-153' => 'GOST_19768-74',
+ 'ISO-IR-154' => 'ISO_8859-SUPP',
+ 'ISO-IR-155' => 'ISO_10367-BOX',
+ 'ISO-IR-157' => 'ISO-8859-10',
+ 'ISO-IR-158' => 'LATIN-LAP',
+ 'ISO-IR-159' => 'JIS_X0212-1990',
+ 'ISO-IR-16' => 'PT',
+ 'ISO-IR-166' => 'TIS-620',
+ 'ISO-IR-17' => 'ES',
+ 'ISO-IR-179' => 'ISO-8859-13',
+ 'ISO-IR-18' => 'GREEK7-OLD',
+ 'ISO-IR-19' => 'LATIN-GREEK',
+ 'ISO-IR-199' => 'ISO-8859-14',
+ 'ISO-IR-2' => 'ISO_646.IRV:1983',
+ 'ISO-IR-203' => 'ISO-8859-15',
+ 'ISO-IR-21' => 'DIN_66003',
+ 'ISO-IR-226' => 'ISO-8859-16',
+ 'ISO-IR-25' => 'NF_Z_62-010_(1973)',
+ 'ISO-IR-27' => 'LATIN-GREEK-1',
+ 'ISO-IR-37' => 'ISO_5427',
+ 'ISO-IR-4' => 'BS_4730',
+ 'ISO-IR-42' => 'JIS_C6226-1978',
+ 'ISO-IR-47' => 'BS_VIEWDATA',
+ 'ISO-IR-49' => 'INIS',
+ 'ISO-IR-50' => 'INIS-8',
+ 'ISO-IR-51' => 'INIS-CYRILLIC',
+ 'ISO-IR-54' => 'ISO_5427-EXT',
+ 'ISO-IR-55' => 'ISO_5428',
+ 'ISO-IR-57' => 'GB_1988-80',
+ 'ISO-IR-58' => 'GB_2312-80',
+ 'ISO-IR-6' => 'US-ASCII',
+ 'ISO-IR-60' => 'NS_4551-1',
+ 'ISO-IR-61' => 'NS_4551-2',
+ 'ISO-IR-69' => 'NF_Z_62-010',
+ 'ISO-IR-70' => 'VIDEOTEX-SUPPL',
+ 'ISO-IR-79' => 'ISO-8859-13',
+ 'ISO-IR-8-1' => 'NATS-SEFI',
+ 'ISO-IR-8-2' => 'NATS-SEFI-ADD',
+ 'ISO-IR-84' => 'PT2',
+ 'ISO-IR-85' => 'ES2',
+ 'ISO-IR-86' => 'MSZ_7795.3',
+ 'ISO-IR-87' => 'JIS_C6226-1983',
+ 'ISO-IR-88' => 'GREEK7',
+ 'ISO-IR-89' => 'ASMO_449',
+ 'ISO-IR-9-1' => 'NATS-DANO',
+ 'ISO-IR-9-2' => 'NATS-DANO-ADD',
+ 'ISO-IR-91' => 'JIS_C6229-1984-A',
+ 'ISO-IR-92' => 'JIS_C6229-1984-B',
+ 'ISO-IR-93' => 'JIS_C6229-1984-B-ADD',
+ 'ISO-IR-94' => 'JIS_C6229-1984-HAND',
+ 'ISO-IR-95' => 'JIS_C6229-1984-HAND-ADD',
+ 'ISO-IR-96' => 'JIS_C6229-1984-KANA',
+ 'ISO-IR-98' => 'ISO_2033-1983',
+ 'ISO-IR-99' => 'ANSI_X3.110-1983',
+ 'ISO5427CYRILLIC1981' => 'ISO_5427:1981',
+ 'ISO646-CA' => 'CSA_Z243.4-1985-1',
+ 'ISO646-CA2' => 'CSA_Z243.4-1985-2',
+ 'ISO646-CN' => 'GB_1988-80',
+ 'ISO646-CU' => 'NC_NC00-10:81',
+ 'ISO646-DE' => 'DIN_66003',
+ 'ISO646-DK' => 'DS_2089',
+ 'ISO646-ES' => 'ES',
+ 'ISO646-ES2' => 'ES2',
+ 'ISO646-FI' => 'SEN_850200_B',
+ 'ISO646-FR' => 'NF_Z_62-010',
+ 'ISO646-FR1' => 'NF_Z_62-010_(1973)',
+ 'ISO646-GB' => 'BS_4730',
+ 'ISO646-HU' => 'MSZ_7795.3',
+ 'ISO646-IT' => 'IT',
+ 'ISO646-JP' => 'JIS_C6220-1969-RO',
+ 'ISO646-JP-OCR-B' => 'JIS_C6229-1984-B',
+ 'ISO646-KR' => 'KSC5636',
+ 'ISO646-NO' => 'NS_4551-1',
+ 'ISO646-NO2' => 'NS_4551-2',
+ 'ISO646-PT' => 'PT',
+ 'ISO646-PT2' => 'PT2',
+ 'ISO646-SE' => 'SEN_850200_B',
+ 'ISO646-SE2' => 'SEN_850200_C',
+ 'ISO646-US' => 'US-ASCII',
+ 'ISO646-YU' => 'JUS_I.B1.002',
+ 'ISO_5427:1981' => 'ISO_5427-EXT',
+ 'ISO_5428:1980' => 'ISO_5428',
+ 'ISO_646.IRV:1991' => 'US-ASCII',
+ 'ISO_8859-1' => 'ISO-8859-1',
+ 'ISO_8859-1:1987' => 'ISO-8859-1',
+ 'ISO_8859-10' => 'ISO-8859-10',
+ 'ISO_8859-10:1992' => 'ISO-8859-10',
+ 'ISO_8859-13' => 'ISO-8859-13',
+ 'ISO_8859-14' => 'ISO-8859-14',
+ 'ISO_8859-14:1998' => 'ISO-8859-14',
+ 'ISO_8859-15' => 'ISO-8859-15',
+ 'ISO_8859-15:1998' => 'ISO-8859-15',
+ 'ISO_8859-16' => 'ISO-8859-16',
+ 'ISO_8859-16:2001' => 'ISO-8859-16',
+ 'ISO_8859-1:1987' => 'ISO-8859-1',
+ 'ISO_8859-2' => 'ISO-8859-2',
+ 'ISO_8859-2:1987' => 'ISO-8859-2',
+ 'ISO_8859-3' => 'ISO-8859-3',
+ 'ISO_8859-3:1988' => 'ISO-8859-3',
+ 'ISO_8859-4' => 'ISO-8859-4',
+ 'ISO_8859-4:1988' => 'ISO-8859-4',
+ 'ISO_8859-5' => 'ISO-8859-5',
+ 'ISO_8859-5:1988' => 'ISO-8859-5',
+ 'ISO_8859-6' => 'ISO-8859-6',
+ 'ISO_8859-6-E' => 'ISO-8859-6-E',
+ 'ISO_8859-6-I' => 'ISO-8859-6-I',
+ 'ISO_8859-6:1987' => 'ISO-8859-6',
+ 'ISO_8859-7' => 'ISO-8859-7',
+ 'ISO_8859-7:1987' => 'ISO-8859-7',
+ 'ISO_8859-8' => 'ISO-8859-8',
+ 'ISO_8859-8-E' => 'ISO-8859-8-E',
+ 'ISO_8859-8-I' => 'ISO-8859-8-I',
+ 'ISO_8859-8:1988' => 'ISO-8859-8',
+ 'ISO_8859-9' => 'ISO-8859-9',
+ 'ISO_8859-9:1989' => 'ISO-8859-9',
+ 'ISO_9036' => 'ASMO_449',
+ 'JIS_C6220-1969' => 'JIS_C6220-1969-JP',
+ 'JIS_X0208-1983' => 'JIS_C6226-1983',
+ 'JP' => 'JIS_C6220-1969-RO',
+ 'JP-OCR-A' => 'JIS_C6229-1984-A',
+ 'JP-OCR-B' => 'JIS_C6229-1984-B',
+ 'JP-OCR-B-ADD' => 'JIS_C6229-1984-B-ADD',
+ 'JP-OCR-HAND' => 'JIS_C6229-1984-HAND',
+ 'JP-OCR-HAND-ADD' => 'JIS_C6229-1984-HAND-ADD',
+ 'JS' => 'JUS_I.B1.002',
+ 'KATAKANA' => 'JIS_C6220-1969-JP',
+ 'KOREAN' => 'KS_C_5601-1987',
+ 'KSC_5601' => 'KS_C_5601-1987',
+ 'KS_C_5601-1989' => 'KS_C_5601-1987',
+ 'L1' => 'ISO-8859-1',
+ 'L10' => 'ISO-8859-16',
+ 'L2' => 'ISO-8859-2',
+ 'L3' => 'ISO-8859-3',
+ 'L4' => 'ISO-8859-4',
+ 'L5' => 'ISO-8859-9',
+ 'L6' => 'ISO-8859-10',
+ 'L7' => 'ISO-8859-13',
+ 'L8' => 'ISO-8859-14',
+ 'LAP' => 'LATIN-LAP',
+ 'LATIN-9' => 'ISO-8859-15',
+ 'LATIN1' => 'ISO-8859-1',
+ 'LATIN1-2-5' => 'ISO_8859-SUPP',
+ 'LATIN10' => 'ISO-8859-16',
+ 'LATIN2' => 'ISO-8859-2',
+ 'LATIN3' => 'ISO-8859-3',
+ 'LATIN4' => 'ISO-8859-4',
+ 'LATIN5' => 'ISO-8859-9',
+ 'LATIN6' => 'ISO-8859-10',
+ 'LATIN7' => 'ISO-8859-13',
+ 'LATIN8' => 'ISO-8859-14',
+ 'MAC' => 'MACINTOSH',
+ 'MAC-ARABIC' => 'MACARABIC',
+ 'MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE',
+ 'MAC-CROATIAN' => 'MACCROATIAN',
+ 'MAC-CYRILLIC' => 'MACCYRILLIC',
+ 'MAC-GREEK' => 'MACGREEK',
+ 'MAC-HEBREW' => 'MACHEBREW',
+ 'MAC-ICELAND' => 'MACICELAND',
+ 'MAC-ROMANIA' => 'MACROMANIA',
+ 'MAC-THAI' => 'MACTHAI',
+ 'MAC-TURKISH' => 'MACTURKISH',
+ 'MAC-UKRAINE' => 'MACUKRAINE',
+ 'MACEDONIAN' => 'JUS_I.B1.003-MAC',
+ 'MS-ARAB' => 'WINDOWS-1256',
+ 'MS-ANSI' => 'WINDOWS-1252',
+ 'MS-EE' => 'WINDOWS-1250',
+ 'MS-CYRL' => 'WINDOWS-1251',
+ 'MS-GREEK' => 'WINDOWS-1253',
+ 'MS-HEBR' => 'WINDOWS-1255',
+ 'MS-TURK' => 'WINDOWS-1254',
+ 'MS936' => 'GBK',
+ 'MS_KANJI' => 'SHIFT_JIS',
+ 'NAPLPS' => 'ANSI_X3.110-1983',
+ 'NO' => 'NS_4551-1',
+ 'NO2' => 'NS_4551-2',
+ 'OS2LATIN1' => 'IBM1004',
+ 'PT154' => 'PTCP154',
+ 'R8' => 'HP-ROMAN8',
+ 'REF' => 'ISO_646.BASIC:1983',
+ 'ROMAN8' => 'HP-ROMAN8',
+ 'SE' => 'SEN_850200_B',
+ 'SE2' => 'SEN_850200_C',
+ 'SERBIAN' => 'JUS_I.B1.003-SERB',
+ 'ST_SEV_358-88' => 'GOST_19768-74',
+ 'T.61' => 'T.61-8BIT',
+ 'TIS620' => 'TIS-620',
+ 'TIS620-0' => 'TIS-620',
+ 'TIS620.2529-1' => 'TIS-620',
+ 'TIS620.2533-0' => 'TIS-620',
+ 'TIS620.2533-1' => 'TIS-620',
+ 'UHC' => 'CP949',
+ 'UK' => 'BS_4730',
+ 'US' => 'US-ASCII',
+ 'VISCII1.1-1' => 'VISCII',
+ 'WINBALTRIM' => 'WINDOWS-1257',
+ 'WINDOWS-874' => 'CP874',
+ 'WINDOWS-936' => 'GBK',
+ 'WINDOWS-SAMI2' => 'WIN-SAMI-2',
+ 'WS2' => 'WIN-SAMI-2',
+ 'X0201' => 'JIS_X0201',
+ 'X0201-7' => 'JIS_C6220-1969-JP',
+ 'X0208' => 'JIS_C6226-1983',
+ 'X0212' => 'JIS_X0212-1990',
+ 'YU' => 'JUS_I.B1.002',
+ 'X-ATARI-ST' => 'ATARI-ST',
+ 'X-ATARIST' => 'ATARI-ST',
+ 'X-ATARI-ST-EURO' => 'ATARI-ST-EURO',
+ 'X-ATARIST-EURO' => 'ATARI-ST-EURO',
+ 'X-MAC-ARABIC' => 'MACARABIC',
+ 'X-MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE',
+ 'X-MAC-CROATIAN' => 'MACCROATIAN',
+ 'X-MAC-CYRILLIC' => 'MACCYRILLIC',
+ 'X-MAC-GREEK' => 'MACGREEK',
+ 'X-MAC-HEBREW' => 'MACHEBREW',
+ 'X-MAC-ICELAND' => 'MACICELAND',
+ 'X-MAC-ROMANIA' => 'MACROMANIA',
+ 'X-MAC-THAI' => 'MACTHAI',
+ 'X-MAC-TURKISH' => 'MACTURKISH',
+ 'X-MAC-UKRAINE' => 'MACUKRAINE',
+ 'X-MACARABIC' => 'MACARABIC',
+ 'X-MACCENTRALEUROPE' => 'MACCENTRALEUROPE',
+ 'X-MACCROATIAN' => 'MACCROATIAN',
+ 'X-MACCYRILLIC' => 'MACCYRILLIC',
+ 'X-MACGREEK' => 'MACGREEK',
+ 'X-MACHEBREW' => 'MACHEBREW',
+ 'X-MACICELAND' => 'MACICELAND',
+ 'X-MACROMANIA' => 'MACROMANIA',
+ 'X-MACTHAI' => 'MACTHAI',
+ 'X-MACTURKISH' => 'MACTURKISH',
+ 'X-MACUKRAINE' => 'MACUKRAINE',
+};
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::Recode::_Aliases - Internal Charset Alias Database for libintl-perl
+
+=head1 SYNOPSIS
+
+use Locale::Recode::_Aliases
+
+die "This module is internal to libintl. Do not use it directly!\n";
+
+=head1 DESCRIPTION
+
+Contains a list of codeset aliases that are known internally to
+libintl.
+
+=head1 CONSTANTS
+
+=over 4
+
+=item ALIASES
+
+The constant B<Locale::Recode::_Aliases::ALIASES> contains a hash reference
+the keys of which are internally known charset alias names all in
+uppercase. The corresponding value is the canonical name of the charset.
+
+=back
+
+=head1 BUGS
+
+The format of the lookup table will most probably change, do not rely
+on the current format!
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Conversions.pm b/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Conversions.pm
new file mode 100644
index 0000000..336f4b2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/Recode/_Conversions.pm
@@ -0,0 +1,463 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: _Conversions.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# List of internally known conversions.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::Recode::_Conversions;
+
+use strict;
+use integer;
+
+use vars qw ($conversions $optional_conversions);
+
+# These are the canonical names of the encodings always available.
+$conversions = {
+ 'ASMO_449' => 'ASMO_449',
+ 'ATARI-ST-EURO' => 'ATARI_ST_EURO',
+ 'ATARI-ST' => 'ATARI_ST',
+ 'CP10007' => 'CP10007',
+ 'CSN_369103' => 'CSN_369103',
+ 'CWI' => 'CWI',
+ 'DEC-MCS' => 'DEC_MCS',
+ 'EBCDIC-AT-DE-A' => 'EBCDIC_AT_DE_A',
+ 'EBCDIC-AT-DE' => 'EBCDIC_AT_DE',
+ 'EBCDIC-CA-FR' => 'EBCDIC_CA_FR',
+ 'EBCDIC-DK-NO-A' => 'EBCDIC_DK_NO_A',
+ 'EBCDIC-DK-NO' => 'EBCDIC_DK_NO',
+ 'EBCDIC-ES-A' => 'EBCDIC_ES_A',
+ 'EBCDIC-ES-S' => 'EBCDIC_ES_S',
+ 'EBCDIC-ES' => 'EBCDIC_ES',
+ 'EBCDIC-FI-SE-A' => 'EBCDIC_FI_SE_A',
+ 'EBCDIC-FI-SE' => 'EBCDIC_FI_SE',
+ 'EBCDIC-FR' => 'EBCDIC_FR',
+ 'EBCDIC-IS-FRISS' => 'EBCDIC_IS_FRISS',
+ 'EBCDIC-IT' => 'EBCDIC_IT',
+ 'EBCDIC-PT' => 'EBCDIC_PT',
+ 'EBCDIC-UK' => 'EBCDIC_UK',
+ 'EBCDIC-US' => 'EBCDIC_US',
+ 'ECMA-CYRILLIC' => 'ECMA_CYRILLIC',
+ 'GEORGIAN-ACADEMY' => 'GEORGIAN_ACADEMY',
+ 'GEORGIAN-PS' => 'GEORGIAN_PS',
+ 'GOST_19768-74' => 'GOST_19768_74',
+ 'GREEK-CCITT' => 'GREEK_CCITT',
+ 'GREEK7-OLD' => 'GREEK7_OLD',
+ 'GREEK7' => 'GREEK7',
+ 'HP-ROMAN8' => 'HP_ROMAN8',
+ 'IBM037' => 'IBM037',
+ 'IBM038' => 'IBM038',
+ 'IBM1004' => 'IBM1004',
+ 'IBM1026' => 'IBM1026',
+ 'IBM1047' => 'IBM1047',
+ 'IBM256' => 'IBM256',
+ 'IBM273' => 'IBM273',
+ 'IBM274' => 'IBM274',
+ 'IBM275' => 'IBM275',
+ 'IBM277' => 'IBM277',
+ 'IBM278' => 'IBM278',
+ 'IBM280' => 'IBM280',
+ 'IBM281' => 'IBM281',
+ 'IBM284' => 'IBM284',
+ 'IBM285' => 'IBM285',
+ 'IBM290' => 'IBM290',
+ 'IBM297' => 'IBM297',
+ 'IBM420' => 'IBM420',
+ 'IBM423' => 'IBM423',
+ 'IBM424' => 'IBM424',
+ 'IBM437' => 'IBM437',
+ 'IBM500' => 'IBM500',
+ 'IBM850' => 'IBM850',
+ 'IBM851' => 'IBM851',
+ 'IBM852' => 'IBM852',
+ 'IBM855' => 'IBM855',
+ 'IBM857' => 'IBM857',
+ 'IBM860' => 'IBM860',
+ 'IBM861' => 'IBM861',
+ 'IBM862' => 'IBM862',
+ 'IBM863' => 'IBM863',
+ 'IBM864' => 'IBM864',
+ 'IBM865' => 'IBM865',
+ 'IBM866' => 'IBM866',
+ 'IBM868' => 'IBM868',
+ 'IBM869' => 'IBM869',
+ 'IBM870' => 'IBM870',
+ 'IBM871' => 'IBM871',
+ 'IBM874' => 'IBM874',
+ 'IBM875' => 'IBM875',
+ 'IBM880' => 'IBM880',
+ 'IBM891' => 'IBM891',
+ 'IBM903' => 'IBM903',
+ 'IBM904' => 'IBM904',
+ 'IBM905' => 'IBM905',
+ 'IBM918' => 'IBM918',
+ 'IEC_P27-1' => 'IEC_P27_1',
+ 'INIS-8' => 'INIS_8',
+ 'INIS-CYRILLIC' => 'INIS_CYRILLIC',
+ 'INIS' => 'INIS',
+ 'ISO-8859-1' => 'ISO_8859_1',
+ 'ISO-8859-10' => 'ISO_8859_10',
+ 'ISO-8859-11' => 'ISO_8859_11',
+ 'ISO-8859-13' => 'ISO_8859_13',
+ 'ISO-8859-14' => 'ISO_8859_14',
+ 'ISO-8859-15' => 'ISO_8859_15',
+ 'ISO-8859-16' => 'ISO_8859_16',
+ 'ISO-8859-2' => 'ISO_8859_2',
+ 'ISO-8859-3' => 'ISO_8859_3',
+ 'ISO-8859-4' => 'ISO_8859_4',
+ 'ISO-8859-5' => 'ISO_8859_5',
+ 'ISO-8859-6' => 'ISO_8859_6',
+ 'ISO-8859-7' => 'ISO_8859_7',
+ 'ISO-8859-8' => 'ISO_8859_8',
+ 'ISO-8859-9' => 'ISO_8859_9',
+ 'ISO_10367-BOX' => 'ISO_10367_BOX',
+ 'ISO_2033-1983' => 'ISO_2033_1983',
+ 'ISO_5427-EXT' => 'ISO_5427_EXT',
+ 'ISO_5427' => 'ISO_5427',
+ 'ISO_5428' => 'ISO_5428',
+ 'KOI-8' => 'KOI_8',
+ 'KOI8-R' => 'KOI8_R',
+ 'KOI8-RU' => 'KOI8_RU',
+ 'KOI8-T' => 'KOI8_T',
+ 'KOI8-U' => 'KOI8_U',
+ 'LATIN-GREEK-1' => 'LATIN_GREEK_1',
+ 'LATIN-GREEK' => 'LATIN_GREEK',
+ 'MACINTOSH' => 'MACINTOSH',
+ 'MACARABIC' => 'MACARABIC',
+ 'MACCYRILLIC' => 'MACCYRILLIC',
+ 'MACCROATIAN' => 'MACCROATIAN',
+ 'MACGREEK' => 'MACGREEK',
+ 'MACHEBREW' => 'MACHEBREW',
+ 'MACICELAND' => 'MACICELAND',
+ 'MACROMANIA' => 'MACROMANIA',
+ 'MACTHAI' => 'MACTHAI',
+ 'MACTURKISH' => 'MACTURKISH',
+ 'MACUKRAINE' => 'MACUKRAINE',
+ 'MAC-IS' => 'MAC_IS',
+ 'MAC-SAMI' => 'MAC_SAMI',
+ 'MAC-UK' => 'MAC_UK',
+ 'NATS-DANO' => 'NATS_DANO',
+ 'NATS-SEFI' => 'NATS_SEFI',
+ 'NEXTSTEP' => 'NEXTSTEP',
+ 'TIS-620' => 'TIS_620',
+ 'UTF-8' => 'UTF_8',
+ 'VISCII' => 'VISCII',
+ 'WIN-SAMI-2' => 'SAMI_WS2',
+ 'WINDOWS-1250' => 'CP1250',
+ 'WINDOWS-1251' => 'CP1251',
+ 'WINDOWS-1252' => 'CP1252',
+ 'WINDOWS-1253' => 'CP1253',
+ 'WINDOWS-1254' => 'CP1254',
+ 'WINDOWS-1256' => 'CP1256',
+ 'WINDOWS-1257' => 'CP1257',
+ 'US-ASCII' => 'US_ASCII',
+};
+
+# These encodings are maybe available via Encode(3pm).
+$optional_conversions = {
+ 'BIG5' => undef,
+ 'BIG5-HKSCS' => undef,
+ 'CN-GB' => undef,
+ 'CN-GB-ISOIR165' => undef,
+ 'CP1006' => undef,
+ 'CP1026' => undef,
+ 'CP1047' => undef,
+ 'CP1361' => undef,
+ 'CP949' => undef,
+ 'CP37' => undef,
+ 'CP424' => undef,
+ 'CP500' => undef,
+ 'CP737' => undef,
+ 'CP775' => undef,
+ 'CP856' => undef,
+ 'CP874' => undef,
+ 'CP875' => undef,
+ 'CP932' => undef,
+ 'CP936' => undef,
+ 'CP950' => undef,
+ 'EUC-JP' => undef,
+ 'EUC-KR' => undef,
+ 'EUC-TW' => undef,
+ # mapping from 0xef to 0xff missing.
+ # 'HP-ROMAN8' => undef,
+ 'GB18030' => undef,
+ 'HZ' => undef,
+ 'IBM437' => undef,
+ 'IBM850' => undef,
+ 'IBM852' => undef,
+ 'IBM855' => undef,
+ 'IBM857' => undef,
+ 'IBM860' => undef,
+ 'IBM861' => undef,
+ 'IBM862' => undef,
+ 'IBM863' => undef,
+ 'IBM864' => undef,
+ 'IBM865' => undef,
+ 'IBM866' => undef,
+ 'IBM869' => undef,
+ 'ISO-10646-UCS-2' => undef,
+ 'ISO-10646-UCS-4' => undef,
+ 'ISO-2022-JP' => undef,
+ 'ISO-2022-JP-1' => undef,
+ 'ISO-2022-KR' => undef,
+ 'ISO-8859-1' => undef,
+ 'ISO-8859-10' => undef,
+ # This is broken in some versions of Encode.
+ # 'ISO-8859-11' => undef,
+ 'ISO-8859-13' => undef,
+ 'ISO-8859-14' => undef,
+ 'ISO-8859-15' => undef,
+ # Errors at 0xa5 and 0xab.
+ # 'ISO-8859-16' => undef,
+ 'ISO-8859-2' => undef,
+ 'ISO-8859-3' => undef,
+ 'ISO-8859-4' => undef,
+ 'ISO-8859-5' => undef,
+ # Uses arabic digits in ascii range?!
+ # 'ISO-8859-6' => undef,
+ # 0xa1 and 0xa2 are incorrectly encoded.
+ # 'ISO-8859-7' => undef,
+ # 0xfd and 0xfe are missing.
+ # 'ISO-8859-8' => undef,
+ 'ISO-8859-9' => undef,
+ 'ISO-IR-149' => undef,
+ 'KOI8-R' => undef,
+ # 0x95 is BULLET, not BULLET OPERATOR.
+ # 'KOI8-U' => undef,
+ # Seems to be messed up in certain Encode versions.
+ # 'MACINTOSH' => undef,
+ # TODO: Check other Mac encodings for correctness.
+ # Nextstep is completely broken in my version of Encode.
+ # 'NEXTSTEP' => undef,
+ 'SHIFT_JIS' => undef,
+ 'UCS-2BE' => undef,
+ 'UCS-2LE' => undef,
+ 'UCS-4BE' => undef,
+ 'UCS-4LE' => undef,
+ 'US-ASCII' => undef,
+ 'UTF-16' => undef,
+ 'UTF-16BE' => undef,
+ 'UTF-16LE' => undef,
+ 'UTF-32' => undef,
+ 'UTF-32BE' => undef,
+ 'UTF-32LE' => undef,
+ 'UTF-8' => undef,
+ # 0x86 is missing, 0xa6 is incorrectly encoded.
+ # 'VISCII' => undef,
+ 'WINDOWS-1250' => undef,
+ 'WINDOWS-1251' => undef,
+ 'WINDOWS-1252' => undef,
+ 'WINDOWS-1253' => undef,
+ 'WINDOWS-1254' => undef,
+ 'WINDOWS-1255' => undef,
+ 'WINDOWS-1256' => undef,
+ 'WINDOWS-1257' => undef,
+ 'WINDOWS-1258' => undef,
+};
+
+my $has_encode;
+
+sub resolveAlias
+{
+ my (undef, $encoding) = @_;
+
+ $encoding = uc $encoding;
+
+ return $encoding if exists $conversions->{$encoding};
+ return $encoding if exists $optional_conversions->{$encoding};
+
+ require Locale::Recode::_Aliases;
+
+ my $resolved = Locale::Recode::_Aliases::ALIASES()->{$encoding};
+
+ return $resolved if $resolved;
+
+ return;
+}
+
+sub isSupported
+{
+ my ($class, $encoding) = @_;
+
+ return unless defined $encoding && length $encoding;
+
+ $encoding = uc $encoding;
+ my $mimename = $class->resolveAlias ($encoding);
+
+ return unless $mimename;
+
+ # Determine the correct module.
+ if (exists $optional_conversions->{$mimename}) {
+ unless (defined $has_encode) {
+ eval "require Encode";
+ $has_encode = !$@;
+
+ if ($has_encode) {
+ require Encode::Alias;
+
+ # Add missing real names.
+ Encode::Alias::define_alias (MS_KANJI => 'ShiftJIS');
+ Encode::Alias::define_alias ('CN-GB' => 'EUC-CN');
+ }
+ }
+
+ if ($has_encode) {
+ # Now check whether Encode really supports that encoding.
+ eval "Encode::encode ('$mimename', 'x')";
+
+ unless ($@) {
+ $conversions->{$mimename} = '_Encode';
+ }
+ delete $optional_conversions->{$mimename};
+ }
+ }
+
+ return $conversions->{$mimename} if exists $conversions->{$mimename};
+
+ return;
+}
+
+sub listSupported
+{
+ my ($class) = @_;
+
+ foreach my $opt (keys %$optional_conversions) {
+ $class->isSupported ($opt);
+ }
+
+ my @list = keys %$conversions;
+ return @list;
+}
+
+# Find a conversion path.
+sub findPath
+{
+ my ($class, $from, $to) = @_;
+
+ $from = 'INTERNAL' eq uc $from ? 'INTERNAL' : $class->resolveAlias ($from);
+ $to = 'INTERNAL' eq uc $to ? 'INTERNAL' : $class->resolveAlias ($to);
+
+ return unless $from && $to;
+
+ return [] if $from eq $to;
+
+ my $from_module = $class->isSupported ($from);
+ my $to_module = $class->isSupported ($to);
+
+ if (!$from_module) {
+ if ('INTERNAL' eq $from) {
+ $from_module = $to_module or return;
+ } else {
+ return;
+ }
+ }
+
+ if (!$to_module) {
+ if ('INTERNAL' eq $to) {
+ $to_module = $from_module or return;
+ } else {
+ return;
+ }
+ }
+
+ if ($from_module eq $to_module
+ || $to eq 'INTERNAL'
+ || $to eq 'UTF-8') {
+ return [[ $from_module, $from, $to ]];
+ } elsif ($from eq 'INTERNAL') {
+ return [[ $to_module, $from, $to ]];
+ } else {
+ return [[ $from_module, $from, 'INTERNAL' ],
+ [ $to_module, 'INTERNAL', $to ]];
+ }
+}
+
+# TODO: check for
+# 7bit-jis
+# AdobeStandardEncoding
+# AdobeSymbol
+# AdobeZdingbat
+# ascii-ctrl
+# big5ext
+# big5plus
+# cccii
+# cns11643-1
+# cns11643-2
+# cns11643-3
+# cns11643-4
+# cns11643-5
+# cns11643-6
+# cns11643-7
+# cns11643-f
+# dingbats
+# gb12345-raw
+# gb2312-raw
+# gsm0338
+# jis0201-raw
+# jis0208-raw
+# jis0212-raw
+# koi8-f
+# MIME-B
+# MIME-Header
+# MIME-Q
+# posix-bc
+# symbol
+# unisys
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::Recode::_Conversions - Internal Table of Known Conversions
+
+=head1 SYNOPSIS
+
+use Locale::Recode::_Conversions
+
+This module is internal to libintl. Do not use it directly!
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData.pm
new file mode 100644
index 0000000..68c45c9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData.pm
@@ -0,0 +1,179 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: RecodeData.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $
+
+# Virtual base class for Locale::Recode converters.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData;
+
+use strict;
+
+sub new
+{
+ my ($class, %args) = @_;
+
+ bless {
+ _from => $args{from},
+ _to => $args{to},
+ }, $class;
+}
+
+sub _getError
+{
+ shift->{_error};
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData - Abstract Base Class for Charset Converters
+
+=head1 SYNOPSIS
+
+ # For compatibility with Perl 5.005 and earlier, you must
+ # *use* the module before inheriting from it!
+ use qw (Locale::RecodeData);
+ use base qw (Locale::RecodeData);
+
+=head1 DESCRIPTION
+
+The module B<Locale::RecodeData> serves as an abstract base class to
+all converters used by Locale::Recode(3).
+
+Adding new conversion modules is currently not straightforward, and
+you will have to edit the sources of some modules for that purpose.
+
+First, you have to add your new converter class to the list found
+in Locale::_Conversions(3), so that Locale::Recode(3) knows about
+its presence. If there are valid aliases for the codeset of your
+converter, you will also have to edit Locale::_Aliases(3).
+
+Finally, you have to implement the (protected) conversion routine
+_recode(). See below (L<"INTERFACE")> for details.
+
+=head1 CONSTRUCTOR
+
+=over 4
+
+=item B<new (from =E<gt> FROM_CODESET, to =E<gt> TO_CODESET)>
+
+The constructor takes two (named) arguments:
+
+=over 8
+
+=item B<from>
+
+The canonical name of the source codeset. Aliases have already been
+resolved and the name is converted to uppercase.
+
+=item B<to>
+
+The canonical name of the destination codeset. Aliases have already been
+resolved and the name is converted to uppercase.
+
+=back
+
+You normally don't have to implement the constructor. The default constructor
+implemented here will store the source and destination codesets in the
+protected members C<_from> and C<_to>.
+
+=back
+
+=head1 METHODS
+
+The class implements one method:
+
+=over 4
+
+=item B<_getError>
+
+Returns the (protected) member C<_error>.
+
+=back
+
+=head1 INTERFACE
+
+New conversion classes must provide the following interface:
+
+=over 4
+
+=item B<new (from =E<gt> FROM_CODESET, to =E<gt> TO_CODESET)>
+
+The constructor takes two (named) arguments:
+
+=over 8
+
+=item B<from>
+
+The canonical name of the source codeset. Aliases have already been
+resolved and the name is converted to uppercase.
+
+=item B<to>
+
+The canonical name of the destination codeset. Aliases have already been
+resolved and the name is converted to uppercase.
+
+=back
+
+=item B<_getError>
+
+Should return the last error (as a string) or false if there was no error.
+
+This method is implemented in the base class already.
+
+=item B<_recode STRINGREF>
+
+Should convert the argument C<STRINGREF> in-place. In case of failure,
+return false, and make provisions that the method C<_getError()> returns
+an informative error message.
+
+=back
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::Recode::_Aliases(3pm), Locale::Recode::_Conversions(3pm),
+Locale::Recode(3pm), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ASMO_449.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ASMO_449.pm
new file mode 100644
index 0000000..c2f432f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ASMO_449.pm
@@ -0,0 +1,876 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ASMO_449.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Conversion routines for ASMO_449.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ASMO_449;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x060c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x061b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x061f,
+ 0x0040,
+ 0x0621,
+ 0x0622,
+ 0x0623,
+ 0x0624,
+ 0x0625,
+ 0x0626,
+ 0x0627,
+ 0x0628,
+ 0x0629,
+ 0x062a,
+ 0x062b,
+ 0x062c,
+ 0x062d,
+ 0x062e,
+ 0x062f,
+ 0x0630,
+ 0x0631,
+ 0x0632,
+ 0x0633,
+ 0x0634,
+ 0x0635,
+ 0x0636,
+ 0x0637,
+ 0x0638,
+ 0x0639,
+ 0x063a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0640,
+ 0x0641,
+ 0x0642,
+ 0x0643,
+ 0x0644,
+ 0x0645,
+ 0x0646,
+ 0x0647,
+ 0x0648,
+ 0x0649,
+ 0x064a,
+ 0x064b,
+ 0x064c,
+ 0x064d,
+ 0x064e,
+ 0x064f,
+ 0x0650,
+ 0x0651,
+ 0x0652,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x203e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\xd8\x8c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\xd8\x9b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\xd8\x9f",
+ "\x40",
+ "\xd8\xa1",
+ "\xd8\xa2",
+ "\xd8\xa3",
+ "\xd8\xa4",
+ "\xd8\xa5",
+ "\xd8\xa6",
+ "\xd8\xa7",
+ "\xd8\xa8",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xd8\xab",
+ "\xd8\xac",
+ "\xd8\xad",
+ "\xd8\xae",
+ "\xd8\xaf",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xd8\xb2",
+ "\xd8\xb3",
+ "\xd8\xb4",
+ "\xd8\xb5",
+ "\xd8\xb6",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xd8\xba",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\xd9\x80",
+ "\xd9\x81",
+ "\xd9\x82",
+ "\xd9\x83",
+ "\xd9\x84",
+ "\xd9\x85",
+ "\xd9\x86",
+ "\xd9\x87",
+ "\xd9\x88",
+ "\xd9\x89",
+ "\xd9\x8a",
+ "\xd9\x8b",
+ "\xd9\x8c",
+ "\xd9\x8d",
+ "\xd9\x8e",
+ "\xd9\x8f",
+ "\xd9\x90",
+ "\xd9\x91",
+ "\xd9\x92",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\xe2\x80\xbe",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x00000040 => "\x40",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\x24",
+ 0x0000060c => "\x2c",
+ 0x0000061b => "\x3b",
+ 0x0000061f => "\x3f",
+ 0x00000621 => "\x41",
+ 0x00000622 => "\x42",
+ 0x00000623 => "\x43",
+ 0x00000624 => "\x44",
+ 0x00000625 => "\x45",
+ 0x00000626 => "\x46",
+ 0x00000627 => "\x47",
+ 0x00000628 => "\x48",
+ 0x00000629 => "\x49",
+ 0x0000062a => "\x4a",
+ 0x0000062b => "\x4b",
+ 0x0000062c => "\x4c",
+ 0x0000062d => "\x4d",
+ 0x0000062e => "\x4e",
+ 0x0000062f => "\x4f",
+ 0x00000630 => "\x50",
+ 0x00000631 => "\x51",
+ 0x00000632 => "\x52",
+ 0x00000633 => "\x53",
+ 0x00000634 => "\x54",
+ 0x00000635 => "\x55",
+ 0x00000636 => "\x56",
+ 0x00000637 => "\x57",
+ 0x00000638 => "\x58",
+ 0x00000639 => "\x59",
+ 0x0000063a => "\x5a",
+ 0x00000640 => "\x60",
+ 0x00000641 => "\x61",
+ 0x00000642 => "\x62",
+ 0x00000643 => "\x63",
+ 0x00000644 => "\x64",
+ 0x00000645 => "\x65",
+ 0x00000646 => "\x66",
+ 0x00000647 => "\x67",
+ 0x00000648 => "\x68",
+ 0x00000649 => "\x69",
+ 0x0000064a => "\x6a",
+ 0x0000064b => "\x6b",
+ 0x0000064c => "\x6c",
+ 0x0000064d => "\x6d",
+ 0x0000064e => "\x6e",
+ 0x0000064f => "\x6f",
+ 0x00000650 => "\x70",
+ 0x00000651 => "\x71",
+ 0x00000652 => "\x72",
+ 0x0000203e => "\x7e",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ASMO_449 - Conversion routines for ASMO_449
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ASMO_449.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO_9036
+ alias ARABIC7
+ alias ISO-IR-89
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000060C | ARABIC COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000061B | ARABIC SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000061F | ARABIC QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000621 | ARABIC LETTER HAMZA
+ 42 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ 43 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ 44 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
+ 45 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW
+ 46 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
+ 47 | 00000627 | ARABIC LETTER ALEF
+ 48 | 00000628 | ARABIC LETTER BEH
+ 49 | 00000629 | ARABIC LETTER TEH MARBUTA
+ 4A | 0000062A | ARABIC LETTER TEH
+ 4B | 0000062B | ARABIC LETTER THEH
+ 4C | 0000062C | ARABIC LETTER JEEM
+ 4D | 0000062D | ARABIC LETTER HAH
+ 4E | 0000062E | ARABIC LETTER KHAH
+ 4F | 0000062F | ARABIC LETTER DAL
+ 50 | 00000630 | ARABIC LETTER THAL
+ 51 | 00000631 | ARABIC LETTER REH
+ 52 | 00000632 | ARABIC LETTER ZAIN
+ 53 | 00000633 | ARABIC LETTER SEEN
+ 54 | 00000634 | ARABIC LETTER SHEEN
+ 55 | 00000635 | ARABIC LETTER SAD
+ 56 | 00000636 | ARABIC LETTER DAD
+ 57 | 00000637 | ARABIC LETTER TAH
+ 58 | 00000638 | ARABIC LETTER ZAH
+ 59 | 00000639 | ARABIC LETTER AIN
+ 5A | 0000063A | ARABIC LETTER GHAIN
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000640 | ARABIC TATWEEL
+ 61 | 00000641 | ARABIC LETTER FEH
+ 62 | 00000642 | ARABIC LETTER QAF
+ 63 | 00000643 | ARABIC LETTER KAF
+ 64 | 00000644 | ARABIC LETTER LAM
+ 65 | 00000645 | ARABIC LETTER MEEM
+ 66 | 00000646 | ARABIC LETTER NOON
+ 67 | 00000647 | ARABIC LETTER HEH
+ 68 | 00000648 | ARABIC LETTER WAW
+ 69 | 00000649 | ARABIC LETTER ALEF MAKSURA
+ 6A | 0000064A | ARABIC LETTER YEH
+ 6B | 0000064B | ARABIC FATHATAN
+ 6C | 0000064C | ARABIC DAMMATAN
+ 6D | 0000064D | ARABIC KASRATAN
+ 6E | 0000064E | ARABIC FATHA
+ 6F | 0000064F | ARABIC DAMMA
+ 70 | 00000650 | ARABIC KASRA
+ 71 | 00000651 | ARABIC SHADDA
+ 72 | 00000652 | ARABIC SUKUN
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000203E | OVERLINE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST.pm
new file mode 100644
index 0000000..c1f14e6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ATARI_ST.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Conversion routines for ATARI-ST.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ATARI_ST;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00ec,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x00ff,
+ 0x00d6,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00df,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x00e3,
+ 0x00f5,
+ 0x00d8,
+ 0x00f8,
+ 0x0153,
+ 0x0152,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x00a8,
+ 0x00b4,
+ 0x2020,
+ 0x00b6,
+ 0x00a9,
+ 0x00ae,
+ 0x2122,
+ 0x0133,
+ 0x0132,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x05d9,
+ 0x05db,
+ 0x05dc,
+ 0x05de,
+ 0x05e0,
+ 0x05e1,
+ 0x05e2,
+ 0x05e4,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x05ea,
+ 0x05df,
+ 0x05da,
+ 0x05dd,
+ 0x05e3,
+ 0x05e5,
+ 0x00a7,
+ 0x2038,
+ 0x221e,
+ 0x03b1,
+ 0x03b2,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x03b8,
+ 0x03a9,
+ 0x03b4,
+ 0x222e,
+ 0x03c6,
+ 0x2208,
+ 0x220f,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2022,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x00b3,
+ 0x00af,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\xac",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc3\x9f",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xa3",
+ "\xc3\xb5",
+ "\xc3\x98",
+ "\xc3\xb8",
+ "\xc5\x93",
+ "\xc5\x92",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xe2\x80\xa0",
+ "\xc2\xb6",
+ "\xc2\xa9",
+ "\xc2\xae",
+ "\xe2\x84\xa2",
+ "\xc4\xb3",
+ "\xc4\xb2",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xd7\x99",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9e",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\xd7\xa2",
+ "\xd7\xa4",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xd7\xaa",
+ "\xd7\x9f",
+ "\xd7\x9a",
+ "\xd7\x9d",
+ "\xd7\xa3",
+ "\xd7\xa5",
+ "\xc2\xa7",
+ "\xe2\x80\xb8",
+ "\xe2\x88\x9e",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\xb8",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\xae",
+ "\xcf\x86",
+ "\xe2\x88\x88",
+ "\xe2\x88\x8f",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x80\xa2",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xaf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a5 => "\x9d",
+ 0x000000a7 => "\xdd",
+ 0x000000a8 => "\xb9",
+ 0x000000a9 => "\xbd",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000ae => "\xbe",
+ 0x000000af => "\xff",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b3 => "\xfe",
+ 0x000000b4 => "\xba",
+ 0x000000b5 => "\xe6",
+ 0x000000b6 => "\xbc",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c0 => "\xb6",
+ 0x000000c3 => "\xb7",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000d1 => "\xa5",
+ 0x000000d5 => "\xb8",
+ 0x000000d6 => "\x99",
+ 0x000000d8 => "\xb2",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\x9e",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e3 => "\xb0",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f5 => "\xb1",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\xb3",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000ff => "\x98",
+ 0x00000132 => "\xc1",
+ 0x00000133 => "\xc0",
+ 0x00000152 => "\xb5",
+ 0x00000153 => "\xb4",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b2 => "\xe1",
+ 0x000003b4 => "\xeb",
+ 0x000003b8 => "\xe9",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x000005d0 => "\xc2",
+ 0x000005d1 => "\xc3",
+ 0x000005d2 => "\xc4",
+ 0x000005d3 => "\xc5",
+ 0x000005d4 => "\xc6",
+ 0x000005d5 => "\xc7",
+ 0x000005d6 => "\xc8",
+ 0x000005d7 => "\xc9",
+ 0x000005d8 => "\xca",
+ 0x000005d9 => "\xcb",
+ 0x000005da => "\xd9",
+ 0x000005db => "\xcc",
+ 0x000005dc => "\xcd",
+ 0x000005dd => "\xda",
+ 0x000005de => "\xce",
+ 0x000005df => "\xd8",
+ 0x000005e0 => "\xcf",
+ 0x000005e1 => "\xd0",
+ 0x000005e2 => "\xd1",
+ 0x000005e3 => "\xdb",
+ 0x000005e4 => "\xd2",
+ 0x000005e5 => "\xdc",
+ 0x000005e6 => "\xd3",
+ 0x000005e7 => "\xd4",
+ 0x000005e8 => "\xd5",
+ 0x000005e9 => "\xd6",
+ 0x000005ea => "\xd7",
+ 0x00002020 => "\xbb",
+ 0x00002022 => "\xf9",
+ 0x00002038 => "\xde",
+ 0x0000207f => "\xfc",
+ 0x00002122 => "\xbf",
+ 0x00002208 => "\xee",
+ 0x0000220f => "\xef",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xdf",
+ 0x0000222e => "\xec",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ATARI_ST - Conversion routines for ATARI-ST
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ATARI-ST.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.1
+ source: Guido Flohr E<lt>guido@imperia.netE<gt>
+ alias ATARIST
+ alias X-ATARIST
+ alias X-ATARI-ST
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000A5 | YEN SIGN
+ 9E | 000000DF | LATIN SMALL LETTER SHARP S
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ B1 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ B2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B3 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ B4 | 00000153 | LATIN SMALL LIGATURE OE
+ B5 | 00000152 | LATIN CAPITAL LIGATURE OE
+ B6 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ B7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ B8 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ B9 | 000000A8 | DIAERESIS
+ BA | 000000B4 | ACUTE ACCENT
+ BB | 00002020 | DAGGER
+ BC | 000000B6 | PILCROW SIGN
+ BD | 000000A9 | COPYRIGHT SIGN
+ BE | 000000AE | REGISTERED SIGN
+ BF | 00002122 | TRADE MARK SIGN
+ C0 | 00000133 | LATIN SMALL LIGATURE IJ
+ C1 | 00000132 | LATIN CAPITAL LIGATURE IJ
+ C2 | 000005D0 | HEBREW LETTER ALEF
+ C3 | 000005D1 | HEBREW LETTER BET
+ C4 | 000005D2 | HEBREW LETTER GIMEL
+ C5 | 000005D3 | HEBREW LETTER DALET
+ C6 | 000005D4 | HEBREW LETTER HE
+ C7 | 000005D5 | HEBREW LETTER VAV
+ C8 | 000005D6 | HEBREW LETTER ZAYIN
+ C9 | 000005D7 | HEBREW LETTER HET
+ CA | 000005D8 | HEBREW LETTER TET
+ CB | 000005D9 | HEBREW LETTER YOD
+ CC | 000005DB | HEBREW LETTER KAF
+ CD | 000005DC | HEBREW LETTER LAMED
+ CE | 000005DE | HEBREW LETTER MEM
+ CF | 000005E0 | HEBREW LETTER NUN
+ D0 | 000005E1 | HEBREW LETTER SAMEKH
+ D1 | 000005E2 | HEBREW LETTER AYIN
+ D2 | 000005E4 | HEBREW LETTER PE
+ D3 | 000005E6 | HEBREW LETTER TSADI
+ D4 | 000005E7 | HEBREW LETTER QOF
+ D5 | 000005E8 | HEBREW LETTER RESH
+ D6 | 000005E9 | HEBREW LETTER SHIN
+ D7 | 000005EA | HEBREW LETTER TAV
+ D8 | 000005DF | HEBREW LETTER FINAL NUN
+ D9 | 000005DA | HEBREW LETTER FINAL KAF
+ DA | 000005DD | HEBREW LETTER FINAL MEM
+ DB | 000005E3 | HEBREW LETTER FINAL PE
+ DC | 000005E5 | HEBREW LETTER FINAL TSADI
+ DD | 000000A7 | SECTION SIGN
+ DE | 00002038 | CARET
+ DF | 0000221E | INFINITY
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000003B2 | GREEK SMALL LETTER BETA
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 000003B8 | GREEK SMALL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000222E | CONTOUR INTEGRAL
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 00002208 | ELEMENT OF
+ EF | 0000220F | N-ARY PRODUCT
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002022 | BULLET
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000000B3 | SUPERSCRIPT THREE
+ FF | 000000AF | MACRON
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST_EURO.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST_EURO.pm
new file mode 100644
index 0000000..24c15c2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ATARI_ST_EURO.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ATARI_ST_EURO.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for ATARI-ST-EURO.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ATARI_ST_EURO;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00ec,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x00ff,
+ 0x00d6,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00df,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x00e3,
+ 0x00f5,
+ 0x00d8,
+ 0x00f8,
+ 0x0153,
+ 0x0152,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x00a8,
+ 0x00b4,
+ 0x2020,
+ 0x00b6,
+ 0x00a9,
+ 0x00ae,
+ 0x2122,
+ 0x0133,
+ 0x0132,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x05d9,
+ 0x05db,
+ 0x05dc,
+ 0x05de,
+ 0x05e0,
+ 0x05e1,
+ 0x05e2,
+ 0x05e4,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x05ea,
+ 0x05df,
+ 0x05da,
+ 0x05dd,
+ 0x05e3,
+ 0x05e5,
+ 0x00a7,
+ 0x20ac,
+ 0x221e,
+ 0x03b1,
+ 0x03b2,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x03b8,
+ 0x03a9,
+ 0x03b4,
+ 0x222e,
+ 0x03c6,
+ 0x2208,
+ 0x220f,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2022,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x00b3,
+ 0x00af,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\xac",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc3\x9f",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xa3",
+ "\xc3\xb5",
+ "\xc3\x98",
+ "\xc3\xb8",
+ "\xc5\x93",
+ "\xc5\x92",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xe2\x80\xa0",
+ "\xc2\xb6",
+ "\xc2\xa9",
+ "\xc2\xae",
+ "\xe2\x84\xa2",
+ "\xc4\xb3",
+ "\xc4\xb2",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xd7\x99",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9e",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\xd7\xa2",
+ "\xd7\xa4",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xd7\xaa",
+ "\xd7\x9f",
+ "\xd7\x9a",
+ "\xd7\x9d",
+ "\xd7\xa3",
+ "\xd7\xa5",
+ "\xc2\xa7",
+ "\xe2\x82\xac",
+ "\xe2\x88\x9e",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\xb8",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\xae",
+ "\xcf\x86",
+ "\xe2\x88\x88",
+ "\xe2\x88\x8f",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x80\xa2",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xaf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a5 => "\x9d",
+ 0x000000a7 => "\xdd",
+ 0x000000a8 => "\xb9",
+ 0x000000a9 => "\xbd",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000ae => "\xbe",
+ 0x000000af => "\xff",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b3 => "\xfe",
+ 0x000000b4 => "\xba",
+ 0x000000b5 => "\xe6",
+ 0x000000b6 => "\xbc",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c0 => "\xb6",
+ 0x000000c3 => "\xb7",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000d1 => "\xa5",
+ 0x000000d5 => "\xb8",
+ 0x000000d6 => "\x99",
+ 0x000000d8 => "\xb2",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\x9e",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e3 => "\xb0",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f5 => "\xb1",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\xb3",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000ff => "\x98",
+ 0x00000132 => "\xc1",
+ 0x00000133 => "\xc0",
+ 0x00000152 => "\xb5",
+ 0x00000153 => "\xb4",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b2 => "\xe1",
+ 0x000003b4 => "\xeb",
+ 0x000003b8 => "\xe9",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x000005d0 => "\xc2",
+ 0x000005d1 => "\xc3",
+ 0x000005d2 => "\xc4",
+ 0x000005d3 => "\xc5",
+ 0x000005d4 => "\xc6",
+ 0x000005d5 => "\xc7",
+ 0x000005d6 => "\xc8",
+ 0x000005d7 => "\xc9",
+ 0x000005d8 => "\xca",
+ 0x000005d9 => "\xcb",
+ 0x000005da => "\xd9",
+ 0x000005db => "\xcc",
+ 0x000005dc => "\xcd",
+ 0x000005dd => "\xda",
+ 0x000005de => "\xce",
+ 0x000005df => "\xd8",
+ 0x000005e0 => "\xcf",
+ 0x000005e1 => "\xd0",
+ 0x000005e2 => "\xd1",
+ 0x000005e3 => "\xdb",
+ 0x000005e4 => "\xd2",
+ 0x000005e5 => "\xdc",
+ 0x000005e6 => "\xd3",
+ 0x000005e7 => "\xd4",
+ 0x000005e8 => "\xd5",
+ 0x000005e9 => "\xd6",
+ 0x000005ea => "\xd7",
+ 0x00002020 => "\xbb",
+ 0x00002022 => "\xf9",
+ 0x0000207f => "\xfc",
+ 0x000020ac => "\xde",
+ 0x00002122 => "\xbf",
+ 0x00002208 => "\xee",
+ 0x0000220f => "\xef",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xdf",
+ 0x0000222e => "\xec",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ATARI_ST_EURO - Conversion routines for ATARI-ST-EURO
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ATARI-ST-EURO.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.1
+ source: Guido Flohr E<lt>guido@imperia.netE<gt>
+ alias ATARIST-EURO
+ alias X-ATARIST-EURO
+ alias X-ATARI-ST-EURO
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000A5 | YEN SIGN
+ 9E | 000000DF | LATIN SMALL LETTER SHARP S
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ B1 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ B2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B3 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ B4 | 00000153 | LATIN SMALL LIGATURE OE
+ B5 | 00000152 | LATIN CAPITAL LIGATURE OE
+ B6 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ B7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ B8 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ B9 | 000000A8 | DIAERESIS
+ BA | 000000B4 | ACUTE ACCENT
+ BB | 00002020 | DAGGER
+ BC | 000000B6 | PILCROW SIGN
+ BD | 000000A9 | COPYRIGHT SIGN
+ BE | 000000AE | REGISTERED SIGN
+ BF | 00002122 | TRADE MARK SIGN
+ C0 | 00000133 | LATIN SMALL LIGATURE IJ
+ C1 | 00000132 | LATIN CAPITAL LIGATURE IJ
+ C2 | 000005D0 | HEBREW LETTER ALEF
+ C3 | 000005D1 | HEBREW LETTER BET
+ C4 | 000005D2 | HEBREW LETTER GIMEL
+ C5 | 000005D3 | HEBREW LETTER DALET
+ C6 | 000005D4 | HEBREW LETTER HE
+ C7 | 000005D5 | HEBREW LETTER VAV
+ C8 | 000005D6 | HEBREW LETTER ZAYIN
+ C9 | 000005D7 | HEBREW LETTER HET
+ CA | 000005D8 | HEBREW LETTER TET
+ CB | 000005D9 | HEBREW LETTER YOD
+ CC | 000005DB | HEBREW LETTER KAF
+ CD | 000005DC | HEBREW LETTER LAMED
+ CE | 000005DE | HEBREW LETTER MEM
+ CF | 000005E0 | HEBREW LETTER NUN
+ D0 | 000005E1 | HEBREW LETTER SAMEKH
+ D1 | 000005E2 | HEBREW LETTER AYIN
+ D2 | 000005E4 | HEBREW LETTER PE
+ D3 | 000005E6 | HEBREW LETTER TSADI
+ D4 | 000005E7 | HEBREW LETTER QOF
+ D5 | 000005E8 | HEBREW LETTER RESH
+ D6 | 000005E9 | HEBREW LETTER SHIN
+ D7 | 000005EA | HEBREW LETTER TAV
+ D8 | 000005DF | HEBREW LETTER FINAL NUN
+ D9 | 000005DA | HEBREW LETTER FINAL KAF
+ DA | 000005DD | HEBREW LETTER FINAL MEM
+ DB | 000005E3 | HEBREW LETTER FINAL PE
+ DC | 000005E5 | HEBREW LETTER FINAL TSADI
+ DD | 000000A7 | SECTION SIGN
+ DE | 000020AC | EURO SIGN
+ DF | 0000221E | INFINITY
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000003B2 | GREEK SMALL LETTER BETA
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 000003B8 | GREEK SMALL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000222E | CONTOUR INTEGRAL
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 00002208 | ELEMENT OF
+ EF | 0000220F | N-ARY PRODUCT
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002022 | BULLET
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000000B3 | SUPERSCRIPT THREE
+ FF | 000000AF | MACRON
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP10007.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP10007.pm
new file mode 100644
index 0000000..204e41f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP10007.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP10007.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP10007.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP10007;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x0406,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x0402,
+ 0x0452,
+ 0x2260,
+ 0x0403,
+ 0x0453,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x0456,
+ 0x00b5,
+ 0x0491,
+ 0x0408,
+ 0x0404,
+ 0x0454,
+ 0x0407,
+ 0x0457,
+ 0x0409,
+ 0x0459,
+ 0x040a,
+ 0x045a,
+ 0x0458,
+ 0x0405,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x040b,
+ 0x045b,
+ 0x040c,
+ 0x045c,
+ 0x0455,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x201e,
+ 0x040e,
+ 0x045e,
+ 0x040f,
+ 0x045f,
+ 0x2116,
+ 0x0401,
+ 0x0451,
+ 0x044f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x00a4,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xd0\x86",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xd0\x82",
+ "\xd1\x92",
+ "\xe2\x89\xa0",
+ "\xd0\x83",
+ "\xd1\x93",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xd1\x96",
+ "\xc2\xb5",
+ "\xd2\x91",
+ "\xd0\x88",
+ "\xd0\x84",
+ "\xd1\x94",
+ "\xd0\x87",
+ "\xd1\x97",
+ "\xd0\x89",
+ "\xd1\x99",
+ "\xd0\x8a",
+ "\xd1\x9a",
+ "\xd1\x98",
+ "\xd0\x85",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xd0\x8b",
+ "\xd1\x9b",
+ "\xd0\x8c",
+ "\xd1\x9c",
+ "\xd1\x95",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x80\x9e",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xd0\x8f",
+ "\xd1\x9f",
+ "\xe2\x84\x96",
+ "\xd0\x81",
+ "\xd1\x91",
+ "\xd1\x8f",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xc2\xa4",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xff",
+ 0x000000a7 => "\xa4",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000bb => "\xc8",
+ 0x000000f7 => "\xd6",
+ 0x00000192 => "\xc4",
+ 0x00000401 => "\xdd",
+ 0x00000402 => "\xab",
+ 0x00000403 => "\xae",
+ 0x00000404 => "\xb8",
+ 0x00000405 => "\xc1",
+ 0x00000406 => "\xa7",
+ 0x00000407 => "\xba",
+ 0x00000408 => "\xb7",
+ 0x00000409 => "\xbc",
+ 0x0000040a => "\xbe",
+ 0x0000040b => "\xcb",
+ 0x0000040c => "\xcd",
+ 0x0000040e => "\xd8",
+ 0x0000040f => "\xda",
+ 0x00000410 => "\x80",
+ 0x00000411 => "\x81",
+ 0x00000412 => "\x82",
+ 0x00000413 => "\x83",
+ 0x00000414 => "\x84",
+ 0x00000415 => "\x85",
+ 0x00000416 => "\x86",
+ 0x00000417 => "\x87",
+ 0x00000418 => "\x88",
+ 0x00000419 => "\x89",
+ 0x0000041a => "\x8a",
+ 0x0000041b => "\x8b",
+ 0x0000041c => "\x8c",
+ 0x0000041d => "\x8d",
+ 0x0000041e => "\x8e",
+ 0x0000041f => "\x8f",
+ 0x00000420 => "\x90",
+ 0x00000421 => "\x91",
+ 0x00000422 => "\x92",
+ 0x00000423 => "\x93",
+ 0x00000424 => "\x94",
+ 0x00000425 => "\x95",
+ 0x00000426 => "\x96",
+ 0x00000427 => "\x97",
+ 0x00000428 => "\x98",
+ 0x00000429 => "\x99",
+ 0x0000042a => "\x9a",
+ 0x0000042b => "\x9b",
+ 0x0000042c => "\x9c",
+ 0x0000042d => "\x9d",
+ 0x0000042e => "\x9e",
+ 0x0000042f => "\x9f",
+ 0x00000430 => "\xe0",
+ 0x00000431 => "\xe1",
+ 0x00000432 => "\xe2",
+ 0x00000433 => "\xe3",
+ 0x00000434 => "\xe4",
+ 0x00000435 => "\xe5",
+ 0x00000436 => "\xe6",
+ 0x00000437 => "\xe7",
+ 0x00000438 => "\xe8",
+ 0x00000439 => "\xe9",
+ 0x0000043a => "\xea",
+ 0x0000043b => "\xeb",
+ 0x0000043c => "\xec",
+ 0x0000043d => "\xed",
+ 0x0000043e => "\xee",
+ 0x0000043f => "\xef",
+ 0x00000440 => "\xf0",
+ 0x00000441 => "\xf1",
+ 0x00000442 => "\xf2",
+ 0x00000443 => "\xf3",
+ 0x00000444 => "\xf4",
+ 0x00000445 => "\xf5",
+ 0x00000446 => "\xf6",
+ 0x00000447 => "\xf7",
+ 0x00000448 => "\xf8",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\xfa",
+ 0x0000044b => "\xfb",
+ 0x0000044c => "\xfc",
+ 0x0000044d => "\xfd",
+ 0x0000044e => "\xfe",
+ 0x0000044f => "\xdf",
+ 0x00000451 => "\xde",
+ 0x00000452 => "\xac",
+ 0x00000453 => "\xaf",
+ 0x00000454 => "\xb9",
+ 0x00000455 => "\xcf",
+ 0x00000456 => "\xb4",
+ 0x00000457 => "\xbb",
+ 0x00000458 => "\xc0",
+ 0x00000459 => "\xbd",
+ 0x0000045a => "\xbf",
+ 0x0000045b => "\xcc",
+ 0x0000045c => "\xce",
+ 0x0000045e => "\xd9",
+ 0x0000045f => "\xdb",
+ 0x00000491 => "\xb6",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xd7",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002116 => "\xdc",
+ 0x00002122 => "\xaa",
+ 0x00002206 => "\xc6",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP10007 - Conversion routines for CP10007
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP10007.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ This is the old MacCyrillic which M$ keeps around as CP10007.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 81 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 82 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 84 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 85 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 88 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 8A | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 8B | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 8C | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 8D | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 8E | 0000041E | CYRILLIC CAPITAL LETTER O
+ 8F | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 90 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 91 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 92 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 93 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 94 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 95 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 9D | 0000042D | CYRILLIC CAPITAL LETTER E
+ 9E | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9F | 0000042F | CYRILLIC CAPITAL LETTER YA
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 00000402 | CYRILLIC CAPITAL LETTER DJE
+ AC | 00000452 | CYRILLIC SMALL LETTER DJE
+ AD | 00002260 | NOT EQUAL TO
+ AE | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ AF | 00000453 | CYRILLIC SMALL LETTER GJE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ B7 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ BA | 00000407 | CYRILLIC CAPITAL LETTER YI
+ BB | 00000457 | CYRILLIC SMALL LETTER YI
+ BC | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ BD | 00000459 | CYRILLIC SMALL LETTER LJE
+ BE | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ BF | 0000045A | CYRILLIC SMALL LETTER NJE
+ C0 | 00000458 | CYRILLIC SMALL LETTER JE
+ C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ CC | 0000045B | CYRILLIC SMALL LETTER TSHE
+ CD | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ CE | 0000045C | CYRILLIC SMALL LETTER KJE
+ CF | 00000455 | CYRILLIC SMALL LETTER DZE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ DB | 0000045F | CYRILLIC SMALL LETTER DZHE
+ DC | 00002116 | NUMERO SIGN
+ DD | 00000401 | CYRILLIC CAPITAL LETTER IO
+ DE | 00000451 | CYRILLIC SMALL LETTER IO
+ DF | 0000044F | CYRILLIC SMALL LETTER YA
+ E0 | 00000430 | CYRILLIC SMALL LETTER A
+ E1 | 00000431 | CYRILLIC SMALL LETTER BE
+ E2 | 00000432 | CYRILLIC SMALL LETTER VE
+ E3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ E4 | 00000434 | CYRILLIC SMALL LETTER DE
+ E5 | 00000435 | CYRILLIC SMALL LETTER IE
+ E6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ E7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ E8 | 00000438 | CYRILLIC SMALL LETTER I
+ E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ EA | 0000043A | CYRILLIC SMALL LETTER KA
+ EB | 0000043B | CYRILLIC SMALL LETTER EL
+ EC | 0000043C | CYRILLIC SMALL LETTER EM
+ ED | 0000043D | CYRILLIC SMALL LETTER EN
+ EE | 0000043E | CYRILLIC SMALL LETTER O
+ EF | 0000043F | CYRILLIC SMALL LETTER PE
+ F0 | 00000440 | CYRILLIC SMALL LETTER ER
+ F1 | 00000441 | CYRILLIC SMALL LETTER ES
+ F2 | 00000442 | CYRILLIC SMALL LETTER TE
+ F3 | 00000443 | CYRILLIC SMALL LETTER U
+ F4 | 00000444 | CYRILLIC SMALL LETTER EF
+ F5 | 00000445 | CYRILLIC SMALL LETTER HA
+ F6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ F7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ F8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ FB | 0000044B | CYRILLIC SMALL LETTER YERU
+ FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ FD | 0000044D | CYRILLIC SMALL LETTER E
+ FE | 0000044E | CYRILLIC SMALL LETTER YU
+ FF | 000000A4 | CURRENCY SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1250.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1250.pm
new file mode 100644
index 0000000..8fa2b53
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1250.pm
@@ -0,0 +1,1137 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1250.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP1250.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1250;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x201a,
+ 0xfffd,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0xfffd,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x015a,
+ 0x0164,
+ 0x017d,
+ 0x0179,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x015b,
+ 0x0165,
+ 0x017e,
+ 0x017a,
+ 0x00a0,
+ 0x02c7,
+ 0x02d8,
+ 0x0141,
+ 0x00a4,
+ 0x0104,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x015e,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x017b,
+ 0x00b0,
+ 0x00b1,
+ 0x02db,
+ 0x0142,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x0105,
+ 0x015f,
+ 0x00bb,
+ 0x013d,
+ 0x02dd,
+ 0x013e,
+ 0x017c,
+ 0x0154,
+ 0x00c1,
+ 0x00c2,
+ 0x0102,
+ 0x00c4,
+ 0x0139,
+ 0x0106,
+ 0x00c7,
+ 0x010c,
+ 0x00c9,
+ 0x0118,
+ 0x00cb,
+ 0x011a,
+ 0x00cd,
+ 0x00ce,
+ 0x010e,
+ 0x0110,
+ 0x0143,
+ 0x0147,
+ 0x00d3,
+ 0x00d4,
+ 0x0150,
+ 0x00d6,
+ 0x00d7,
+ 0x0158,
+ 0x016e,
+ 0x00da,
+ 0x0170,
+ 0x00dc,
+ 0x00dd,
+ 0x0162,
+ 0x00df,
+ 0x0155,
+ 0x00e1,
+ 0x00e2,
+ 0x0103,
+ 0x00e4,
+ 0x013a,
+ 0x0107,
+ 0x00e7,
+ 0x010d,
+ 0x00e9,
+ 0x0119,
+ 0x00eb,
+ 0x011b,
+ 0x00ed,
+ 0x00ee,
+ 0x010f,
+ 0x0111,
+ 0x0144,
+ 0x0148,
+ 0x00f3,
+ 0x00f4,
+ 0x0151,
+ 0x00f6,
+ 0x00f7,
+ 0x0159,
+ 0x016f,
+ 0x00fa,
+ 0x0171,
+ 0x00fc,
+ 0x00fd,
+ 0x0163,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x9a",
+ "\xc5\xa4",
+ "\xc5\xbd",
+ "\xc5\xb9",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x9b",
+ "\xc5\xa5",
+ "\xc5\xbe",
+ "\xc5\xba",
+ "\xc2\xa0",
+ "\xcb\x87",
+ "\xcb\x98",
+ "\xc5\x81",
+ "\xc2\xa4",
+ "\xc4\x84",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc5\x9e",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc5\xbb",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xcb\x9b",
+ "\xc5\x82",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc4\x85",
+ "\xc5\x9f",
+ "\xc2\xbb",
+ "\xc4\xbd",
+ "\xcb\x9d",
+ "\xc4\xbe",
+ "\xc5\xbc",
+ "\xc5\x94",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc4\x82",
+ "\xc3\x84",
+ "\xc4\xb9",
+ "\xc4\x86",
+ "\xc3\x87",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc4\x98",
+ "\xc3\x8b",
+ "\xc4\x9a",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc4\x8e",
+ "\xc4\x90",
+ "\xc5\x83",
+ "\xc5\x87",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc5\x90",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc5\x98",
+ "\xc5\xae",
+ "\xc3\x9a",
+ "\xc5\xb0",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc5\xa2",
+ "\xc3\x9f",
+ "\xc5\x95",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc4\x83",
+ "\xc3\xa4",
+ "\xc4\xba",
+ "\xc4\x87",
+ "\xc3\xa7",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc4\x99",
+ "\xc3\xab",
+ "\xc4\x9b",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc4\x8f",
+ "\xc4\x91",
+ "\xc5\x84",
+ "\xc5\x88",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc5\x91",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc5\x99",
+ "\xc5\xaf",
+ "\xc3\xba",
+ "\xc5\xb1",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc5\xa3",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000bb => "\xbb",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c4 => "\xc4",
+ 0x000000c7 => "\xc7",
+ 0x000000c9 => "\xc9",
+ 0x000000cb => "\xcb",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000da => "\xda",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000df => "\xdf",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e4 => "\xe4",
+ 0x000000e7 => "\xe7",
+ 0x000000e9 => "\xe9",
+ 0x000000eb => "\xeb",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000fa => "\xfa",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x00000102 => "\xc3",
+ 0x00000103 => "\xe3",
+ 0x00000104 => "\xa5",
+ 0x00000105 => "\xb9",
+ 0x00000106 => "\xc6",
+ 0x00000107 => "\xe6",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x0000010e => "\xcf",
+ 0x0000010f => "\xef",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000118 => "\xca",
+ 0x00000119 => "\xea",
+ 0x0000011a => "\xcc",
+ 0x0000011b => "\xec",
+ 0x00000139 => "\xc5",
+ 0x0000013a => "\xe5",
+ 0x0000013d => "\xbc",
+ 0x0000013e => "\xbe",
+ 0x00000141 => "\xa3",
+ 0x00000142 => "\xb3",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000147 => "\xd2",
+ 0x00000148 => "\xf2",
+ 0x00000150 => "\xd5",
+ 0x00000151 => "\xf5",
+ 0x00000154 => "\xc0",
+ 0x00000155 => "\xe0",
+ 0x00000158 => "\xd8",
+ 0x00000159 => "\xf8",
+ 0x0000015a => "\x8c",
+ 0x0000015b => "\x9c",
+ 0x0000015e => "\xaa",
+ 0x0000015f => "\xba",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000162 => "\xde",
+ 0x00000163 => "\xfe",
+ 0x00000164 => "\x8d",
+ 0x00000165 => "\x9d",
+ 0x0000016e => "\xd9",
+ 0x0000016f => "\xf9",
+ 0x00000170 => "\xdb",
+ 0x00000171 => "\xfb",
+ 0x00000179 => "\x8f",
+ 0x0000017a => "\x9f",
+ 0x0000017b => "\xaf",
+ 0x0000017c => "\xbf",
+ 0x0000017d => "\x8e",
+ 0x0000017e => "\x9e",
+ 0x000002c7 => "\xa1",
+ 0x000002d8 => "\xa2",
+ 0x000002d9 => "\xff",
+ 0x000002db => "\xb2",
+ 0x000002dd => "\xbd",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1250 - Conversion routines for CP1250
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1250.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-EE
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ 8D | 00000164 | LATIN CAPITAL LETTER T WITH CARON
+ 8E | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ 8F | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ 9D | 00000165 | LATIN SMALL LETTER T WITH CARON
+ 9E | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ 9F | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000002C7 | CARON (Mandarin Chinese third tone)
+ A2 | 000002D8 | BREVE
+ A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000002DB | OGONEK
+ B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 0000013D | LATIN CAPITAL LETTER L WITH CARON
+ BD | 000002DD | DOUBLE ACUTE ACCENT
+ BE | 0000013E | LATIN SMALL LETTER L WITH CARON
+ BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
+ C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON
+ D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
+ E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 0000011B | LATIN SMALL LETTER E WITH CARON
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 0000010F | LATIN SMALL LETTER D WITH CARON
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 00000148 | LATIN SMALL LETTER N WITH CARON
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000159 | LATIN SMALL LETTER R WITH CARON
+ F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1251.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1251.pm
new file mode 100644
index 0000000..3b832cf
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1251.pm
@@ -0,0 +1,1145 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1251.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP1251.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1251;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0402,
+ 0x0403,
+ 0x201a,
+ 0x0453,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x20ac,
+ 0x2030,
+ 0x0409,
+ 0x2039,
+ 0x040a,
+ 0x040c,
+ 0x040b,
+ 0x040f,
+ 0x0452,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0x2122,
+ 0x0459,
+ 0x203a,
+ 0x045a,
+ 0x045c,
+ 0x045b,
+ 0x045f,
+ 0x00a0,
+ 0x040e,
+ 0x045e,
+ 0x0408,
+ 0x00a4,
+ 0x0490,
+ 0x00a6,
+ 0x00a7,
+ 0x0401,
+ 0x00a9,
+ 0x0404,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x0407,
+ 0x00b0,
+ 0x00b1,
+ 0x0406,
+ 0x0456,
+ 0x0491,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x0451,
+ 0x2116,
+ 0x0454,
+ 0x00bb,
+ 0x0458,
+ 0x0405,
+ 0x0455,
+ 0x0457,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x044f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x82",
+ "\xd0\x83",
+ "\xe2\x80\x9a",
+ "\xd1\x93",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xe2\x82\xac",
+ "\xe2\x80\xb0",
+ "\xd0\x89",
+ "\xe2\x80\xb9",
+ "\xd0\x8a",
+ "\xd0\x8c",
+ "\xd0\x8b",
+ "\xd0\x8f",
+ "\xd1\x92",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xe2\x84\xa2",
+ "\xd1\x99",
+ "\xe2\x80\xba",
+ "\xd1\x9a",
+ "\xd1\x9c",
+ "\xd1\x9b",
+ "\xd1\x9f",
+ "\xc2\xa0",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xd0\x88",
+ "\xc2\xa4",
+ "\xd2\x90",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xd0\x81",
+ "\xc2\xa9",
+ "\xd0\x84",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xd0\x87",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xd0\x86",
+ "\xd1\x96",
+ "\xd2\x91",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xd1\x91",
+ "\xe2\x84\x96",
+ "\xd1\x94",
+ "\xc2\xbb",
+ "\xd1\x98",
+ "\xd0\x85",
+ "\xd1\x95",
+ "\xd1\x97",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xd1\x8f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x00000401 => "\xa8",
+ 0x00000402 => "\x80",
+ 0x00000403 => "\x81",
+ 0x00000404 => "\xaa",
+ 0x00000405 => "\xbd",
+ 0x00000406 => "\xb2",
+ 0x00000407 => "\xaf",
+ 0x00000408 => "\xa3",
+ 0x00000409 => "\x8a",
+ 0x0000040a => "\x8c",
+ 0x0000040b => "\x8e",
+ 0x0000040c => "\x8d",
+ 0x0000040e => "\xa1",
+ 0x0000040f => "\x8f",
+ 0x00000410 => "\xc0",
+ 0x00000411 => "\xc1",
+ 0x00000412 => "\xc2",
+ 0x00000413 => "\xc3",
+ 0x00000414 => "\xc4",
+ 0x00000415 => "\xc5",
+ 0x00000416 => "\xc6",
+ 0x00000417 => "\xc7",
+ 0x00000418 => "\xc8",
+ 0x00000419 => "\xc9",
+ 0x0000041a => "\xca",
+ 0x0000041b => "\xcb",
+ 0x0000041c => "\xcc",
+ 0x0000041d => "\xcd",
+ 0x0000041e => "\xce",
+ 0x0000041f => "\xcf",
+ 0x00000420 => "\xd0",
+ 0x00000421 => "\xd1",
+ 0x00000422 => "\xd2",
+ 0x00000423 => "\xd3",
+ 0x00000424 => "\xd4",
+ 0x00000425 => "\xd5",
+ 0x00000426 => "\xd6",
+ 0x00000427 => "\xd7",
+ 0x00000428 => "\xd8",
+ 0x00000429 => "\xd9",
+ 0x0000042a => "\xda",
+ 0x0000042b => "\xdb",
+ 0x0000042c => "\xdc",
+ 0x0000042d => "\xdd",
+ 0x0000042e => "\xde",
+ 0x0000042f => "\xdf",
+ 0x00000430 => "\xe0",
+ 0x00000431 => "\xe1",
+ 0x00000432 => "\xe2",
+ 0x00000433 => "\xe3",
+ 0x00000434 => "\xe4",
+ 0x00000435 => "\xe5",
+ 0x00000436 => "\xe6",
+ 0x00000437 => "\xe7",
+ 0x00000438 => "\xe8",
+ 0x00000439 => "\xe9",
+ 0x0000043a => "\xea",
+ 0x0000043b => "\xeb",
+ 0x0000043c => "\xec",
+ 0x0000043d => "\xed",
+ 0x0000043e => "\xee",
+ 0x0000043f => "\xef",
+ 0x00000440 => "\xf0",
+ 0x00000441 => "\xf1",
+ 0x00000442 => "\xf2",
+ 0x00000443 => "\xf3",
+ 0x00000444 => "\xf4",
+ 0x00000445 => "\xf5",
+ 0x00000446 => "\xf6",
+ 0x00000447 => "\xf7",
+ 0x00000448 => "\xf8",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\xfa",
+ 0x0000044b => "\xfb",
+ 0x0000044c => "\xfc",
+ 0x0000044d => "\xfd",
+ 0x0000044e => "\xfe",
+ 0x0000044f => "\xff",
+ 0x00000451 => "\xb8",
+ 0x00000452 => "\x90",
+ 0x00000453 => "\x83",
+ 0x00000454 => "\xba",
+ 0x00000455 => "\xbe",
+ 0x00000456 => "\xb3",
+ 0x00000457 => "\xbf",
+ 0x00000458 => "\xbc",
+ 0x00000459 => "\x9a",
+ 0x0000045a => "\x9c",
+ 0x0000045b => "\x9e",
+ 0x0000045c => "\x9d",
+ 0x0000045e => "\xa2",
+ 0x0000045f => "\x9f",
+ 0x00000490 => "\xa5",
+ 0x00000491 => "\xb4",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x88",
+ 0x00002116 => "\xb9",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1251 - Conversion routines for CP1251
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1251.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-CYRL
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+ 81 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000453 | CYRILLIC SMALL LETTER GJE
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000020AC | EURO SIGN
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ 8D | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ 8E | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+ 8F | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ 90 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian)
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000459 | CYRILLIC SMALL LETTER LJE
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 0000045A | CYRILLIC SMALL LETTER NJE
+ 9D | 0000045C | CYRILLIC SMALL LETTER KJE
+ 9E | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+ 9F | 0000045F | CYRILLIC SMALL LETTER DZHE
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+ A2 | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+ A3 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ B3 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ B4 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 00000451 | CYRILLIC SMALL LETTER IO
+ B9 | 00002116 | NUMERO SIGN
+ BA | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 00000458 | CYRILLIC SMALL LETTER JE
+ BD | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ BE | 00000455 | CYRILLIC SMALL LETTER DZE
+ BF | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ C0 | 00000410 | CYRILLIC CAPITAL LETTER A
+ C1 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ C2 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ C3 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ C4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ C5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ C6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ C7 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ C8 | 00000418 | CYRILLIC CAPITAL LETTER I
+ C9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ CA | 0000041A | CYRILLIC CAPITAL LETTER KA
+ CB | 0000041B | CYRILLIC CAPITAL LETTER EL
+ CC | 0000041C | CYRILLIC CAPITAL LETTER EM
+ CD | 0000041D | CYRILLIC CAPITAL LETTER EN
+ CE | 0000041E | CYRILLIC CAPITAL LETTER O
+ CF | 0000041F | CYRILLIC CAPITAL LETTER PE
+ D0 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ D1 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ D2 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ D3 | 00000423 | CYRILLIC CAPITAL LETTER U
+ D4 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ D5 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ D6 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ D7 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ D8 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ D9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ DA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ DB | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ DC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ DD | 0000042D | CYRILLIC CAPITAL LETTER E
+ DE | 0000042E | CYRILLIC CAPITAL LETTER YU
+ DF | 0000042F | CYRILLIC CAPITAL LETTER YA
+ E0 | 00000430 | CYRILLIC SMALL LETTER A
+ E1 | 00000431 | CYRILLIC SMALL LETTER BE
+ E2 | 00000432 | CYRILLIC SMALL LETTER VE
+ E3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ E4 | 00000434 | CYRILLIC SMALL LETTER DE
+ E5 | 00000435 | CYRILLIC SMALL LETTER IE
+ E6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ E7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ E8 | 00000438 | CYRILLIC SMALL LETTER I
+ E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ EA | 0000043A | CYRILLIC SMALL LETTER KA
+ EB | 0000043B | CYRILLIC SMALL LETTER EL
+ EC | 0000043C | CYRILLIC SMALL LETTER EM
+ ED | 0000043D | CYRILLIC SMALL LETTER EN
+ EE | 0000043E | CYRILLIC SMALL LETTER O
+ EF | 0000043F | CYRILLIC SMALL LETTER PE
+ F0 | 00000440 | CYRILLIC SMALL LETTER ER
+ F1 | 00000441 | CYRILLIC SMALL LETTER ES
+ F2 | 00000442 | CYRILLIC SMALL LETTER TE
+ F3 | 00000443 | CYRILLIC SMALL LETTER U
+ F4 | 00000444 | CYRILLIC SMALL LETTER EF
+ F5 | 00000445 | CYRILLIC SMALL LETTER HA
+ F6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ F7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ F8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ FB | 0000044B | CYRILLIC SMALL LETTER YERU
+ FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ FD | 0000044D | CYRILLIC SMALL LETTER E
+ FE | 0000044E | CYRILLIC SMALL LETTER YU
+ FF | 0000044F | CYRILLIC SMALL LETTER YA
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1252.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1252.pm
new file mode 100644
index 0000000..5ddf0fc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1252.pm
@@ -0,0 +1,1137 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1252.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP1252.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1252;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0xfffd,
+ 0x017d,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x02dc,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0xfffd,
+ 0x017e,
+ 0x0178,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xef\xbf\xbd",
+ "\xc5\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xcb\x9c",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xef\xbf\xbd",
+ "\xc5\xbe",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d0 => "\xd0",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000de => "\xde",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000178 => "\x9f",
+ 0x0000017d => "\x8e",
+ 0x0000017e => "\x9e",
+ 0x00000192 => "\x83",
+ 0x000002c6 => "\x88",
+ 0x000002dc => "\x98",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1252 - Conversion routines for CP1252
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1252.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-ANSI
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 8E | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000002DC | SMALL TILDE
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9E | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1253.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1253.pm
new file mode 100644
index 0000000..618b19d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1253.pm
@@ -0,0 +1,1113 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1253.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP1253.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1253;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0xfffd,
+ 0x2030,
+ 0xfffd,
+ 0x2039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0x2122,
+ 0xfffd,
+ 0x203a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a0,
+ 0x0385,
+ 0x0386,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0xfffd,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x2015,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x0384,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x0388,
+ 0x0389,
+ 0x038a,
+ 0x00bb,
+ 0x038c,
+ 0x00bd,
+ 0x038e,
+ 0x038f,
+ 0x0390,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0xfffd,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03aa,
+ 0x03ab,
+ 0x03ac,
+ 0x03ad,
+ 0x03ae,
+ 0x03af,
+ 0x03b0,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c2,
+ 0x03c3,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0x03ca,
+ 0x03cb,
+ 0x03cc,
+ 0x03cd,
+ 0x03ce,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb0",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xe2\x84\xa2",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xce\x85",
+ "\xce\x86",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xef\xbf\xbd",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xe2\x80\x95",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xce\x84",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xce\x88",
+ "\xce\x89",
+ "\xce\x8a",
+ "\xc2\xbb",
+ "\xce\x8c",
+ "\xc2\xbd",
+ "\xce\x8e",
+ "\xce\x8f",
+ "\xce\x90",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xef\xbf\xbd",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xaa",
+ "\xce\xab",
+ "\xce\xac",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\xaf",
+ "\xce\xb0",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x82",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\xcf\x8a",
+ "\xcf\x8b",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xcf\x8e",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x000000bd => "\xbd",
+ 0x00000192 => "\x83",
+ 0x00000384 => "\xb4",
+ 0x00000385 => "\xa1",
+ 0x00000386 => "\xa2",
+ 0x00000388 => "\xb8",
+ 0x00000389 => "\xb9",
+ 0x0000038a => "\xba",
+ 0x0000038c => "\xbc",
+ 0x0000038e => "\xbe",
+ 0x0000038f => "\xbf",
+ 0x00000390 => "\xc0",
+ 0x00000391 => "\xc1",
+ 0x00000392 => "\xc2",
+ 0x00000393 => "\xc3",
+ 0x00000394 => "\xc4",
+ 0x00000395 => "\xc5",
+ 0x00000396 => "\xc6",
+ 0x00000397 => "\xc7",
+ 0x00000398 => "\xc8",
+ 0x00000399 => "\xc9",
+ 0x0000039a => "\xca",
+ 0x0000039b => "\xcb",
+ 0x0000039c => "\xcc",
+ 0x0000039d => "\xcd",
+ 0x0000039e => "\xce",
+ 0x0000039f => "\xcf",
+ 0x000003a0 => "\xd0",
+ 0x000003a1 => "\xd1",
+ 0x000003a3 => "\xd3",
+ 0x000003a4 => "\xd4",
+ 0x000003a5 => "\xd5",
+ 0x000003a6 => "\xd6",
+ 0x000003a7 => "\xd7",
+ 0x000003a8 => "\xd8",
+ 0x000003a9 => "\xd9",
+ 0x000003aa => "\xda",
+ 0x000003ab => "\xdb",
+ 0x000003ac => "\xdc",
+ 0x000003ad => "\xdd",
+ 0x000003ae => "\xde",
+ 0x000003af => "\xdf",
+ 0x000003b0 => "\xe0",
+ 0x000003b1 => "\xe1",
+ 0x000003b2 => "\xe2",
+ 0x000003b3 => "\xe3",
+ 0x000003b4 => "\xe4",
+ 0x000003b5 => "\xe5",
+ 0x000003b6 => "\xe6",
+ 0x000003b7 => "\xe7",
+ 0x000003b8 => "\xe8",
+ 0x000003b9 => "\xe9",
+ 0x000003ba => "\xea",
+ 0x000003bb => "\xeb",
+ 0x000003bc => "\xec",
+ 0x000003bd => "\xed",
+ 0x000003be => "\xee",
+ 0x000003bf => "\xef",
+ 0x000003c0 => "\xf0",
+ 0x000003c1 => "\xf1",
+ 0x000003c2 => "\xf2",
+ 0x000003c3 => "\xf3",
+ 0x000003c4 => "\xf4",
+ 0x000003c5 => "\xf5",
+ 0x000003c6 => "\xf6",
+ 0x000003c7 => "\xf7",
+ 0x000003c8 => "\xf8",
+ 0x000003c9 => "\xf9",
+ 0x000003ca => "\xfa",
+ 0x000003cb => "\xfb",
+ 0x000003cc => "\xfc",
+ 0x000003cd => "\xfd",
+ 0x000003ce => "\xfe",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002015 => "\xaf",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1253 - Conversion routines for CP1253
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1253.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-GREEK
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 89 | 00002030 | PER MILLE SIGN
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000385 | GREEK DIALYTIKA TONOS
+ A2 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 00002015 | HORIZONTAL BAR
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 00000384 | GREEK TONOS
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ B9 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ BA | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ BF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ C0 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ C1 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ C2 | 00000392 | GREEK CAPITAL LETTER BETA
+ C3 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ C4 | 00000394 | GREEK CAPITAL LETTER DELTA
+ C5 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ C6 | 00000396 | GREEK CAPITAL LETTER ZETA
+ C7 | 00000397 | GREEK CAPITAL LETTER ETA
+ C8 | 00000398 | GREEK CAPITAL LETTER THETA
+ C9 | 00000399 | GREEK CAPITAL LETTER IOTA
+ CA | 0000039A | GREEK CAPITAL LETTER KAPPA
+ CB | 0000039B | GREEK CAPITAL LETTER LAMDA
+ CC | 0000039C | GREEK CAPITAL LETTER MU
+ CD | 0000039D | GREEK CAPITAL LETTER NU
+ CE | 0000039E | GREEK CAPITAL LETTER XI
+ CF | 0000039F | GREEK CAPITAL LETTER OMICRON
+ D0 | 000003A0 | GREEK CAPITAL LETTER PI
+ D1 | 000003A1 | GREEK CAPITAL LETTER RHO
+ D3 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ D4 | 000003A4 | GREEK CAPITAL LETTER TAU
+ D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ D6 | 000003A6 | GREEK CAPITAL LETTER PHI
+ D7 | 000003A7 | GREEK CAPITAL LETTER CHI
+ D8 | 000003A8 | GREEK CAPITAL LETTER PSI
+ D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ DA | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ DB | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ DC | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ DD | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ DE | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ DF | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ E0 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ E1 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E2 | 000003B2 | GREEK SMALL LETTER BETA
+ E3 | 000003B3 | GREEK SMALL LETTER GAMMA
+ E4 | 000003B4 | GREEK SMALL LETTER DELTA
+ E5 | 000003B5 | GREEK SMALL LETTER EPSILON
+ E6 | 000003B6 | GREEK SMALL LETTER ZETA
+ E7 | 000003B7 | GREEK SMALL LETTER ETA
+ E8 | 000003B8 | GREEK SMALL LETTER THETA
+ E9 | 000003B9 | GREEK SMALL LETTER IOTA
+ EA | 000003BA | GREEK SMALL LETTER KAPPA
+ EB | 000003BB | GREEK SMALL LETTER LAMDA
+ EC | 000003BC | GREEK SMALL LETTER MU
+ ED | 000003BD | GREEK SMALL LETTER NU
+ EE | 000003BE | GREEK SMALL LETTER XI
+ EF | 000003BF | GREEK SMALL LETTER OMICRON
+ F0 | 000003C0 | GREEK SMALL LETTER PI
+ F1 | 000003C1 | GREEK SMALL LETTER RHO
+ F2 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ F3 | 000003C3 | GREEK SMALL LETTER SIGMA
+ F4 | 000003C4 | GREEK SMALL LETTER TAU
+ F5 | 000003C5 | GREEK SMALL LETTER UPSILON
+ F6 | 000003C6 | GREEK SMALL LETTER PHI
+ F7 | 000003C7 | GREEK SMALL LETTER CHI
+ F8 | 000003C8 | GREEK SMALL LETTER PSI
+ F9 | 000003C9 | GREEK SMALL LETTER OMEGA
+ FA | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ FC | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ FD | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ FE | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1254.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1254.pm
new file mode 100644
index 0000000..c1e0996
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1254.pm
@@ -0,0 +1,1133 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1254.pm,v 1.1 2011-10-12 23:51:28 pertusus Exp $
+
+# Conversion routines for CP1254.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1254;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x02dc,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0xfffd,
+ 0xfffd,
+ 0x0178,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x011e,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x0130,
+ 0x015e,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x011f,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x0131,
+ 0x015f,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xcb\x9c",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc4\x9e",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc4\xb0",
+ "\xc5\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc4\x9f",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc4\xb1",
+ "\xc5\x9f",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000ff => "\xff",
+ 0x0000011e => "\xd0",
+ 0x0000011f => "\xf0",
+ 0x00000130 => "\xdd",
+ 0x00000131 => "\xfd",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x0000015e => "\xde",
+ 0x0000015f => "\xfe",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000178 => "\x9f",
+ 0x00000192 => "\x83",
+ 0x000002c6 => "\x88",
+ 0x000002dc => "\x98",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1254 - Conversion routines for CP1254
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1254.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-TURK
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000002DC | SMALL TILDE
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER E WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 00000131 | LATIN SMALL LETTER DOTLESS I
+ FE | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1256.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1256.pm
new file mode 100644
index 0000000..8fdbc15
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1256.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1256.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for CP1256.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1256;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0x067e,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0679,
+ 0x2039,
+ 0x0152,
+ 0x0686,
+ 0x0698,
+ 0x0688,
+ 0x06af,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x06a9,
+ 0x2122,
+ 0x0691,
+ 0x203a,
+ 0x0153,
+ 0x200c,
+ 0x200d,
+ 0x06ba,
+ 0x00a0,
+ 0x060c,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x06be,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x061b,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x061f,
+ 0x06c1,
+ 0x0621,
+ 0x0622,
+ 0x0623,
+ 0x0624,
+ 0x0625,
+ 0x0626,
+ 0x0627,
+ 0x0628,
+ 0x0629,
+ 0x062a,
+ 0x062b,
+ 0x062c,
+ 0x062d,
+ 0x062e,
+ 0x062f,
+ 0x0630,
+ 0x0631,
+ 0x0632,
+ 0x0633,
+ 0x0634,
+ 0x0635,
+ 0x0636,
+ 0x00d7,
+ 0x0637,
+ 0x0638,
+ 0x0639,
+ 0x063a,
+ 0x0640,
+ 0x0641,
+ 0x0642,
+ 0x0643,
+ 0x00e0,
+ 0x0644,
+ 0x00e2,
+ 0x0645,
+ 0x0646,
+ 0x0647,
+ 0x0648,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x0649,
+ 0x064a,
+ 0x00ee,
+ 0x00ef,
+ 0x064b,
+ 0x064c,
+ 0x064d,
+ 0x064e,
+ 0x00f4,
+ 0x064f,
+ 0x0650,
+ 0x00f7,
+ 0x0651,
+ 0x00f9,
+ 0x0652,
+ 0x00fb,
+ 0x00fc,
+ 0x200e,
+ 0x200f,
+ 0x06d2,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xd9\xbe",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xd9\xb9",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xda\x86",
+ "\xda\x98",
+ "\xda\x88",
+ "\xda\xaf",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xda\xa9",
+ "\xe2\x84\xa2",
+ "\xda\x91",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xe2\x80\x8c",
+ "\xe2\x80\x8d",
+ "\xda\xba",
+ "\xc2\xa0",
+ "\xd8\x8c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xda\xbe",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xd8\x9b",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xd8\x9f",
+ "\xdb\x81",
+ "\xd8\xa1",
+ "\xd8\xa2",
+ "\xd8\xa3",
+ "\xd8\xa4",
+ "\xd8\xa5",
+ "\xd8\xa6",
+ "\xd8\xa7",
+ "\xd8\xa8",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xd8\xab",
+ "\xd8\xac",
+ "\xd8\xad",
+ "\xd8\xae",
+ "\xd8\xaf",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xd8\xb2",
+ "\xd8\xb3",
+ "\xd8\xb4",
+ "\xd8\xb5",
+ "\xd8\xb6",
+ "\xc3\x97",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xd8\xba",
+ "\xd9\x80",
+ "\xd9\x81",
+ "\xd9\x82",
+ "\xd9\x83",
+ "\xc3\xa0",
+ "\xd9\x84",
+ "\xc3\xa2",
+ "\xd9\x85",
+ "\xd9\x86",
+ "\xd9\x87",
+ "\xd9\x88",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xd9\x89",
+ "\xd9\x8a",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xd9\x8b",
+ "\xd9\x8c",
+ "\xd9\x8d",
+ "\xd9\x8e",
+ "\xc3\xb4",
+ "\xd9\x8f",
+ "\xd9\x90",
+ "\xc3\xb7",
+ "\xd9\x91",
+ "\xc3\xb9",
+ "\xd9\x92",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\x8e",
+ "\xe2\x80\x8f",
+ "\xdb\x92",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000d7 => "\xd7",
+ 0x000000e0 => "\xe0",
+ 0x000000e2 => "\xe2",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f4 => "\xf4",
+ 0x000000f7 => "\xf7",
+ 0x000000f9 => "\xf9",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000192 => "\x83",
+ 0x000002c6 => "\x88",
+ 0x0000060c => "\xa1",
+ 0x0000061b => "\xba",
+ 0x0000061f => "\xbf",
+ 0x00000621 => "\xc1",
+ 0x00000622 => "\xc2",
+ 0x00000623 => "\xc3",
+ 0x00000624 => "\xc4",
+ 0x00000625 => "\xc5",
+ 0x00000626 => "\xc6",
+ 0x00000627 => "\xc7",
+ 0x00000628 => "\xc8",
+ 0x00000629 => "\xc9",
+ 0x0000062a => "\xca",
+ 0x0000062b => "\xcb",
+ 0x0000062c => "\xcc",
+ 0x0000062d => "\xcd",
+ 0x0000062e => "\xce",
+ 0x0000062f => "\xcf",
+ 0x00000630 => "\xd0",
+ 0x00000631 => "\xd1",
+ 0x00000632 => "\xd2",
+ 0x00000633 => "\xd3",
+ 0x00000634 => "\xd4",
+ 0x00000635 => "\xd5",
+ 0x00000636 => "\xd6",
+ 0x00000637 => "\xd8",
+ 0x00000638 => "\xd9",
+ 0x00000639 => "\xda",
+ 0x0000063a => "\xdb",
+ 0x00000640 => "\xdc",
+ 0x00000641 => "\xdd",
+ 0x00000642 => "\xde",
+ 0x00000643 => "\xdf",
+ 0x00000644 => "\xe1",
+ 0x00000645 => "\xe3",
+ 0x00000646 => "\xe4",
+ 0x00000647 => "\xe5",
+ 0x00000648 => "\xe6",
+ 0x00000649 => "\xec",
+ 0x0000064a => "\xed",
+ 0x0000064b => "\xf0",
+ 0x0000064c => "\xf1",
+ 0x0000064d => "\xf2",
+ 0x0000064e => "\xf3",
+ 0x0000064f => "\xf5",
+ 0x00000650 => "\xf6",
+ 0x00000651 => "\xf8",
+ 0x00000652 => "\xfa",
+ 0x00000679 => "\x8a",
+ 0x0000067e => "\x81",
+ 0x00000686 => "\x8d",
+ 0x00000688 => "\x8f",
+ 0x00000691 => "\x9a",
+ 0x00000698 => "\x8e",
+ 0x000006a9 => "\x98",
+ 0x000006af => "\x90",
+ 0x000006ba => "\x9f",
+ 0x000006be => "\xaa",
+ 0x000006c1 => "\xc0",
+ 0x000006d2 => "\xff",
+ 0x0000200c => "\x9d",
+ 0x0000200d => "\x9e",
+ 0x0000200e => "\xfd",
+ 0x0000200f => "\xfe",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1256 - Conversion routines for CP1256
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1256.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: UNICODE 1.0
+ alias MS-ARAB
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 81 | 0000067E | ARABIC LETTER PEH
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000679 | ARABIC LETTER TTEH
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 8D | 00000686 | ARABIC LETTER TCHEH
+ 8E | 00000698 | ARABIC LETTER JEH
+ 8F | 00000688 | ARABIC LETTER DDAL
+ 90 | 000006AF | ARABIC LETTER GAF
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000006A9 | ARABIC LETTER KEHEH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000691 | ARABIC LETTER RREH
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9D | 0000200C | ZERO WIDTH NON-JOINER
+ 9E | 0000200D | ZERO WIDTH JOINER
+ 9F | 000006BA | ARABIC LETTER NOON
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 0000060C | ARABIC COMMA
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000006BE | ARABIC LETTER HEH DOACHASHMEE
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 0000061B | ARABIC SEMICOLON
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 0000061F | ARABIC QUESTION MARK
+ C0 | 000006C1 | ARABIC LETTER HEH GOAL
+ C1 | 00000621 | ARABIC LETTER HAMZA
+ C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
+ C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW
+ C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
+ C7 | 00000627 | ARABIC LETTER ALEF
+ C8 | 00000628 | ARABIC LETTER BEH
+ C9 | 00000629 | ARABIC LETTER TEH MARBUTA
+ CA | 0000062A | ARABIC LETTER TEH
+ CB | 0000062B | ARABIC LETTER THEH
+ CC | 0000062C | ARABIC LETTER JEEM
+ CD | 0000062D | ARABIC LETTER HAH
+ CE | 0000062E | ARABIC LETTER KHAH
+ CF | 0000062F | ARABIC LETTER DAL
+ D0 | 00000630 | ARABIC LETTER THAL
+ D1 | 00000631 | ARABIC LETTER REH
+ D2 | 00000632 | ARABIC LETTER ZAIN
+ D3 | 00000633 | ARABIC LETTER SEEN
+ D4 | 00000634 | ARABIC LETTER SHEEN
+ D5 | 00000635 | ARABIC LETTER SAD
+ D6 | 00000636 | ARABIC LETTER DAD
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000637 | ARABIC LETTER TAH
+ D9 | 00000638 | ARABIC LETTER ZAH
+ DA | 00000639 | ARABIC LETTER AIN
+ DB | 0000063A | ARABIC LETTER GHAIN
+ DC | 00000640 | ARABIC TATWEEL
+ DD | 00000641 | ARABIC LETTER FEH
+ DE | 00000642 | ARABIC LETTER QAF
+ DF | 00000643 | ARABIC LETTER KAF
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 00000644 | ARABIC LETTER LAM
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 00000645 | ARABIC LETTER MEEM
+ E4 | 00000646 | ARABIC LETTER NOON
+ E5 | 00000647 | ARABIC LETTER HEH
+ E6 | 00000648 | ARABIC LETTER WAW
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 00000649 | ARABIC LETTER ALEF MAKSURA
+ ED | 0000064A | ARABIC LETTER YEH
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 0000064B | ARABIC FATHATAN
+ F1 | 0000064C | ARABIC DAMMATAN
+ F2 | 0000064D | ARABIC KASRATAN
+ F3 | 0000064E | ARABIC FATHA
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 0000064F | ARABIC DAMMA
+ F6 | 00000650 | ARABIC KASRA
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000651 | ARABIC SHADDA
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 00000652 | ARABIC SUKUN
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 0000200E | LEFT-TO-RIGHT MARK
+ FE | 0000200F | RIGHT-TO-LEFT MARK
+ FF | 000006D2 | ARABIC LETTER YEH BARREE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1257.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1257.pm
new file mode 100644
index 0000000..3f53f9b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CP1257.pm
@@ -0,0 +1,1122 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CP1257.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for CP1257.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CP1257;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x201a,
+ 0xfffd,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0xfffd,
+ 0x2030,
+ 0xfffd,
+ 0x2039,
+ 0xfffd,
+ 0x00a8,
+ 0x02c7,
+ 0x00b8,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0x2122,
+ 0xfffd,
+ 0x203a,
+ 0xfffd,
+ 0x00af,
+ 0x02db,
+ 0xfffd,
+ 0x00a0,
+ 0xfffd,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0xfffd,
+ 0x00a6,
+ 0x00a7,
+ 0x00d8,
+ 0x00a9,
+ 0x0156,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00c6,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00f8,
+ 0x00b9,
+ 0x0157,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00e6,
+ 0x0104,
+ 0x012e,
+ 0x0100,
+ 0x0106,
+ 0x00c4,
+ 0x00c5,
+ 0x0118,
+ 0x0112,
+ 0x010c,
+ 0x00c9,
+ 0x0179,
+ 0x0116,
+ 0x0122,
+ 0x0136,
+ 0x012a,
+ 0x013b,
+ 0x0160,
+ 0x0143,
+ 0x0145,
+ 0x00d3,
+ 0x014c,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x0172,
+ 0x0141,
+ 0x015a,
+ 0x016a,
+ 0x00dc,
+ 0x017b,
+ 0x017d,
+ 0x00df,
+ 0x0105,
+ 0x012f,
+ 0x0101,
+ 0x0107,
+ 0x00e4,
+ 0x00e5,
+ 0x0119,
+ 0x0113,
+ 0x010d,
+ 0x00e9,
+ 0x017a,
+ 0x0117,
+ 0x0123,
+ 0x0137,
+ 0x012b,
+ 0x013c,
+ 0x0161,
+ 0x0144,
+ 0x0146,
+ 0x00f3,
+ 0x014d,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x0173,
+ 0x0142,
+ 0x015b,
+ 0x016b,
+ 0x00fc,
+ 0x017c,
+ 0x017e,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb0",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb9",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\xcb\x87",
+ "\xc2\xb8",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xe2\x84\xa2",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xba",
+ "\xef\xbf\xbd",
+ "\xc2\xaf",
+ "\xcb\x9b",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc3\x98",
+ "\xc2\xa9",
+ "\xc5\x96",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc3\x86",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc3\xb8",
+ "\xc2\xb9",
+ "\xc5\x97",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc3\xa6",
+ "\xc4\x84",
+ "\xc4\xae",
+ "\xc4\x80",
+ "\xc4\x86",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc4\x98",
+ "\xc4\x92",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc5\xb9",
+ "\xc4\x96",
+ "\xc4\xa2",
+ "\xc4\xb6",
+ "\xc4\xaa",
+ "\xc4\xbb",
+ "\xc5\xa0",
+ "\xc5\x83",
+ "\xc5\x85",
+ "\xc3\x93",
+ "\xc5\x8c",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc5\xb2",
+ "\xc5\x81",
+ "\xc5\x9a",
+ "\xc5\xaa",
+ "\xc3\x9c",
+ "\xc5\xbb",
+ "\xc5\xbd",
+ "\xc3\x9f",
+ "\xc4\x85",
+ "\xc4\xaf",
+ "\xc4\x81",
+ "\xc4\x87",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc4\x99",
+ "\xc4\x93",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc5\xba",
+ "\xc4\x97",
+ "\xc4\xa3",
+ "\xc4\xb7",
+ "\xc4\xab",
+ "\xc4\xbc",
+ "\xc5\xa1",
+ "\xc5\x84",
+ "\xc5\x86",
+ "\xc3\xb3",
+ "\xc5\x8d",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc5\xb3",
+ "\xc5\x82",
+ "\xc5\x9b",
+ "\xc5\xab",
+ "\xc3\xbc",
+ "\xc5\xbc",
+ "\xc5\xbe",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\x8d",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\x9d",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\x8f",
+ 0x000000b9 => "\xb9",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xaf",
+ 0x000000c9 => "\xc9",
+ 0x000000d3 => "\xd3",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xa8",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xbf",
+ 0x000000e9 => "\xe9",
+ 0x000000f3 => "\xf3",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xb8",
+ 0x000000fc => "\xfc",
+ 0x00000100 => "\xc2",
+ 0x00000101 => "\xe2",
+ 0x00000104 => "\xc0",
+ 0x00000105 => "\xe0",
+ 0x00000106 => "\xc3",
+ 0x00000107 => "\xe3",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x00000112 => "\xc7",
+ 0x00000113 => "\xe7",
+ 0x00000116 => "\xcb",
+ 0x00000117 => "\xeb",
+ 0x00000118 => "\xc6",
+ 0x00000119 => "\xe6",
+ 0x00000122 => "\xcc",
+ 0x00000123 => "\xec",
+ 0x0000012a => "\xce",
+ 0x0000012b => "\xee",
+ 0x0000012e => "\xc1",
+ 0x0000012f => "\xe1",
+ 0x00000136 => "\xcd",
+ 0x00000137 => "\xed",
+ 0x0000013b => "\xcf",
+ 0x0000013c => "\xef",
+ 0x00000141 => "\xd9",
+ 0x00000142 => "\xf9",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000145 => "\xd2",
+ 0x00000146 => "\xf2",
+ 0x0000014c => "\xd4",
+ 0x0000014d => "\xf4",
+ 0x00000156 => "\xaa",
+ 0x00000157 => "\xba",
+ 0x0000015a => "\xda",
+ 0x0000015b => "\xfa",
+ 0x00000160 => "\xd0",
+ 0x00000161 => "\xf0",
+ 0x0000016a => "\xdb",
+ 0x0000016b => "\xfb",
+ 0x00000172 => "\xd8",
+ 0x00000173 => "\xf8",
+ 0x00000179 => "\xca",
+ 0x0000017a => "\xea",
+ 0x0000017b => "\xdd",
+ 0x0000017c => "\xfd",
+ 0x0000017d => "\xde",
+ 0x0000017e => "\xfe",
+ 0x000002c7 => "\x8e",
+ 0x000002d9 => "\xff",
+ 0x000002db => "\x9e",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CP1257 - Conversion routines for CP1257
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CP1257.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: CEN/TC304 N283
+ alias WINBALTRIM
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 89 | 00002030 | PER MILLE SIGN
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8D | 000000A8 | DIAERESIS
+ 8E | 000002C7 | CARON (Mandarin Chinese third tone)
+ 8F | 000000B8 | CEDILLA
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9D | 000000AF | MACRON
+ 9E | 000002DB | OGONEK
+ A0 | 000000A0 | NO-BREAK SPACE
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000C6 | LATIN CAPITAL LETTER AE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 00000157 | LATIN SMALL LETTER R WITH CEDILLA
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000E6 | LATIN SMALL LETTER AE
+ C0 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ C1 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK
+ C2 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON
+ C3 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ C7 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ CB | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE
+ CC | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA
+ CD | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA
+ CE | 0000012A | LATIN CAPITAL LETTER I WITH MACRON
+ CF | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA
+ D0 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK
+ D9 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ DA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ DB | 0000016A | LATIN CAPITAL LETTER U WITH MACRON
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ DE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ E1 | 0000012F | LATIN SMALL LETTER I WITH OGONEK
+ E2 | 00000101 | LATIN SMALL LETTER A WITH MACRON
+ E3 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ E7 | 00000113 | LATIN SMALL LETTER E WITH MACRON
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ EB | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE
+ EC | 00000123 | LATIN SMALL LETTER G WITH CEDILLA
+ ED | 00000137 | LATIN SMALL LETTER K WITH CEDILLA
+ EE | 0000012B | LATIN SMALL LETTER I WITH MACRON
+ EF | 0000013C | LATIN SMALL LETTER L WITH CEDILLA
+ F0 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 0000014D | LATIN SMALL LETTER O WITH MACRON
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000173 | LATIN SMALL LETTER U WITH OGONEK
+ F9 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ FA | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ FB | 0000016B | LATIN SMALL LETTER U WITH MACRON
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ FE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CSN_369103.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CSN_369103.pm
new file mode 100644
index 0000000..9e40b27
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CSN_369103.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CSN_369103.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for CSN_369103.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CSN_369103;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0104,
+ 0x02d8,
+ 0x0141,
+ 0x0024,
+ 0x013d,
+ 0x015a,
+ 0x00a7,
+ 0x00a8,
+ 0x0160,
+ 0x015e,
+ 0x0164,
+ 0x0179,
+ 0x00ad,
+ 0x017d,
+ 0x017b,
+ 0x00b0,
+ 0x0105,
+ 0x02db,
+ 0x0142,
+ 0x00b4,
+ 0x013e,
+ 0x015b,
+ 0x02c7,
+ 0x00b8,
+ 0x0161,
+ 0x015f,
+ 0x0165,
+ 0x017a,
+ 0x02dd,
+ 0x017e,
+ 0x017c,
+ 0x0154,
+ 0x00c1,
+ 0x00c2,
+ 0x0102,
+ 0x00c4,
+ 0x0139,
+ 0x0106,
+ 0x00c7,
+ 0x010c,
+ 0x00c9,
+ 0x0118,
+ 0x00cb,
+ 0x011a,
+ 0x00cd,
+ 0x00ce,
+ 0x010e,
+ 0x0110,
+ 0x0143,
+ 0x0147,
+ 0x00d3,
+ 0x00d4,
+ 0x0150,
+ 0x00d6,
+ 0x00d7,
+ 0x0158,
+ 0x016e,
+ 0x00da,
+ 0x0170,
+ 0x00dc,
+ 0x00dd,
+ 0x0162,
+ 0x00df,
+ 0x0155,
+ 0x00e1,
+ 0x00e2,
+ 0x0103,
+ 0x00e4,
+ 0x013a,
+ 0x0107,
+ 0x00e7,
+ 0x010d,
+ 0x00e9,
+ 0x0119,
+ 0x00eb,
+ 0x011b,
+ 0x00ed,
+ 0x00ee,
+ 0x010f,
+ 0x0111,
+ 0x0144,
+ 0x0148,
+ 0x00f3,
+ 0x00f4,
+ 0x0151,
+ 0x00f6,
+ 0x00f7,
+ 0x0159,
+ 0x016f,
+ 0x00fa,
+ 0x0171,
+ 0x00fc,
+ 0x00fd,
+ 0x0163,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\x84",
+ "\xcb\x98",
+ "\xc5\x81",
+ "\x24",
+ "\xc4\xbd",
+ "\xc5\x9a",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc5\xa0",
+ "\xc5\x9e",
+ "\xc5\xa4",
+ "\xc5\xb9",
+ "\xc2\xad",
+ "\xc5\xbd",
+ "\xc5\xbb",
+ "\xc2\xb0",
+ "\xc4\x85",
+ "\xcb\x9b",
+ "\xc5\x82",
+ "\xc2\xb4",
+ "\xc4\xbe",
+ "\xc5\x9b",
+ "\xcb\x87",
+ "\xc2\xb8",
+ "\xc5\xa1",
+ "\xc5\x9f",
+ "\xc5\xa5",
+ "\xc5\xba",
+ "\xcb\x9d",
+ "\xc5\xbe",
+ "\xc5\xbc",
+ "\xc5\x94",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc4\x82",
+ "\xc3\x84",
+ "\xc4\xb9",
+ "\xc4\x86",
+ "\xc3\x87",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc4\x98",
+ "\xc3\x8b",
+ "\xc4\x9a",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc4\x8e",
+ "\xc4\x90",
+ "\xc5\x83",
+ "\xc5\x87",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc5\x90",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc5\x98",
+ "\xc5\xae",
+ "\xc3\x9a",
+ "\xc5\xb0",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc5\xa2",
+ "\xc3\x9f",
+ "\xc5\x95",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc4\x83",
+ "\xc3\xa4",
+ "\xc4\xba",
+ "\xc4\x87",
+ "\xc3\xa7",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc4\x99",
+ "\xc3\xab",
+ "\xc4\x9b",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc4\x8f",
+ "\xc4\x91",
+ "\xc5\x84",
+ "\xc5\x88",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc5\x91",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc5\x99",
+ "\xc5\xaf",
+ "\xc3\xba",
+ "\xc5\xb1",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc5\xa3",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\xa4",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\x24",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b4 => "\xb4",
+ 0x000000b8 => "\xb8",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c4 => "\xc4",
+ 0x000000c7 => "\xc7",
+ 0x000000c9 => "\xc9",
+ 0x000000cb => "\xcb",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000da => "\xda",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000df => "\xdf",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e4 => "\xe4",
+ 0x000000e7 => "\xe7",
+ 0x000000e9 => "\xe9",
+ 0x000000eb => "\xeb",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000fa => "\xfa",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x00000102 => "\xc3",
+ 0x00000103 => "\xe3",
+ 0x00000104 => "\xa1",
+ 0x00000105 => "\xb1",
+ 0x00000106 => "\xc6",
+ 0x00000107 => "\xe6",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x0000010e => "\xcf",
+ 0x0000010f => "\xef",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000118 => "\xca",
+ 0x00000119 => "\xea",
+ 0x0000011a => "\xcc",
+ 0x0000011b => "\xec",
+ 0x00000139 => "\xc5",
+ 0x0000013a => "\xe5",
+ 0x0000013d => "\xa5",
+ 0x0000013e => "\xb5",
+ 0x00000141 => "\xa3",
+ 0x00000142 => "\xb3",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000147 => "\xd2",
+ 0x00000148 => "\xf2",
+ 0x00000150 => "\xd5",
+ 0x00000151 => "\xf5",
+ 0x00000154 => "\xc0",
+ 0x00000155 => "\xe0",
+ 0x00000158 => "\xd8",
+ 0x00000159 => "\xf8",
+ 0x0000015a => "\xa6",
+ 0x0000015b => "\xb6",
+ 0x0000015e => "\xaa",
+ 0x0000015f => "\xba",
+ 0x00000160 => "\xa9",
+ 0x00000161 => "\xb9",
+ 0x00000162 => "\xde",
+ 0x00000163 => "\xfe",
+ 0x00000164 => "\xab",
+ 0x00000165 => "\xbb",
+ 0x0000016e => "\xd9",
+ 0x0000016f => "\xf9",
+ 0x00000170 => "\xdb",
+ 0x00000171 => "\xfb",
+ 0x00000179 => "\xac",
+ 0x0000017a => "\xbc",
+ 0x0000017b => "\xaf",
+ 0x0000017c => "\xbf",
+ 0x0000017d => "\xae",
+ 0x0000017e => "\xbe",
+ 0x000002c7 => "\xb7",
+ 0x000002d8 => "\xa2",
+ 0x000002d9 => "\xff",
+ 0x000002db => "\xb2",
+ 0x000002dd => "\xbd",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CSN_369103 - Conversion routines for CSN_369103
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CSN_369103.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-139
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A2 | 000002D8 | BREVE
+ A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ A4 | 00000024 | DOLLAR SIGN
+ A5 | 0000013D | LATIN CAPITAL LETTER L WITH CARON
+ A6 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ AB | 00000164 | LATIN CAPITAL LETTER T WITH CARON
+ AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ B2 | 000002DB | OGONEK
+ B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 0000013E | LATIN SMALL LETTER L WITH CARON
+ B6 | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ B7 | 000002C7 | CARON (Mandarin Chinese third tone)
+ B8 | 000000B8 | CEDILLA
+ B9 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ BB | 00000165 | LATIN SMALL LETTER T WITH CARON
+ BC | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ BD | 000002DD | DOUBLE ACUTE ACCENT
+ BE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
+ C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON
+ D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
+ E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 0000011B | LATIN SMALL LETTER E WITH CARON
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 0000010F | LATIN SMALL LETTER D WITH CARON
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 00000148 | LATIN SMALL LETTER N WITH CARON
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000159 | LATIN SMALL LETTER R WITH CARON
+ F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CWI.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CWI.pm
new file mode 100644
index 0000000..95b748f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/CWI.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: CWI.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for CWI.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::CWI;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00cd,
+ 0x00c4,
+ 0x00c1,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x0151,
+ 0x00f6,
+ 0x00d3,
+ 0x0171,
+ 0x00da,
+ 0x0170,
+ 0x00d6,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x20a7,
+ 0xe01f,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x0150,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x03b2,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x03bc,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x2205,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x2218,
+ 0x00b7,
+ 0x2022,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\x8d",
+ "\xc3\x84",
+ "\xc3\x81",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc5\x91",
+ "\xc3\xb6",
+ "\xc3\x93",
+ "\xc5\xb1",
+ "\xc3\x9a",
+ "\xc5\xb0",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xe2\x82\xa7",
+ "\xee\x80\x9f",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc5\x90",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xce\xbc",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xe2\x88\x85",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xe2\x88\x98",
+ "\xc2\xb7",
+ "\xe2\x80\xa2",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a5 => "\x9d",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b7 => "\xf9",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c1 => "\x8f",
+ 0x000000c4 => "\x8e",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000cd => "\x8d",
+ 0x000000d1 => "\xa5",
+ 0x000000d3 => "\x95",
+ 0x000000d6 => "\x99",
+ 0x000000da => "\x97",
+ 0x000000dc => "\x9a",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f3 => "\xa2",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000fa => "\xa3",
+ 0x000000fc => "\x81",
+ 0x00000150 => "\xa7",
+ 0x00000151 => "\x93",
+ 0x00000170 => "\x98",
+ 0x00000171 => "\x96",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b2 => "\xe1",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003bc => "\xe6",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x00002022 => "\xfa",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002205 => "\xed",
+ 0x00002218 => "\xf8",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+ 0x0000e01f => "\x9f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::CWI - Conversion routines for CWI
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for CWI.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29
+ alias CWI-2
+ alias CP-HU
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ 96 | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ 97 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ 98 | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000A5 | YEN SIGN
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 0000E01F | HUNGARIAN FLORINTH (CWI_9F)
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000003B2 | GREEK SMALL LETTER BETA
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000003BC | GREEK SMALL LETTER MU
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 00002205 | EMPTY SET
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 00002218 | RING OPERATOR
+ F9 | 000000B7 | MIDDLE DOT
+ FA | 00002022 | BULLET
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/DEC_MCS.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/DEC_MCS.pm
new file mode 100644
index 0000000..00e9d20
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/DEC_MCS.pm
@@ -0,0 +1,1116 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: DEC_MCS.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for DEC-MCS.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::DEC_MCS;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0xfffd,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0xfffd,
+ 0x00a5,
+ 0xfffd,
+ 0x00a7,
+ 0x00a4,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0xfffd,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0xfffd,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0xfffd,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0xfffd,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x0152,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x0178,
+ 0xfffd,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0xfffd,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x0153,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00ff,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xef\xbf\xbd",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xef\xbf\xbd",
+ "\xc2\xa5",
+ "\xef\xbf\xbd",
+ "\xc2\xa7",
+ "\xc2\xa4",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xef\xbf\xbd",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xef\xbf\xbd",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xef\xbf\xbd",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc5\x92",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc5\xb8",
+ "\xef\xbf\xbd",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xef\xbf\xbd",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc5\x93",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbf",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa8",
+ 0x000000a5 => "\xa5",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000ff => "\xfd",
+ 0x00000152 => "\xd7",
+ 0x00000153 => "\xf7",
+ 0x00000178 => "\xdd",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::DEC_MCS - Conversion routines for DEC_MCS
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for DEC-MCS.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ VAX/VMS User's Manual, Order Number: AI-Y517A-TE, April 1986.
+ alias DEC
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A5 | 000000A5 | YEN SIGN
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A4 | CURRENCY SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 00000152 | LATIN CAPITAL LIGATURE OE
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 00000153 | LATIN SMALL LIGATURE OE
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE.pm
new file mode 100644
index 0000000..4162b72
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_AT_DE.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for EBCDIC-AT-DE.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_AT_DE;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00c4,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00dc,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x00a7,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00df,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e4,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00fc,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00d6,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x84",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x9c",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\xc2\xa7",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x9f",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa4",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xbc",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x96",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a7 => "\x7c",
+ 0x000000c4 => "\x4a",
+ 0x000000d6 => "\xe0",
+ 0x000000dc => "\x5a",
+ 0x000000df => "\xa1",
+ 0x000000e4 => "\xc0",
+ 0x000000f6 => "\x6a",
+ 0x000000fc => "\xd0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_AT_DE - Conversion routines for EBCDIC_AT_DE
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-AT-DE.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 000000A7 | SECTION SIGN
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm
new file mode 100644
index 0000000..cf34a68
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_AT_DE_A.pm
@@ -0,0 +1,943 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_AT_DE_A.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for EBCDIC-AT-DE-A.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_AT_DE_A;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f6,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00fc,
+ 0x00dc,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00df,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003a,
+ 0x00c4,
+ 0x00d6,
+ 0x0027,
+ 0x003d,
+ 0x00e4,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb6",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xbc",
+ "\xc3\x9c",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x9f",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3a",
+ "\xc3\x84",
+ "\xc3\x96",
+ "\x27",
+ "\x3d",
+ "\xc3\xa4",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000ac => "\x5f",
+ 0x000000c4 => "\x7b",
+ 0x000000d6 => "\x7c",
+ 0x000000dc => "\x5b",
+ 0x000000df => "\x6a",
+ 0x000000e4 => "\x7f",
+ 0x000000f6 => "\x4a",
+ 0x000000fc => "\x5a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_AT_DE_A - Conversion routines for EBCDIC_AT_DE_A
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-AT-DE-A.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 5B | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 7A | 0000003A | COLON
+ 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_CA_FR.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_CA_FR.pm
new file mode 100644
index 0000000..5d76f9b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_CA_FR.pm
@@ -0,0 +1,995 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_CA_FR.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for EBCDIC-CA-FR.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_CA_FR;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0x00e2,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0xfffd,
+ 0x00e0,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0x00ea,
+ 0x00eb,
+ 0xfffd,
+ 0xfffd,
+ 0x00ee,
+ 0x00ef,
+ 0xfffd,
+ 0xfffd,
+ 0x00b4,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0xfffd,
+ 0x00c0,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00c7,
+ 0xfffd,
+ 0x00f9,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0xfffd,
+ 0x00ce,
+ 0x00cf,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0x00f4,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0x00fb,
+ 0x00fc,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b8,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0x00d4,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xc3\xa2",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\xef\xbf\xbd",
+ "\xc3\xa0",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb4",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xef\xbf\xbd",
+ "\xc3\x80",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x87",
+ "\xef\xbf\xbd",
+ "\xc3\xb9",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xef\xbf\xbd",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xc3\xb4",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb8",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xc3\x94",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a8 => "\xa1",
+ 0x000000b4 => "\x5a",
+ 0x000000b8 => "\xe0",
+ 0x000000c0 => "\x64",
+ 0x000000c2 => "\x62",
+ 0x000000c7 => "\x68",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000ce => "\x75",
+ 0x000000cf => "\x76",
+ 0x000000d4 => "\xeb",
+ 0x000000d9 => "\xfd",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000e0 => "\x4a",
+ 0x000000e2 => "\x42",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\xc0",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f4 => "\xcb",
+ 0x000000f9 => "\x6a",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_CA_FR - Conversion routines for EBCDIC_CA_FR
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-CA-FR.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 4A | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 5A | 000000B4 | ACUTE ACCENT
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 75 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 76 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ E0 | 000000B8 | CEDILLA
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO.pm
new file mode 100644
index 0000000..6cdd400
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO.pm
@@ -0,0 +1,954 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_DK_NO.pm,v 1.1 2011-10-12 23:51:29 pertusus Exp $
+
+# Conversion routines for EBCDIC-DK-NO.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_DK_NO;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0023,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a4,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f8,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x00c6,
+ 0x00d8,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00fc,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e6,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e5,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x23",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa4",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb8",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xbc",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa6",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa5",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x4a",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a4 => "\x5a",
+ 0x000000c5 => "\x5b",
+ 0x000000c6 => "\x7b",
+ 0x000000d8 => "\x7c",
+ 0x000000e5 => "\xd0",
+ 0x000000e6 => "\xc0",
+ 0x000000f8 => "\x6a",
+ 0x000000fc => "\xa1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_DK_NO - Conversion routines for EBCDIC_DK_NO
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-DK-NO.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 00000023 | NUMBER SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000A4 | CURRENCY SIGN
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000C6 | LATIN CAPITAL LETTER AE
+ 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E6 | LATIN SMALL LETTER AE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm
new file mode 100644
index 0000000..401e98c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_DK_NO_A.pm
@@ -0,0 +1,943 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_DK_NO_A.pm,v 1.1 2011-10-12 23:51:30 pertusus Exp $
+
+# Conversion routines for EBCDIC-DK-NO-A.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_DK_NO_A;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f8,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e5,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003a,
+ 0x00c6,
+ 0x00d8,
+ 0x0027,
+ 0x003d,
+ 0x00e6,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb8",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa5",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3a",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\x27",
+ "\x3d",
+ "\xc3\xa6",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x000000c5 => "\x5b",
+ 0x000000c6 => "\x7b",
+ 0x000000d8 => "\x7c",
+ 0x000000e5 => "\x5a",
+ 0x000000e6 => "\x7f",
+ 0x000000f8 => "\x4a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_DK_NO_A - Conversion routines for EBCDIC_DK_NO_A
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-DK-NO-A.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 7A | 0000003A | COLON
+ 7B | 000000C6 | LATIN CAPITAL LETTER AE
+ 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000E6 | LATIN SMALL LETTER AE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES.pm
new file mode 100644
index 0000000..5bba813
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_ES.pm,v 1.1 2011-10-12 23:51:31 pertusus Exp $
+
+# Conversion routines for EBCDIC-ES.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_ES;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x20a7,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f1,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x00d1,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\xe2\x82\xa7",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb1",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\xc3\x91",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a2 => "\x4a",
+ 0x000000a8 => "\xa1",
+ 0x000000ac => "\x5f",
+ 0x000000d1 => "\x7b",
+ 0x000000f1 => "\x6a",
+ 0x000020a7 => "\x5b",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_ES - Conversion routines for EBCDIC_ES
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-ES.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000020A7 | PESETA SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_A.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_A.pm
new file mode 100644
index 0000000..709fe60
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_A.pm
@@ -0,0 +1,943 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_ES_A.pm,v 1.1 2011-10-12 23:51:31 pertusus Exp $
+
+# Conversion routines for EBCDIC-ES-A.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_ES_A;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x20a7,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003a,
+ 0x00d1,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x00f1,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\xe2\x82\xa7",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3a",
+ "\xc3\x91",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\xc3\xb1",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a2 => "\x4a",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x000000d1 => "\x7b",
+ 0x000000f1 => "\x7f",
+ 0x000020a7 => "\x5b",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_ES_A - Conversion routines for EBCDIC_ES_A
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-ES-A.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000020A7 | PESETA SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 7A | 0000003A | COLON
+ 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_S.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_S.pm
new file mode 100644
index 0000000..30b3e36
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_ES_S.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_ES_S.pm,v 1.1 2011-10-12 23:51:31 pertusus Exp $
+
+# Conversion routines for EBCDIC-ES-S.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_ES_S;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f1,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x00d1,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb1",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\xc3\x91",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a2 => "\x4a",
+ 0x000000a8 => "\xa1",
+ 0x000000ac => "\x5f",
+ 0x000000d1 => "\x7b",
+ 0x000000f1 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_ES_S - Conversion routines for EBCDIC_ES_S
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-ES-S.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE.pm
new file mode 100644
index 0000000..3b6619a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_FI_SE.pm,v 1.1 2011-10-12 23:51:31 pertusus Exp $
+
+# Conversion routines for EBCDIC-FI-SE.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_FI_SE;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a7,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a4,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x003a,
+ 0x00c4,
+ 0x00d6,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00fc,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e4,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e5,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00c9,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa7",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa4",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x3a",
+ "\xc3\x84",
+ "\xc3\x96",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xbc",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa4",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa5",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x89",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a4 => "\x5a",
+ 0x000000a7 => "\x4a",
+ 0x000000c4 => "\x7b",
+ 0x000000c5 => "\x5b",
+ 0x000000c9 => "\xe0",
+ 0x000000d6 => "\x7c",
+ 0x000000e4 => "\xc0",
+ 0x000000e5 => "\xd0",
+ 0x000000e9 => "\x79",
+ 0x000000f6 => "\x6a",
+ 0x000000fc => "\xa1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_FI_SE - Conversion routines for EBCDIC_FI_SE
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-FI-SE.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A7 | SECTION SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000A4 | CURRENCY SIGN
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 7A | 0000003A | COLON
+ 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm
new file mode 100644
index 0000000..62ba603
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FI_SE_A.pm
@@ -0,0 +1,943 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_FI_SE_A.pm,v 1.1 2011-10-12 23:51:32 pertusus Exp $
+
+# Conversion routines for EBCDIC-FI-SE-A.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_FI_SE_A;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f6,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e5,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003a,
+ 0x00c4,
+ 0x00d6,
+ 0x0027,
+ 0x003d,
+ 0x00e4,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb6",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa5",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3a",
+ "\xc3\x84",
+ "\xc3\x96",
+ "\x27",
+ "\x3d",
+ "\xc3\xa4",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x000000c4 => "\x7b",
+ 0x000000c5 => "\x5b",
+ 0x000000d6 => "\x7c",
+ 0x000000e4 => "\x7f",
+ 0x000000e5 => "\x5a",
+ 0x000000f6 => "\x4a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_FI_SE_A - Conversion routines for EBCDIC_FI_SE_A
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-FI-SE-A.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 7A | 0000003A | COLON
+ 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FR.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FR.pm
new file mode 100644
index 0000000..46a878d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_FR.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_FR.pm,v 1.1 2011-10-12 23:51:32 pertusus Exp $
+
+# Conversion routines for EBCDIC-FR.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_FR;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b0,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a7,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f9,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x00a3,
+ 0x00e0,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa7",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb9",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\xc2\xa3",
+ "\xc3\xa0",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x7b",
+ 0x000000a7 => "\x5a",
+ 0x000000a8 => "\xa1",
+ 0x000000b0 => "\x4a",
+ 0x000000e0 => "\x7c",
+ 0x000000e7 => "\xe0",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\xc0",
+ 0x000000f9 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_FR - Conversion routines for EBCDIC_FR
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-FR.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000B0 | DEGREE SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000A7 | SECTION SIGN
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000A3 | POUND SIGN
+ 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm
new file mode 100644
index 0000000..66fd9ba
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IS_FRISS.pm
@@ -0,0 +1,924 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_IS_FRISS.pm,v 1.1 2011-10-12 23:51:32 pertusus Exp $
+
+# Conversion routines for EBCDIC-IS-FRISS.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_IS_FRISS;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e1,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003c,
+ 0x002e,
+ 0x00c1,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x00d0,
+ 0x00e9,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ed,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0x0025,
+ 0x00c9,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x0026,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0023,
+ 0x2018,
+ 0x002c,
+ 0x00de,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00cd,
+ 0xfffd,
+ 0xfffd,
+ 0x007c,
+ 0x00f0,
+ 0x003a,
+ 0x00c6,
+ 0x00d6,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00dd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b0,
+ 0x00f6,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0x005b,
+ 0x00fd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005d,
+ 0x00a8,
+ 0xfffd,
+ 0xfffd,
+ 0x00fe,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f3,
+ 0xfffd,
+ 0x00e6,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00fa,
+ 0xfffd,
+ 0x00b4,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00d3,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00da,
+ 0x007f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa1",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3c",
+ "\x2e",
+ "\xc3\x81",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\xc3\x90",
+ "\xc3\xa9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xad",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\x25",
+ "\xc3\x89",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x26",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x23",
+ "\xe2\x80\x98",
+ "\x2c",
+ "\xc3\x9e",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x8d",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7c",
+ "\xc3\xb0",
+ "\x3a",
+ "\xc3\x86",
+ "\xc3\x96",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x9d",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\xc3\xb6",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\xc3\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\xc2\xa8",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xbe",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb3",
+ "\xef\xbf\xbd",
+ "\xc3\xa6",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xba",
+ "\xef\xbf\xbd",
+ "\xc2\xb4",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x93",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x9a",
+ "\x7f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x69",
+ 0x00000024 => "\x59",
+ 0x00000025 => "\x5a",
+ 0x00000026 => "\x5f",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4a",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xac",
+ 0x0000005d => "\xbc",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x78",
+ 0x0000007f => "\xff",
+ 0x000000a8 => "\xbd",
+ 0x000000b0 => "\xa0",
+ 0x000000b4 => "\xe0",
+ 0x000000c1 => "\x4c",
+ 0x000000c6 => "\x7b",
+ 0x000000c9 => "\x5b",
+ 0x000000cd => "\x75",
+ 0x000000d0 => "\x50",
+ 0x000000d3 => "\xee",
+ 0x000000d6 => "\x7c",
+ 0x000000da => "\xfe",
+ 0x000000dd => "\x8d",
+ 0x000000de => "\x6c",
+ 0x000000e1 => "\x45",
+ 0x000000e6 => "\xd0",
+ 0x000000e9 => "\x51",
+ 0x000000ed => "\x55",
+ 0x000000f0 => "\x79",
+ 0x000000f3 => "\xce",
+ 0x000000f6 => "\xa1",
+ 0x000000fa => "\xde",
+ 0x000000fd => "\xad",
+ 0x000000fe => "\xc0",
+ 0x00002018 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_IS_FRISS - Conversion routines for EBCDIC_IS_FRISS
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-IS-FRISS.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: Skyrsuvelar Rikisins og Reykjavikurborgar, feb 1982
+ alias FRISS
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 40 | 00000020 | SPACE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 4A | 0000003C | LESS-THAN SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 59 | 00000024 | DOLLAR SIGN
+ 5A | 00000025 | PERCENT SIGN
+ 5B | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 00000026 | AMPERSAND
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 69 | 00000023 | NUMBER SIGN
+ 6A | 00002018 | LEFT SINGLE QUOTATION MARK
+ 6B | 0000002C | COMMA
+ 6C | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 78 | 0000007C | VERTICAL LINE
+ 79 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 7A | 0000003A | COLON
+ 7B | 000000C6 | LATIN CAPITAL LETTER AE
+ 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8D | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A0 | 000000B0 | DEGREE SIGN
+ A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AC | 0000005B | LEFT SQUARE BRACKET
+ AD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ BC | 0000005D | RIGHT SQUARE BRACKET
+ BD | 000000A8 | DIAERESIS
+ C0 | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ D0 | 000000E6 | LATIN SMALL LETTER AE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ E0 | 000000B4 | ACUTE ACCENT
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IT.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IT.pm
new file mode 100644
index 0000000..a4761a3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_IT.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_IT.pm,v 1.1 2011-10-12 23:51:32 pertusus Exp $
+
+# Conversion routines for EBCDIC-IT.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_IT;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b0,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f2,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f9,
+ 0x003a,
+ 0x00a3,
+ 0x00a7,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ec,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e0,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb2",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb9",
+ "\x3a",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xac",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa0",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x7b",
+ 0x000000a7 => "\x7c",
+ 0x000000b0 => "\x4a",
+ 0x000000e0 => "\xc0",
+ 0x000000e7 => "\xe0",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\x5a",
+ 0x000000ec => "\xa1",
+ 0x000000f2 => "\x6a",
+ 0x000000f9 => "\x79",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_IT - Conversion routines for EBCDIC_IT
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-IT.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000B0 | DEGREE SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 7A | 0000003A | COLON
+ 7B | 000000A3 | POUND SIGN
+ 7C | 000000A7 | SECTION SIGN
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_PT.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_PT.pm
new file mode 100644
index 0000000..ca476d6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_PT.pm
@@ -0,0 +1,943 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_PT.pm,v 1.1 2011-10-12 23:51:32 pertusus Exp $
+
+# Conversion routines for EBCDIC-PT.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_PT;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f5,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x00c3,
+ 0x00d5,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e3,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b4,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00c7,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb5",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa3",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb4",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x87",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000b4 => "\xd0",
+ 0x000000c3 => "\x7b",
+ 0x000000c7 => "\xe0",
+ 0x000000d5 => "\x7c",
+ 0x000000e3 => "\xc0",
+ 0x000000e7 => "\xa1",
+ 0x000000f5 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_PT - Conversion routines for EBCDIC_PT
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-PT.
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 7C | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000B4 | ACUTE ACCENT
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_UK.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_UK.pm
new file mode 100644
index 0000000..55e115a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_UK.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_UK.pm,v 1.1 2011-10-12 23:51:33 pertusus Exp $
+
+# Conversion routines for EBCDIC-UK.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_UK;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x00a3,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x203e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\xc2\xa3",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xbe",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x4a",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x5b",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x0000203e => "\xa1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_UK - Conversion routines for EBCDIC_UK
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-UK.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 00000024 | DOLLAR SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000000A3 | POUND SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 0000203E | OVERLINE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_US.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_US.pm
new file mode 100644
index 0000000..0fd2ea6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/EBCDIC_US.pm
@@ -0,0 +1,953 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: EBCDIC_US.pm,v 1.1 2011-10-12 23:51:33 pertusus Exp $
+
+# Conversion routines for EBCDIC-US.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::EBCDIC_US;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a2 => "\x4a",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::EBCDIC_US - Conversion routines for EBCDIC_US
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for EBCDIC-US.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ECMA_CYRILLIC.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ECMA_CYRILLIC.pm
new file mode 100644
index 0000000..f1f90fd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ECMA_CYRILLIC.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ECMA_CYRILLIC.pm,v 1.1 2011-10-12 23:51:33 pertusus Exp $
+
+# Conversion routines for ECMA-CYRILLIC.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ECMA_CYRILLIC;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0452,
+ 0x0453,
+ 0x0451,
+ 0x0454,
+ 0x0455,
+ 0x0456,
+ 0x0457,
+ 0x0458,
+ 0x0459,
+ 0x045a,
+ 0x045b,
+ 0x045c,
+ 0x00ad,
+ 0x045e,
+ 0x045f,
+ 0x2116,
+ 0x0402,
+ 0x0403,
+ 0x0401,
+ 0x0404,
+ 0x0405,
+ 0x0406,
+ 0x0407,
+ 0x0408,
+ 0x0409,
+ 0x040a,
+ 0x040b,
+ 0x040c,
+ 0x00a4,
+ 0x040e,
+ 0x040f,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x042a,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xd1\x92",
+ "\xd1\x93",
+ "\xd1\x91",
+ "\xd1\x94",
+ "\xd1\x95",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xd1\x98",
+ "\xd1\x99",
+ "\xd1\x9a",
+ "\xd1\x9b",
+ "\xd1\x9c",
+ "\xc2\xad",
+ "\xd1\x9e",
+ "\xd1\x9f",
+ "\xe2\x84\x96",
+ "\xd0\x82",
+ "\xd0\x83",
+ "\xd0\x81",
+ "\xd0\x84",
+ "\xd0\x85",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xd0\x88",
+ "\xd0\x89",
+ "\xd0\x8a",
+ "\xd0\x8b",
+ "\xd0\x8c",
+ "\xc2\xa4",
+ "\xd0\x8e",
+ "\xd0\x8f",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xd0\xaa",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xbd",
+ 0x000000ad => "\xad",
+ 0x00000401 => "\xb3",
+ 0x00000402 => "\xb1",
+ 0x00000403 => "\xb2",
+ 0x00000404 => "\xb4",
+ 0x00000405 => "\xb5",
+ 0x00000406 => "\xb6",
+ 0x00000407 => "\xb7",
+ 0x00000408 => "\xb8",
+ 0x00000409 => "\xb9",
+ 0x0000040a => "\xba",
+ 0x0000040b => "\xbb",
+ 0x0000040c => "\xbc",
+ 0x0000040e => "\xbe",
+ 0x0000040f => "\xbf",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\xff",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+ 0x00000451 => "\xa3",
+ 0x00000452 => "\xa1",
+ 0x00000453 => "\xa2",
+ 0x00000454 => "\xa4",
+ 0x00000455 => "\xa5",
+ 0x00000456 => "\xa6",
+ 0x00000457 => "\xa7",
+ 0x00000458 => "\xa8",
+ 0x00000459 => "\xa9",
+ 0x0000045a => "\xaa",
+ 0x0000045b => "\xab",
+ 0x0000045c => "\xac",
+ 0x0000045e => "\xae",
+ 0x0000045f => "\xaf",
+ 0x00002116 => "\xb0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ECMA_CYRILLIC - Conversion routines for ECMA_CYRILLIC
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ECMA-CYRILLIC.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-111
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian)
+ A2 | 00000453 | CYRILLIC SMALL LETTER GJE
+ A3 | 00000451 | CYRILLIC SMALL LETTER IO
+ A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ A5 | 00000455 | CYRILLIC SMALL LETTER DZE
+ A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ A7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ A8 | 00000458 | CYRILLIC SMALL LETTER JE
+ A9 | 00000459 | CYRILLIC SMALL LETTER LJE
+ AA | 0000045A | CYRILLIC SMALL LETTER NJE
+ AB | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+ AC | 0000045C | CYRILLIC SMALL LETTER KJE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+ AF | 0000045F | CYRILLIC SMALL LETTER DZHE
+ B0 | 00002116 | NUMERO SIGN
+ B1 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+ B2 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ B3 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B5 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ B7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ B8 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ B9 | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ BA | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ BB | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+ BC | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ BD | 000000A4 | CURRENCY SIGN
+ BE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+ BF | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm
new file mode 100644
index 0000000..ba1b916
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_ACADEMY.pm
@@ -0,0 +1,1135 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GEORGIAN_ACADEMY.pm,v 1.1 2011-10-12 23:51:33 pertusus Exp $
+
+# Conversion routines for GEORGIAN-ACADEMY.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GEORGIAN_ACADEMY;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x02dc,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0x009d,
+ 0x009e,
+ 0x0178,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x10d0,
+ 0x10d1,
+ 0x10d2,
+ 0x10d3,
+ 0x10d4,
+ 0x10d5,
+ 0x10d6,
+ 0x10d7,
+ 0x10d8,
+ 0x10d9,
+ 0x10da,
+ 0x10db,
+ 0x10dc,
+ 0x10dd,
+ 0x10de,
+ 0x10df,
+ 0x10e0,
+ 0x10e1,
+ 0x10e2,
+ 0x10e3,
+ 0x10e4,
+ 0x10e5,
+ 0x10e6,
+ 0x10e7,
+ 0x10e8,
+ 0x10e9,
+ 0x10ea,
+ 0x10eb,
+ 0x10ec,
+ 0x10ed,
+ 0x10ee,
+ 0x10ef,
+ 0x10f0,
+ 0x10f1,
+ 0x10f2,
+ 0x10f3,
+ 0x10f4,
+ 0x10f5,
+ 0x10f6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xcb\x9c",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xe1\x83\x90",
+ "\xe1\x83\x91",
+ "\xe1\x83\x92",
+ "\xe1\x83\x93",
+ "\xe1\x83\x94",
+ "\xe1\x83\x95",
+ "\xe1\x83\x96",
+ "\xe1\x83\x97",
+ "\xe1\x83\x98",
+ "\xe1\x83\x99",
+ "\xe1\x83\x9a",
+ "\xe1\x83\x9b",
+ "\xe1\x83\x9c",
+ "\xe1\x83\x9d",
+ "\xe1\x83\x9e",
+ "\xe1\x83\x9f",
+ "\xe1\x83\xa0",
+ "\xe1\x83\xa1",
+ "\xe1\x83\xa2",
+ "\xe1\x83\xa3",
+ "\xe1\x83\xa4",
+ "\xe1\x83\xa5",
+ "\xe1\x83\xa6",
+ "\xe1\x83\xa7",
+ "\xe1\x83\xa8",
+ "\xe1\x83\xa9",
+ "\xe1\x83\xaa",
+ "\xe1\x83\xab",
+ "\xe1\x83\xac",
+ "\xe1\x83\xad",
+ "\xe1\x83\xae",
+ "\xe1\x83\xaf",
+ "\xe1\x83\xb0",
+ "\xe1\x83\xb1",
+ "\xe1\x83\xb2",
+ "\xe1\x83\xb3",
+ "\xe1\x83\xb4",
+ "\xe1\x83\xb5",
+ "\xe1\x83\xb6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000178 => "\x9f",
+ 0x00000192 => "\x83",
+ 0x000002c6 => "\x88",
+ 0x000002dc => "\x98",
+ 0x000010d0 => "\xc0",
+ 0x000010d1 => "\xc1",
+ 0x000010d2 => "\xc2",
+ 0x000010d3 => "\xc3",
+ 0x000010d4 => "\xc4",
+ 0x000010d5 => "\xc5",
+ 0x000010d6 => "\xc6",
+ 0x000010d7 => "\xc7",
+ 0x000010d8 => "\xc8",
+ 0x000010d9 => "\xc9",
+ 0x000010da => "\xca",
+ 0x000010db => "\xcb",
+ 0x000010dc => "\xcc",
+ 0x000010dd => "\xcd",
+ 0x000010de => "\xce",
+ 0x000010df => "\xcf",
+ 0x000010e0 => "\xd0",
+ 0x000010e1 => "\xd1",
+ 0x000010e2 => "\xd2",
+ 0x000010e3 => "\xd3",
+ 0x000010e4 => "\xd4",
+ 0x000010e5 => "\xd5",
+ 0x000010e6 => "\xd6",
+ 0x000010e7 => "\xd7",
+ 0x000010e8 => "\xd8",
+ 0x000010e9 => "\xd9",
+ 0x000010ea => "\xda",
+ 0x000010eb => "\xdb",
+ 0x000010ec => "\xdc",
+ 0x000010ed => "\xdd",
+ 0x000010ee => "\xde",
+ 0x000010ef => "\xdf",
+ 0x000010f0 => "\xe0",
+ 0x000010f1 => "\xe1",
+ 0x000010f2 => "\xe2",
+ 0x000010f3 => "\xe3",
+ 0x000010f4 => "\xe4",
+ 0x000010f5 => "\xe5",
+ 0x000010f6 => "\xe6",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GEORGIAN_ACADEMY - Conversion routines for GEORGIAN-ACADEMY
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GEORGIAN-ACADEMY.
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000002DC | SMALL TILDE
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000010D0 | GEORGIAN LETTER AN
+ C1 | 000010D1 | GEORGIAN LETTER BAN
+ C2 | 000010D2 | GEORGIAN LETTER GAN
+ C3 | 000010D3 | GEORGIAN LETTER DON
+ C4 | 000010D4 | GEORGIAN LETTER EN
+ C5 | 000010D5 | GEORGIAN LETTER VIN
+ C6 | 000010D6 | GEORGIAN LETTER ZEN
+ C7 | 000010D7 | GEORGIAN LETTER TAN
+ C8 | 000010D8 | GEORGIAN LETTER IN
+ C9 | 000010D9 | GEORGIAN LETTER KAN
+ CA | 000010DA | GEORGIAN LETTER LAS
+ CB | 000010DB | GEORGIAN LETTER MAN
+ CC | 000010DC | GEORGIAN LETTER NAR
+ CD | 000010DD | GEORGIAN LETTER ON
+ CE | 000010DE | GEORGIAN LETTER PAR
+ CF | 000010DF | GEORGIAN LETTER ZHAR
+ D0 | 000010E0 | GEORGIAN LETTER RAE
+ D1 | 000010E1 | GEORGIAN LETTER SAN
+ D2 | 000010E2 | GEORGIAN LETTER TAR
+ D3 | 000010E3 | GEORGIAN LETTER UN
+ D4 | 000010E4 | GEORGIAN LETTER PHAR
+ D5 | 000010E5 | GEORGIAN LETTER KHAR
+ D6 | 000010E6 | GEORGIAN LETTER GHAN
+ D7 | 000010E7 | GEORGIAN LETTER QAR
+ D8 | 000010E8 | GEORGIAN LETTER SHIN
+ D9 | 000010E9 | GEORGIAN LETTER CHIN
+ DA | 000010EA | GEORGIAN LETTER CAN
+ DB | 000010EB | GEORGIAN LETTER JIL
+ DC | 000010EC | GEORGIAN LETTER CIL
+ DD | 000010ED | GEORGIAN LETTER CHAR
+ DE | 000010EE | GEORGIAN LETTER XAN
+ DF | 000010EF | GEORGIAN LETTER JHAN
+ E0 | 000010F0 | GEORGIAN LETTER HAE
+ E1 | 000010F1 | GEORGIAN LETTER HE
+ E2 | 000010F2 | GEORGIAN LETTER HIE
+ E3 | 000010F3 | GEORGIAN LETTER WE
+ E4 | 000010F4 | GEORGIAN LETTER HAR
+ E5 | 000010F5 | GEORGIAN LETTER HOE
+ E6 | 000010F6 | GEORGIAN LETTER FI
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_PS.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_PS.pm
new file mode 100644
index 0000000..54176d6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GEORGIAN_PS.pm
@@ -0,0 +1,1135 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GEORGIAN_PS.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for GEORGIAN-PS.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GEORGIAN_PS;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x201a,
+ 0x0192,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x02dc,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0x009d,
+ 0x009e,
+ 0x0178,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x10d0,
+ 0x10d1,
+ 0x10d2,
+ 0x10d3,
+ 0x10d4,
+ 0x10d5,
+ 0x10d6,
+ 0x10f1,
+ 0x10d7,
+ 0x10d8,
+ 0x10d9,
+ 0x10da,
+ 0x10db,
+ 0x10dc,
+ 0x10f2,
+ 0x10dd,
+ 0x10de,
+ 0x10df,
+ 0x10e0,
+ 0x10e1,
+ 0x10e2,
+ 0x10f3,
+ 0x10e3,
+ 0x10e4,
+ 0x10e5,
+ 0x10e6,
+ 0x10e7,
+ 0x10e8,
+ 0x10e9,
+ 0x10ea,
+ 0x10eb,
+ 0x10ec,
+ 0x10ed,
+ 0x10ee,
+ 0x10f4,
+ 0x10ef,
+ 0x10f0,
+ 0x10f5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xe2\x80\x9a",
+ "\xc6\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xcb\x9c",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xe1\x83\x90",
+ "\xe1\x83\x91",
+ "\xe1\x83\x92",
+ "\xe1\x83\x93",
+ "\xe1\x83\x94",
+ "\xe1\x83\x95",
+ "\xe1\x83\x96",
+ "\xe1\x83\xb1",
+ "\xe1\x83\x97",
+ "\xe1\x83\x98",
+ "\xe1\x83\x99",
+ "\xe1\x83\x9a",
+ "\xe1\x83\x9b",
+ "\xe1\x83\x9c",
+ "\xe1\x83\xb2",
+ "\xe1\x83\x9d",
+ "\xe1\x83\x9e",
+ "\xe1\x83\x9f",
+ "\xe1\x83\xa0",
+ "\xe1\x83\xa1",
+ "\xe1\x83\xa2",
+ "\xe1\x83\xb3",
+ "\xe1\x83\xa3",
+ "\xe1\x83\xa4",
+ "\xe1\x83\xa5",
+ "\xe1\x83\xa6",
+ "\xe1\x83\xa7",
+ "\xe1\x83\xa8",
+ "\xe1\x83\xa9",
+ "\xe1\x83\xaa",
+ "\xe1\x83\xab",
+ "\xe1\x83\xac",
+ "\xe1\x83\xad",
+ "\xe1\x83\xae",
+ "\xe1\x83\xb4",
+ "\xe1\x83\xaf",
+ "\xe1\x83\xb0",
+ "\xe1\x83\xb5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000178 => "\x9f",
+ 0x00000192 => "\x83",
+ 0x000002c6 => "\x88",
+ 0x000002dc => "\x98",
+ 0x000010d0 => "\xc0",
+ 0x000010d1 => "\xc1",
+ 0x000010d2 => "\xc2",
+ 0x000010d3 => "\xc3",
+ 0x000010d4 => "\xc4",
+ 0x000010d5 => "\xc5",
+ 0x000010d6 => "\xc6",
+ 0x000010d7 => "\xc8",
+ 0x000010d8 => "\xc9",
+ 0x000010d9 => "\xca",
+ 0x000010da => "\xcb",
+ 0x000010db => "\xcc",
+ 0x000010dc => "\xcd",
+ 0x000010dd => "\xcf",
+ 0x000010de => "\xd0",
+ 0x000010df => "\xd1",
+ 0x000010e0 => "\xd2",
+ 0x000010e1 => "\xd3",
+ 0x000010e2 => "\xd4",
+ 0x000010e3 => "\xd6",
+ 0x000010e4 => "\xd7",
+ 0x000010e5 => "\xd8",
+ 0x000010e6 => "\xd9",
+ 0x000010e7 => "\xda",
+ 0x000010e8 => "\xdb",
+ 0x000010e9 => "\xdc",
+ 0x000010ea => "\xdd",
+ 0x000010eb => "\xde",
+ 0x000010ec => "\xdf",
+ 0x000010ed => "\xe0",
+ 0x000010ee => "\xe1",
+ 0x000010ef => "\xe3",
+ 0x000010f0 => "\xe4",
+ 0x000010f1 => "\xc7",
+ 0x000010f2 => "\xce",
+ 0x000010f3 => "\xd5",
+ 0x000010f4 => "\xe2",
+ 0x000010f5 => "\xe5",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GEORGIAN_PS - Conversion routines for GEORGIAN-PS
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GEORGIAN-PS.
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000002DC | SMALL TILDE
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000010D0 | GEORGIAN LETTER AN
+ C1 | 000010D1 | GEORGIAN LETTER BAN
+ C2 | 000010D2 | GEORGIAN LETTER GAN
+ C3 | 000010D3 | GEORGIAN LETTER DON
+ C4 | 000010D4 | GEORGIAN LETTER EN
+ C5 | 000010D5 | GEORGIAN LETTER VIN
+ C6 | 000010D6 | GEORGIAN LETTER ZEN
+ C7 | 000010F1 | GEORGIAN LETTER HE
+ C8 | 000010D7 | GEORGIAN LETTER TAN
+ C9 | 000010D8 | GEORGIAN LETTER IN
+ CA | 000010D9 | GEORGIAN LETTER KAN
+ CB | 000010DA | GEORGIAN LETTER LAS
+ CC | 000010DB | GEORGIAN LETTER MAN
+ CD | 000010DC | GEORGIAN LETTER NAR
+ CE | 000010F2 | GEORGIAN LETTER HIE
+ CF | 000010DD | GEORGIAN LETTER ON
+ D0 | 000010DE | GEORGIAN LETTER PAR
+ D1 | 000010DF | GEORGIAN LETTER ZHAR
+ D2 | 000010E0 | GEORGIAN LETTER RAE
+ D3 | 000010E1 | GEORGIAN LETTER SAN
+ D4 | 000010E2 | GEORGIAN LETTER TAR
+ D5 | 000010F3 | GEORGIAN LETTER WE
+ D6 | 000010E3 | GEORGIAN LETTER UN
+ D7 | 000010E4 | GEORGIAN LETTER PHAR
+ D8 | 000010E5 | GEORGIAN LETTER KHAR
+ D9 | 000010E6 | GEORGIAN LETTER GHAN
+ DA | 000010E7 | GEORGIAN LETTER QAR
+ DB | 000010E8 | GEORGIAN LETTER SHIN
+ DC | 000010E9 | GEORGIAN LETTER CHIN
+ DD | 000010EA | GEORGIAN LETTER CAN
+ DE | 000010EB | GEORGIAN LETTER JIL
+ DF | 000010EC | GEORGIAN LETTER CIL
+ E0 | 000010ED | GEORGIAN LETTER CHAR
+ E1 | 000010EE | GEORGIAN LETTER XAN
+ E2 | 000010F4 | GEORGIAN LETTER HAR
+ E3 | 000010EF | GEORGIAN LETTER JHAN
+ E4 | 000010F0 | GEORGIAN LETTER HAE
+ E5 | 000010F5 | GEORGIAN LETTER HOE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GOST_19768_74.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GOST_19768_74.pm
new file mode 100644
index 0000000..c96e0a1
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GOST_19768_74.pm
@@ -0,0 +1,1091 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GOST_19768_74.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for GOST_19768-74.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GOST_19768_74;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0401,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ad,
+ 0xfffd,
+ 0xfffd,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x044f,
+ 0xfffd,
+ 0x0451,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xd0\x81",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xd1\x8f",
+ "\xef\xbf\xbd",
+ "\xd1\x91",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000ad => "\xad",
+ 0x00000401 => "\xa1",
+ 0x00000410 => "\xb0",
+ 0x00000411 => "\xb1",
+ 0x00000412 => "\xb2",
+ 0x00000413 => "\xb3",
+ 0x00000414 => "\xb4",
+ 0x00000415 => "\xb5",
+ 0x00000416 => "\xb6",
+ 0x00000417 => "\xb7",
+ 0x00000418 => "\xb8",
+ 0x00000419 => "\xb9",
+ 0x0000041a => "\xba",
+ 0x0000041b => "\xbb",
+ 0x0000041c => "\xbc",
+ 0x0000041d => "\xbd",
+ 0x0000041e => "\xbe",
+ 0x0000041f => "\xbf",
+ 0x00000420 => "\xc0",
+ 0x00000421 => "\xc1",
+ 0x00000422 => "\xc2",
+ 0x00000423 => "\xc3",
+ 0x00000424 => "\xc4",
+ 0x00000425 => "\xc5",
+ 0x00000426 => "\xc6",
+ 0x00000427 => "\xc7",
+ 0x00000428 => "\xc8",
+ 0x00000429 => "\xc9",
+ 0x0000042a => "\xca",
+ 0x0000042b => "\xcb",
+ 0x0000042c => "\xcc",
+ 0x0000042d => "\xcd",
+ 0x0000042e => "\xce",
+ 0x0000042f => "\xcf",
+ 0x00000430 => "\xd0",
+ 0x00000431 => "\xd1",
+ 0x00000432 => "\xd2",
+ 0x00000433 => "\xd3",
+ 0x00000434 => "\xd4",
+ 0x00000435 => "\xd5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xd7",
+ 0x00000438 => "\xd8",
+ 0x00000439 => "\xd9",
+ 0x0000043a => "\xda",
+ 0x0000043b => "\xdb",
+ 0x0000043c => "\xdc",
+ 0x0000043d => "\xdd",
+ 0x0000043e => "\xde",
+ 0x0000043f => "\xdf",
+ 0x00000440 => "\xe0",
+ 0x00000441 => "\xe1",
+ 0x00000442 => "\xe2",
+ 0x00000443 => "\xe3",
+ 0x00000444 => "\xe4",
+ 0x00000445 => "\xe5",
+ 0x00000446 => "\xe6",
+ 0x00000447 => "\xe7",
+ 0x00000448 => "\xe8",
+ 0x00000449 => "\xe9",
+ 0x0000044a => "\xea",
+ 0x0000044b => "\xeb",
+ 0x0000044c => "\xec",
+ 0x0000044d => "\xed",
+ 0x0000044e => "\xee",
+ 0x0000044f => "\xef",
+ 0x00000451 => "\xf1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GOST_19768_74 - Conversion routines for GOST_19768_74
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GOST_19768-74.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ST_SEV_358-88
+ alias ISO-IR-153
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ AD | 000000AD | SOFT HYPHEN
+ B0 | 00000410 | CYRILLIC CAPITAL LETTER A
+ B1 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ B2 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ B3 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ B4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ B5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ B6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ B7 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ B8 | 00000418 | CYRILLIC CAPITAL LETTER I
+ B9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ BA | 0000041A | CYRILLIC CAPITAL LETTER KA
+ BB | 0000041B | CYRILLIC CAPITAL LETTER EL
+ BC | 0000041C | CYRILLIC CAPITAL LETTER EM
+ BD | 0000041D | CYRILLIC CAPITAL LETTER EN
+ BE | 0000041E | CYRILLIC CAPITAL LETTER O
+ BF | 0000041F | CYRILLIC CAPITAL LETTER PE
+ C0 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ C1 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ C2 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ C3 | 00000423 | CYRILLIC CAPITAL LETTER U
+ C4 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ C5 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ C6 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ C7 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ C8 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ C9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ CA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ CB | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ CC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ CD | 0000042D | CYRILLIC CAPITAL LETTER E
+ CE | 0000042E | CYRILLIC CAPITAL LETTER YU
+ CF | 0000042F | CYRILLIC CAPITAL LETTER YA
+ D0 | 00000430 | CYRILLIC SMALL LETTER A
+ D1 | 00000431 | CYRILLIC SMALL LETTER BE
+ D2 | 00000432 | CYRILLIC SMALL LETTER VE
+ D3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ D4 | 00000434 | CYRILLIC SMALL LETTER DE
+ D5 | 00000435 | CYRILLIC SMALL LETTER IE
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ D8 | 00000438 | CYRILLIC SMALL LETTER I
+ D9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ DA | 0000043A | CYRILLIC SMALL LETTER KA
+ DB | 0000043B | CYRILLIC SMALL LETTER EL
+ DC | 0000043C | CYRILLIC SMALL LETTER EM
+ DD | 0000043D | CYRILLIC SMALL LETTER EN
+ DE | 0000043E | CYRILLIC SMALL LETTER O
+ DF | 0000043F | CYRILLIC SMALL LETTER PE
+ E0 | 00000440 | CYRILLIC SMALL LETTER ER
+ E1 | 00000441 | CYRILLIC SMALL LETTER ES
+ E2 | 00000442 | CYRILLIC SMALL LETTER TE
+ E3 | 00000443 | CYRILLIC SMALL LETTER U
+ E4 | 00000444 | CYRILLIC SMALL LETTER EF
+ E5 | 00000445 | CYRILLIC SMALL LETTER HA
+ E6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ E7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ E8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ EB | 0000044B | CYRILLIC SMALL LETTER YERU
+ EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ ED | 0000044D | CYRILLIC SMALL LETTER E
+ EE | 0000044E | CYRILLIC SMALL LETTER YU
+ EF | 0000044F | CYRILLIC SMALL LETTER YA
+ F1 | 00000451 | CYRILLIC SMALL LETTER IO
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7.pm
new file mode 100644
index 0000000..22f3f53
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7.pm
@@ -0,0 +1,885 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GREEK7.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for GREEK7.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GREEK7;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0xfffd,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0xfffd,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0xfffd,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c3,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c2,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x203e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\xef\xbf\xbd",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xef\xbf\xbd",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xef\xbf\xbd",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x82",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\xe2\x80\xbe",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\x24",
+ 0x00000391 => "\x41",
+ 0x00000392 => "\x42",
+ 0x00000393 => "\x43",
+ 0x00000394 => "\x44",
+ 0x00000395 => "\x45",
+ 0x00000396 => "\x46",
+ 0x00000397 => "\x47",
+ 0x00000398 => "\x48",
+ 0x00000399 => "\x49",
+ 0x0000039a => "\x4b",
+ 0x0000039b => "\x4c",
+ 0x0000039c => "\x4d",
+ 0x0000039d => "\x4e",
+ 0x0000039e => "\x4f",
+ 0x0000039f => "\x50",
+ 0x000003a0 => "\x51",
+ 0x000003a1 => "\x52",
+ 0x000003a3 => "\x53",
+ 0x000003a4 => "\x54",
+ 0x000003a5 => "\x55",
+ 0x000003a6 => "\x56",
+ 0x000003a7 => "\x58",
+ 0x000003a8 => "\x59",
+ 0x000003a9 => "\x5a",
+ 0x000003b1 => "\x61",
+ 0x000003b2 => "\x62",
+ 0x000003b3 => "\x63",
+ 0x000003b4 => "\x64",
+ 0x000003b5 => "\x65",
+ 0x000003b6 => "\x66",
+ 0x000003b7 => "\x67",
+ 0x000003b8 => "\x68",
+ 0x000003b9 => "\x69",
+ 0x000003ba => "\x6b",
+ 0x000003bb => "\x6c",
+ 0x000003bc => "\x6d",
+ 0x000003bd => "\x6e",
+ 0x000003be => "\x6f",
+ 0x000003bf => "\x70",
+ 0x000003c0 => "\x71",
+ 0x000003c1 => "\x72",
+ 0x000003c2 => "\x77",
+ 0x000003c3 => "\x73",
+ 0x000003c4 => "\x74",
+ 0x000003c5 => "\x75",
+ 0x000003c6 => "\x76",
+ 0x000003c7 => "\x78",
+ 0x000003c8 => "\x79",
+ 0x000003c9 => "\x7a",
+ 0x0000203e => "\x7e",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GREEK7 - Conversion routines for GREEK7
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GREEK7.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-88
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 42 | 00000392 | GREEK CAPITAL LETTER BETA
+ 43 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 44 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 45 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 46 | 00000396 | GREEK CAPITAL LETTER ZETA
+ 47 | 00000397 | GREEK CAPITAL LETTER ETA
+ 48 | 00000398 | GREEK CAPITAL LETTER THETA
+ 49 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 4B | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 4C | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 4D | 0000039C | GREEK CAPITAL LETTER MU
+ 4E | 0000039D | GREEK CAPITAL LETTER NU
+ 4F | 0000039E | GREEK CAPITAL LETTER XI
+ 50 | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 51 | 000003A0 | GREEK CAPITAL LETTER PI
+ 52 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 53 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 54 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 55 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 56 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 58 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 59 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 5A | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 000003B1 | GREEK SMALL LETTER ALPHA
+ 62 | 000003B2 | GREEK SMALL LETTER BETA
+ 63 | 000003B3 | GREEK SMALL LETTER GAMMA
+ 64 | 000003B4 | GREEK SMALL LETTER DELTA
+ 65 | 000003B5 | GREEK SMALL LETTER EPSILON
+ 66 | 000003B6 | GREEK SMALL LETTER ZETA
+ 67 | 000003B7 | GREEK SMALL LETTER ETA
+ 68 | 000003B8 | GREEK SMALL LETTER THETA
+ 69 | 000003B9 | GREEK SMALL LETTER IOTA
+ 6B | 000003BA | GREEK SMALL LETTER KAPPA
+ 6C | 000003BB | GREEK SMALL LETTER LAMDA
+ 6D | 000003BC | GREEK SMALL LETTER MU
+ 6E | 000003BD | GREEK SMALL LETTER NU
+ 6F | 000003BE | GREEK SMALL LETTER XI
+ 70 | 000003BF | GREEK SMALL LETTER OMICRON
+ 71 | 000003C0 | GREEK SMALL LETTER PI
+ 72 | 000003C1 | GREEK SMALL LETTER RHO
+ 73 | 000003C3 | GREEK SMALL LETTER SIGMA
+ 74 | 000003C4 | GREEK SMALL LETTER TAU
+ 75 | 000003C5 | GREEK SMALL LETTER UPSILON
+ 76 | 000003C6 | GREEK SMALL LETTER PHI
+ 77 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ 78 | 000003C7 | GREEK SMALL LETTER CHI
+ 79 | 000003C8 | GREEK SMALL LETTER PSI
+ 7A | 000003C9 | GREEK SMALL LETTER OMEGA
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000203E | OVERLINE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7_OLD.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7_OLD.pm
new file mode 100644
index 0000000..840ec21
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK7_OLD.pm
@@ -0,0 +1,888 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GREEK7_OLD.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for GREEK7-OLD.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GREEK7_OLD;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x00a3,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x00b4,
+ 0x03b1,
+ 0x03b2,
+ 0x03c8,
+ 0x03b4,
+ 0x03b5,
+ 0x03c6,
+ 0x03b3,
+ 0x03b7,
+ 0x03b9,
+ 0x03be,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03bf,
+ 0x03c0,
+ 0x037a,
+ 0x03c1,
+ 0x03c3,
+ 0x03c4,
+ 0x03b8,
+ 0x03c9,
+ 0x03c2,
+ 0x03c7,
+ 0x03c5,
+ 0x03b6,
+ 0x1fcf,
+ 0x1fbf,
+ 0x1fce,
+ 0x007e,
+ 0x005f,
+ 0x0060,
+ 0x0391,
+ 0x0392,
+ 0x03a8,
+ 0x0394,
+ 0x0395,
+ 0x03a6,
+ 0x0393,
+ 0x0397,
+ 0x0399,
+ 0x039e,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039f,
+ 0x03a0,
+ 0xfffd,
+ 0x03a1,
+ 0x03a3,
+ 0x03a4,
+ 0x0398,
+ 0x03a9,
+ 0x00b7,
+ 0x03a7,
+ 0x03a5,
+ 0x0396,
+ 0x1fdf,
+ 0x1ffe,
+ 0x1fde,
+ 0x00a8,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\xc2\xa3",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\xc2\xb4",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xcf\x88",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xcf\x86",
+ "\xce\xb3",
+ "\xce\xb7",
+ "\xce\xb9",
+ "\xce\xbe",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcd\xba",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xce\xb8",
+ "\xcf\x89",
+ "\xcf\x82",
+ "\xcf\x87",
+ "\xcf\x85",
+ "\xce\xb6",
+ "\xe1\xbf\x8f",
+ "\xe1\xbe\xbf",
+ "\xe1\xbf\x8e",
+ "\x7e",
+ "\x5f",
+ "\x60",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\xa8",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\xa6",
+ "\xce\x93",
+ "\xce\x97",
+ "\xce\x99",
+ "\xce\x9e",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xef\xbf\xbd",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xc2\xb7",
+ "\xce\xa7",
+ "\xce\xa5",
+ "\xce\x96",
+ "\xe1\xbf\x9f",
+ "\xe1\xbf\xbe",
+ "\xe1\xbf\x9e",
+ "\xc2\xa8",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x0000007e => "\x5e",
+ 0x0000007f => "\x7f",
+ 0x000000a3 => "\x23",
+ 0x000000a8 => "\x7e",
+ 0x000000b4 => "\x40",
+ 0x000000b7 => "\x77",
+ 0x0000037a => "\x51",
+ 0x00000391 => "\x61",
+ 0x00000392 => "\x62",
+ 0x00000393 => "\x67",
+ 0x00000394 => "\x64",
+ 0x00000395 => "\x65",
+ 0x00000396 => "\x7a",
+ 0x00000397 => "\x68",
+ 0x00000398 => "\x75",
+ 0x00000399 => "\x69",
+ 0x0000039a => "\x6b",
+ 0x0000039b => "\x6c",
+ 0x0000039c => "\x6d",
+ 0x0000039d => "\x6e",
+ 0x0000039e => "\x6a",
+ 0x0000039f => "\x6f",
+ 0x000003a0 => "\x70",
+ 0x000003a1 => "\x72",
+ 0x000003a3 => "\x73",
+ 0x000003a4 => "\x74",
+ 0x000003a5 => "\x79",
+ 0x000003a6 => "\x66",
+ 0x000003a7 => "\x78",
+ 0x000003a8 => "\x63",
+ 0x000003a9 => "\x76",
+ 0x000003b1 => "\x41",
+ 0x000003b2 => "\x42",
+ 0x000003b3 => "\x47",
+ 0x000003b4 => "\x44",
+ 0x000003b5 => "\x45",
+ 0x000003b6 => "\x5a",
+ 0x000003b7 => "\x48",
+ 0x000003b8 => "\x55",
+ 0x000003b9 => "\x49",
+ 0x000003ba => "\x4b",
+ 0x000003bb => "\x4c",
+ 0x000003bc => "\x4d",
+ 0x000003bd => "\x4e",
+ 0x000003be => "\x4a",
+ 0x000003bf => "\x4f",
+ 0x000003c0 => "\x50",
+ 0x000003c1 => "\x52",
+ 0x000003c2 => "\x57",
+ 0x000003c3 => "\x53",
+ 0x000003c4 => "\x54",
+ 0x000003c5 => "\x59",
+ 0x000003c6 => "\x46",
+ 0x000003c7 => "\x58",
+ 0x000003c8 => "\x43",
+ 0x000003c9 => "\x56",
+ 0x00001fbf => "\x5c",
+ 0x00001fce => "\x5d",
+ 0x00001fcf => "\x5b",
+ 0x00001fde => "\x7d",
+ 0x00001fdf => "\x7b",
+ 0x00001ffe => "\x7c",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GREEK7_OLD - Conversion routines for GREEK7_OLD
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GREEK7-OLD.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-18
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 000000A3 | POUND SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 000000B4 | ACUTE ACCENT
+ 41 | 000003B1 | GREEK SMALL LETTER ALPHA
+ 42 | 000003B2 | GREEK SMALL LETTER BETA
+ 43 | 000003C8 | GREEK SMALL LETTER PSI
+ 44 | 000003B4 | GREEK SMALL LETTER DELTA
+ 45 | 000003B5 | GREEK SMALL LETTER EPSILON
+ 46 | 000003C6 | GREEK SMALL LETTER PHI
+ 47 | 000003B3 | GREEK SMALL LETTER GAMMA
+ 48 | 000003B7 | GREEK SMALL LETTER ETA
+ 49 | 000003B9 | GREEK SMALL LETTER IOTA
+ 4A | 000003BE | GREEK SMALL LETTER XI
+ 4B | 000003BA | GREEK SMALL LETTER KAPPA
+ 4C | 000003BB | GREEK SMALL LETTER LAMDA
+ 4D | 000003BC | GREEK SMALL LETTER MU
+ 4E | 000003BD | GREEK SMALL LETTER NU
+ 4F | 000003BF | GREEK SMALL LETTER OMICRON
+ 50 | 000003C0 | GREEK SMALL LETTER PI
+ 51 | 0000037A | GREEK YPOGEGRAMMENI
+ 52 | 000003C1 | GREEK SMALL LETTER RHO
+ 53 | 000003C3 | GREEK SMALL LETTER SIGMA
+ 54 | 000003C4 | GREEK SMALL LETTER TAU
+ 55 | 000003B8 | GREEK SMALL LETTER THETA
+ 56 | 000003C9 | GREEK SMALL LETTER OMEGA
+ 57 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ 58 | 000003C7 | GREEK SMALL LETTER CHI
+ 59 | 000003C5 | GREEK SMALL LETTER UPSILON
+ 5A | 000003B6 | GREEK SMALL LETTER ZETA
+ 5B | 00001FCF | GREEK PSILI AND PERISPOMENI
+ 5C | 00001FBF | GREEK PSILI
+ 5D | 00001FCE | GREEK PSILI AND OXIA
+ 5E | 0000007E | TILDE
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 62 | 00000392 | GREEK CAPITAL LETTER BETA
+ 63 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 64 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 65 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 66 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 67 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 68 | 00000397 | GREEK CAPITAL LETTER ETA
+ 69 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 6A | 0000039E | GREEK CAPITAL LETTER XI
+ 6B | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 6C | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 6D | 0000039C | GREEK CAPITAL LETTER MU
+ 6E | 0000039D | GREEK CAPITAL LETTER NU
+ 6F | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 70 | 000003A0 | GREEK CAPITAL LETTER PI
+ 72 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 73 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 74 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 75 | 00000398 | GREEK CAPITAL LETTER THETA
+ 76 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 77 | 000000B7 | MIDDLE DOT
+ 78 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 79 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 7A | 00000396 | GREEK CAPITAL LETTER ZETA
+ 7B | 00001FDF | GREEK DASIA AND PERISPOMENI
+ 7C | 00001FFE | GREEK DASIA
+ 7D | 00001FDE | GREEK DASIA AND OXIA
+ 7E | 000000A8 | DIAERESIS
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK_CCITT.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK_CCITT.pm
new file mode 100644
index 0000000..7ca9806
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/GREEK_CCITT.pm
@@ -0,0 +1,883 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: GREEK_CCITT.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for GREEK-CCITT.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::GREEK_CCITT;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0xfffd,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0xfffd,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0xfffd,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c2,
+ 0x03c3,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0xfffd,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x00af,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xef\xbf\xbd",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\xef\xbf\xbd",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x82",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\xc2\xaf",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\x24",
+ 0x000000af => "\x7e",
+ 0x00000391 => "\x41",
+ 0x00000392 => "\x42",
+ 0x00000393 => "\x43",
+ 0x00000394 => "\x44",
+ 0x00000395 => "\x45",
+ 0x00000396 => "\x46",
+ 0x00000397 => "\x47",
+ 0x00000398 => "\x48",
+ 0x00000399 => "\x49",
+ 0x0000039a => "\x4a",
+ 0x0000039b => "\x4b",
+ 0x0000039c => "\x4c",
+ 0x0000039d => "\x4d",
+ 0x0000039e => "\x4e",
+ 0x0000039f => "\x4f",
+ 0x000003a0 => "\x50",
+ 0x000003a1 => "\x51",
+ 0x000003a3 => "\x53",
+ 0x000003a4 => "\x54",
+ 0x000003a5 => "\x55",
+ 0x000003a6 => "\x56",
+ 0x000003a7 => "\x57",
+ 0x000003a8 => "\x58",
+ 0x000003a9 => "\x59",
+ 0x000003b1 => "\x61",
+ 0x000003b2 => "\x62",
+ 0x000003b3 => "\x63",
+ 0x000003b4 => "\x64",
+ 0x000003b5 => "\x65",
+ 0x000003b6 => "\x66",
+ 0x000003b7 => "\x67",
+ 0x000003b8 => "\x68",
+ 0x000003b9 => "\x69",
+ 0x000003ba => "\x6a",
+ 0x000003bb => "\x6b",
+ 0x000003bc => "\x6c",
+ 0x000003bd => "\x6d",
+ 0x000003be => "\x6e",
+ 0x000003bf => "\x6f",
+ 0x000003c0 => "\x70",
+ 0x000003c1 => "\x71",
+ 0x000003c2 => "\x72",
+ 0x000003c3 => "\x73",
+ 0x000003c4 => "\x74",
+ 0x000003c5 => "\x75",
+ 0x000003c6 => "\x76",
+ 0x000003c7 => "\x77",
+ 0x000003c8 => "\x78",
+ 0x000003c9 => "\x79",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::GREEK_CCITT - Conversion routines for GREEK_CCITT
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for GREEK-CCITT.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-150
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 42 | 00000392 | GREEK CAPITAL LETTER BETA
+ 43 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 44 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 45 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 46 | 00000396 | GREEK CAPITAL LETTER ZETA
+ 47 | 00000397 | GREEK CAPITAL LETTER ETA
+ 48 | 00000398 | GREEK CAPITAL LETTER THETA
+ 49 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 4A | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 4B | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 4C | 0000039C | GREEK CAPITAL LETTER MU
+ 4D | 0000039D | GREEK CAPITAL LETTER NU
+ 4E | 0000039E | GREEK CAPITAL LETTER XI
+ 4F | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 50 | 000003A0 | GREEK CAPITAL LETTER PI
+ 51 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 53 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 54 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 55 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 56 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 57 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 58 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 59 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 61 | 000003B1 | GREEK SMALL LETTER ALPHA
+ 62 | 000003B2 | GREEK SMALL LETTER BETA
+ 63 | 000003B3 | GREEK SMALL LETTER GAMMA
+ 64 | 000003B4 | GREEK SMALL LETTER DELTA
+ 65 | 000003B5 | GREEK SMALL LETTER EPSILON
+ 66 | 000003B6 | GREEK SMALL LETTER ZETA
+ 67 | 000003B7 | GREEK SMALL LETTER ETA
+ 68 | 000003B8 | GREEK SMALL LETTER THETA
+ 69 | 000003B9 | GREEK SMALL LETTER IOTA
+ 6A | 000003BA | GREEK SMALL LETTER KAPPA
+ 6B | 000003BB | GREEK SMALL LETTER LAMDA
+ 6C | 000003BC | GREEK SMALL LETTER MU
+ 6D | 000003BD | GREEK SMALL LETTER NU
+ 6E | 000003BE | GREEK SMALL LETTER XI
+ 6F | 000003BF | GREEK SMALL LETTER OMICRON
+ 70 | 000003C0 | GREEK SMALL LETTER PI
+ 71 | 000003C1 | GREEK SMALL LETTER RHO
+ 72 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ 73 | 000003C3 | GREEK SMALL LETTER SIGMA
+ 74 | 000003C4 | GREEK SMALL LETTER TAU
+ 75 | 000003C5 | GREEK SMALL LETTER UPSILON
+ 76 | 000003C6 | GREEK SMALL LETTER PHI
+ 77 | 000003C7 | GREEK SMALL LETTER CHI
+ 78 | 000003C8 | GREEK SMALL LETTER PSI
+ 79 | 000003C9 | GREEK SMALL LETTER OMEGA
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 000000AF | MACRON
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/HP_ROMAN8.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/HP_ROMAN8.pm
new file mode 100644
index 0000000..9d007b9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/HP_ROMAN8.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: HP_ROMAN8.pm,v 1.1 2011-10-12 23:51:34 pertusus Exp $
+
+# Conversion routines for HP-ROMAN8.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::HP_ROMAN8;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x00c0,
+ 0x00c2,
+ 0x00c8,
+ 0x00ca,
+ 0x00cb,
+ 0x00ce,
+ 0x00cf,
+ 0x00b4,
+ 0x02cb,
+ 0x02c6,
+ 0x00a8,
+ 0x02dc,
+ 0x00d9,
+ 0x00db,
+ 0x20a4,
+ 0x00af,
+ 0x00dd,
+ 0x00fd,
+ 0x00b0,
+ 0x00c7,
+ 0x00e7,
+ 0x00d1,
+ 0x00f1,
+ 0x00a1,
+ 0x00bf,
+ 0x00a4,
+ 0x00a3,
+ 0x00a5,
+ 0x00a7,
+ 0x0192,
+ 0x00a2,
+ 0x00e2,
+ 0x00ea,
+ 0x00f4,
+ 0x00fb,
+ 0x00e1,
+ 0x00e9,
+ 0x00f3,
+ 0x00fa,
+ 0x00e0,
+ 0x00e8,
+ 0x00f2,
+ 0x00f9,
+ 0x00e4,
+ 0x00eb,
+ 0x00f6,
+ 0x00fc,
+ 0x00c5,
+ 0x00ee,
+ 0x00d8,
+ 0x00c6,
+ 0x00e5,
+ 0x00ed,
+ 0x00f8,
+ 0x00e6,
+ 0x00c4,
+ 0x00ec,
+ 0x00d6,
+ 0x00dc,
+ 0x00c9,
+ 0x00ef,
+ 0x00df,
+ 0x00d4,
+ 0x00c1,
+ 0x00c3,
+ 0x00e3,
+ 0x00d0,
+ 0x00f0,
+ 0x00cd,
+ 0x00cc,
+ 0x00d3,
+ 0x00d2,
+ 0x00d5,
+ 0x00f5,
+ 0x0160,
+ 0x0161,
+ 0x00da,
+ 0x0178,
+ 0x00ff,
+ 0x00de,
+ 0x00fe,
+ 0x00b7,
+ 0x00b5,
+ 0x00b6,
+ 0x00be,
+ 0x2014,
+ 0x00bc,
+ 0x00bd,
+ 0x00aa,
+ 0x00ba,
+ 0x00ab,
+ 0x25a0,
+ 0x00bb,
+ 0x00b1,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x82",
+ "\xc3\x88",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc2\xb4",
+ "\xcb\x8b",
+ "\xcb\x86",
+ "\xc2\xa8",
+ "\xcb\x9c",
+ "\xc3\x99",
+ "\xc3\x9b",
+ "\xe2\x82\xa4",
+ "\xc2\xaf",
+ "\xc3\x9d",
+ "\xc3\xbd",
+ "\xc2\xb0",
+ "\xc3\x87",
+ "\xc3\xa7",
+ "\xc3\x91",
+ "\xc3\xb1",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc2\xa4",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xa7",
+ "\xc6\x92",
+ "\xc2\xa2",
+ "\xc3\xa2",
+ "\xc3\xaa",
+ "\xc3\xb4",
+ "\xc3\xbb",
+ "\xc3\xa1",
+ "\xc3\xa9",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xa0",
+ "\xc3\xa8",
+ "\xc3\xb2",
+ "\xc3\xb9",
+ "\xc3\xa4",
+ "\xc3\xab",
+ "\xc3\xb6",
+ "\xc3\xbc",
+ "\xc3\x85",
+ "\xc3\xae",
+ "\xc3\x98",
+ "\xc3\x86",
+ "\xc3\xa5",
+ "\xc3\xad",
+ "\xc3\xb8",
+ "\xc3\xa6",
+ "\xc3\x84",
+ "\xc3\xac",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\x89",
+ "\xc3\xaf",
+ "\xc3\x9f",
+ "\xc3\x94",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\xa3",
+ "\xc3\x90",
+ "\xc3\xb0",
+ "\xc3\x8d",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x92",
+ "\xc3\x95",
+ "\xc3\xb5",
+ "\xc5\xa0",
+ "\xc5\xa1",
+ "\xc3\x9a",
+ "\xc5\xb8",
+ "\xc3\xbf",
+ "\xc3\x9e",
+ "\xc3\xbe",
+ "\xc2\xb7",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xbe",
+ "\xe2\x80\x94",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xab",
+ "\xe2\x96\xa0",
+ "\xc2\xbb",
+ "\xc2\xb1",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xb8",
+ 0x000000a2 => "\xbf",
+ 0x000000a3 => "\xbb",
+ 0x000000a4 => "\xba",
+ 0x000000a5 => "\xbc",
+ 0x000000a7 => "\xbd",
+ 0x000000a8 => "\xab",
+ 0x000000aa => "\xf9",
+ 0x000000ab => "\xfb",
+ 0x000000af => "\xb0",
+ 0x000000b0 => "\xb3",
+ 0x000000b1 => "\xfe",
+ 0x000000b4 => "\xa8",
+ 0x000000b5 => "\xf3",
+ 0x000000b6 => "\xf4",
+ 0x000000b7 => "\xf2",
+ 0x000000ba => "\xfa",
+ 0x000000bb => "\xfd",
+ 0x000000bc => "\xf7",
+ 0x000000bd => "\xf8",
+ 0x000000be => "\xf5",
+ 0x000000bf => "\xb9",
+ 0x000000c0 => "\xa1",
+ 0x000000c1 => "\xe0",
+ 0x000000c2 => "\xa2",
+ 0x000000c3 => "\xe1",
+ 0x000000c4 => "\xd8",
+ 0x000000c5 => "\xd0",
+ 0x000000c6 => "\xd3",
+ 0x000000c7 => "\xb4",
+ 0x000000c8 => "\xa3",
+ 0x000000c9 => "\xdc",
+ 0x000000ca => "\xa4",
+ 0x000000cb => "\xa5",
+ 0x000000cc => "\xe6",
+ 0x000000cd => "\xe5",
+ 0x000000ce => "\xa6",
+ 0x000000cf => "\xa7",
+ 0x000000d0 => "\xe3",
+ 0x000000d1 => "\xb6",
+ 0x000000d2 => "\xe8",
+ 0x000000d3 => "\xe7",
+ 0x000000d4 => "\xdf",
+ 0x000000d5 => "\xe9",
+ 0x000000d6 => "\xda",
+ 0x000000d8 => "\xd2",
+ 0x000000d9 => "\xad",
+ 0x000000da => "\xed",
+ 0x000000db => "\xae",
+ 0x000000dc => "\xdb",
+ 0x000000dd => "\xb1",
+ 0x000000de => "\xf0",
+ 0x000000df => "\xde",
+ 0x000000e0 => "\xc8",
+ 0x000000e1 => "\xc4",
+ 0x000000e2 => "\xc0",
+ 0x000000e3 => "\xe2",
+ 0x000000e4 => "\xcc",
+ 0x000000e5 => "\xd4",
+ 0x000000e6 => "\xd7",
+ 0x000000e7 => "\xb5",
+ 0x000000e8 => "\xc9",
+ 0x000000e9 => "\xc5",
+ 0x000000ea => "\xc1",
+ 0x000000eb => "\xcd",
+ 0x000000ec => "\xd9",
+ 0x000000ed => "\xd5",
+ 0x000000ee => "\xd1",
+ 0x000000ef => "\xdd",
+ 0x000000f0 => "\xe4",
+ 0x000000f1 => "\xb7",
+ 0x000000f2 => "\xca",
+ 0x000000f3 => "\xc6",
+ 0x000000f4 => "\xc2",
+ 0x000000f5 => "\xea",
+ 0x000000f6 => "\xce",
+ 0x000000f8 => "\xd6",
+ 0x000000f9 => "\xcb",
+ 0x000000fa => "\xc7",
+ 0x000000fb => "\xc3",
+ 0x000000fc => "\xcf",
+ 0x000000fd => "\xb2",
+ 0x000000fe => "\xf1",
+ 0x000000ff => "\xef",
+ 0x00000160 => "\xeb",
+ 0x00000161 => "\xec",
+ 0x00000178 => "\xee",
+ 0x00000192 => "\xbe",
+ 0x000002c6 => "\xaa",
+ 0x000002cb => "\xa9",
+ 0x000002dc => "\xac",
+ 0x00002014 => "\xf6",
+ 0x000020a4 => "\xaf",
+ 0x000025a0 => "\xfc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::HP_ROMAN8 - Conversion routines for HP_ROMAN8
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for HP-ROMAN8.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: LaserJet IIP Printer User's Manual,
+ HP part no 33471-90901, Hewlet-Packard, June 1989.
+ alias ROMAN8
+ alias R8
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ A2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ A3 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ A4 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ A5 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ A6 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ A7 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ A8 | 000000B4 | ACUTE ACCENT
+ A9 | 000002CB | MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)
+ AA | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ AB | 000000A8 | DIAERESIS
+ AC | 000002DC | SMALL TILDE
+ AD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ AE | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ AF | 000020A4 | LIRA SIGN
+ B0 | 000000AF | MACRON
+ B1 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ B2 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ B3 | 000000B0 | DEGREE SIGN
+ B4 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ B5 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ B6 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ B7 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ B8 | 000000A1 | INVERTED EXCLAMATION MARK
+ B9 | 000000BF | INVERTED QUESTION MARK
+ BA | 000000A4 | CURRENCY SIGN
+ BB | 000000A3 | POUND SIGN
+ BC | 000000A5 | YEN SIGN
+ BD | 000000A7 | SECTION SIGN
+ BE | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ BF | 000000A2 | CENT SIGN
+ C0 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ C1 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ C2 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ C3 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ C4 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ C5 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ C6 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ C7 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ C8 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ C9 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ CA | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CB | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ CC | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ CD | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ CE | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CF | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ D0 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ D1 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ D2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D3 | 000000C6 | LATIN CAPITAL LETTER AE
+ D4 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ D5 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ D6 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ D7 | 000000E6 | LATIN SMALL LETTER AE
+ D8 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ D9 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ DA | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ DB | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DC | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ DD | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ DE | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ DF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ E0 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E1 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ E2 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E3 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ E4 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ E5 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ E6 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ E7 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ E8 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ E9 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ EA | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ EB | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ EC | 00000161 | LATIN SMALL LETTER S WITH CARON
+ ED | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ EE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ EF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ F0 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ F1 | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ F2 | 000000B7 | MIDDLE DOT
+ F3 | 000000B5 | MICRO SIGN
+ F4 | 000000B6 | PILCROW SIGN
+ F5 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ F6 | 00002014 | EM DASH
+ F7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ F8 | 000000BD | VULGAR FRACTION ONE HALF
+ F9 | 000000AA | FEMININE ORDINAL INDICATOR
+ FA | 000000BA | MASCULINE ORDINAL INDICATOR
+ FB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ FC | 000025A0 | BLACK SQUARE
+ FD | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ FE | 000000B1 | PLUS-MINUS SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM037.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM037.pm
new file mode 100644
index 0000000..157e046
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM037.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM037.pm,v 1.1 2011-10-12 23:51:35 pertusus Exp $
+
+# Conversion routines for IBM037.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM037;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x005e,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x005b,
+ 0x005d,
+ 0x00af,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\x5e",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\x5b",
+ "\x5d",
+ "\xc2\xaf",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xba",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\xbb",
+ 0x0000005e => "\xb0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\x4a",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\x5f",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000af => "\xbc",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM037 - Conversion routines for IBM037
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM037.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP037
+ alias EBCDIC-CP-US
+ alias EBCDIC-CP-CA
+ alias EBCDIC-CP-WT
+ alias EBCDIC-CP-NL
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 0000005E | CIRCUMFLEX ACCENT
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 0000005B | LEFT SQUARE BRACKET
+ BB | 0000005D | RIGHT SQUARE BRACKET
+ BC | 000000AF | MACRON
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM038.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM038.pm
new file mode 100644
index 0000000..e4ad6f9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM038.pm
@@ -0,0 +1,955 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM038.pm,v 1.1 2011-10-12 23:51:35 pertusus Exp $
+
+# Conversion routines for IBM038.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM038;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a6 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM038 - Conversion routines for IBM038
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM038.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ alias EBCDIC-INT
+ alias CP038
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1004.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1004.pm
new file mode 100644
index 0000000..2b436cf
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1004.pm
@@ -0,0 +1,1129 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM1004.pm,v 1.1 2011-10-12 23:51:35 pertusus Exp $
+
+# Conversion routines for IBM1004.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM1004;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0x201a,
+ 0xfffd,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0x02c6,
+ 0x2030,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x02dc,
+ 0x2122,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0xfffd,
+ 0xfffd,
+ 0x0178,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9a",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xcb\x86",
+ "\xe2\x80\xb0",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xcb\x9c",
+ "\xe2\x84\xa2",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d0 => "\xd0",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000de => "\xde",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000178 => "\x9f",
+ 0x000002c6 => "\x88",
+ 0x000002dc => "\x98",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM1004 - Conversion routines for IBM1004
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM1004.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: CEN/TC304 N283, 1994-02-04
+ alias CP1004
+ alias OS2LATIN1
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 000002DC | SMALL TILDE
+ 99 | 00002122 | TRADE MARK SIGN
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1026.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1026.pm
new file mode 100644
index 0000000..ba86e1e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1026.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM1026.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM1026.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM1026;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x007b,
+ 0x00f1,
+ 0x00c7,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x011e,
+ 0x0130,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x005b,
+ 0x00d1,
+ 0x015f,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0131,
+ 0x003a,
+ 0x00d6,
+ 0x015e,
+ 0x0027,
+ 0x003d,
+ 0x00dc,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x007d,
+ 0x0060,
+ 0x00a6,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x02db,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x00f6,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x005d,
+ 0x0024,
+ 0x0040,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x2014,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e7,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x007e,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x011f,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x005c,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x00fc,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x0023,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x0022,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\x7b",
+ "\xc3\xb1",
+ "\xc3\x87",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc4\x9e",
+ "\xc4\xb0",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\x5b",
+ "\xc3\x91",
+ "\xc5\x9f",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc4\xb1",
+ "\x3a",
+ "\xc3\x96",
+ "\xc5\x9e",
+ "\x27",
+ "\x3d",
+ "\xc3\x9c",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\x7d",
+ "\x60",
+ "\xc2\xa6",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xcb\x9b",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc3\xb6",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\x5d",
+ "\x24",
+ "\x40",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\x94",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa7",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\x7e",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc4\x9f",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\x5c",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\xc3\xbc",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\x23",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\x22",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\xfc",
+ 0x00000023 => "\xec",
+ 0x00000024 => "\xad",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xae",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x68",
+ 0x0000005c => "\xdc",
+ 0x0000005d => "\xac",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x8d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x48",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x8c",
+ 0x0000007e => "\xcc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x8e",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x4a",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\x7b",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\x7f",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\xc0",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xa1",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xe0",
+ 0x000000ff => "\xdf",
+ 0x0000011e => "\x5a",
+ 0x0000011f => "\xd0",
+ 0x00000130 => "\x5b",
+ 0x00000131 => "\x79",
+ 0x0000015e => "\x7c",
+ 0x0000015f => "\x6a",
+ 0x000002db => "\x9d",
+ 0x00002014 => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM1026 - Conversion routines for IBM1026
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM1026.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP1026
+ alias 1026
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 0000007B | LEFT CURLY BRACKET
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ 5B | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 0000005B | LEFT SQUARE BRACKET
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ 7A | 0000003A | COLON
+ 7B | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7C | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 0000007D | RIGHT CURLY BRACKET
+ 8D | 00000060 | GRAVE ACCENT
+ 8E | 000000A6 | BROKEN BAR
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000002DB | OGONEK
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 0000005D | RIGHT SQUARE BRACKET
+ AD | 00000024 | DOLLAR SIGN
+ AE | 00000040 | COMMERCIAL AT
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 00002014 | EM DASH
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 0000007E | TILDE
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 0000005C | REVERSE SOLIDUS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 00000023 | NUMBER SIGN
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 00000022 | QUOTATION MARK
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1047.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1047.pm
new file mode 100644
index 0000000..6fc9de1
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM1047.pm
@@ -0,0 +1,1148 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM1047.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM1047.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM1047;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x005b,
+ 0x00de,
+ 0x00ae,
+ 0x00ac,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00dd,
+ 0x00a8,
+ 0x00af,
+ 0x005d,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\x5b",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xac",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc3\x9d",
+ "\xc2\xa8",
+ "\xc2\xaf",
+ "\x5d",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xad",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\xbd",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\x4a",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbb",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xb0",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000af => "\xbc",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xba",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM1047 - Conversion routines for IBM1047
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM1047.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM Character Data Representation Architecture
+ Registry SC09-1391-00 p 150.
+ alias CP1047
+ alias 1047
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 0000005B | LEFT SQUARE BRACKET
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000AC | NOT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ BB | 000000A8 | DIAERESIS
+ BC | 000000AF | MACRON
+ BD | 0000005D | RIGHT SQUARE BRACKET
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM256.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM256.pm
new file mode 100644
index 0000000..2107533
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM256.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM256.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM256.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM256;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x20a7,
+ 0x0192,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x2017,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x2003,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xe2\x82\xa7",
+ "\xc6\x92",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xe2\x80\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xe2\x80\x83",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x00000192 => "\xb4",
+ 0x00002003 => "\xe1",
+ 0x00002017 => "\xbf",
+ 0x0000203e => "\xbc",
+ 0x000020a7 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM256 - Conversion routines for IBM256
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM256.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM Registry C-H 3-3220-050
+ alias EBCDIC-INT1
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000020A7 | PESETA SIGN
+ B4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 00002017 | DOUBLE LOW LINE
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 00002003 | EM SPACE
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM273.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM273.pm
new file mode 100644
index 0000000..3c99fa2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM273.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM273.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM273.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM273;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x007b,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x00c4,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x007e,
+ 0x00dc,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x005b,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00f6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x00a7,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x00df,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x0040,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e4,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00a6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x00fc,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x007d,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x00d6,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x005c,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x005d,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\x7b",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\xc3\x84",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\x7e",
+ "\xc3\x9c",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\x5b",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc3\xb6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\xc2\xa7",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc3\x9f",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\x40",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa4",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc2\xa6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xbc",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\x7d",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\x5c",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\x5d",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xb5",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x63",
+ 0x0000005c => "\xec",
+ 0x0000005d => "\xfc",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x43",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\xdc",
+ 0x0000007e => "\x59",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\xcc",
+ 0x000000a7 => "\x7c",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x4a",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xe0",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\x5a",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\xa1",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\xc0",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\x6a",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xd0",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM273 - Conversion routines for IBM273
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM273.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP273
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 0000007B | LEFT CURLY BRACKET
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 0000007E | TILDE
+ 5A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 0000005B | LEFT SQUARE BRACKET
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 000000A7 | SECTION SIGN
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 00000040 | COMMERCIAL AT
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000A6 | BROKEN BAR
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 0000007D | RIGHT CURLY BRACKET
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 0000005C | REVERSE SOLIDUS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 0000005D | RIGHT SQUARE BRACKET
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM274.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM274.pm
new file mode 100644
index 0000000..378ac4b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM274.pm
@@ -0,0 +1,955 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM274.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM274.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM274;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f9,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x00e0,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb9",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\xc3\xa0",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a8 => "\xa1",
+ 0x000000e0 => "\x7c",
+ 0x000000e7 => "\xe0",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\xc0",
+ 0x000000f9 => "\x6a",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM274 - Conversion routines for IBM274
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM274.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ alias EBCDIC-BE
+ alias CP274
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM275.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM275.pm
new file mode 100644
index 0000000..f34a18d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM275.pm
@@ -0,0 +1,955 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM275.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM275.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM275;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00c9,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0x00c7,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e7,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e3,
+ 0x003a,
+ 0x00d5,
+ 0x00c3,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00f5,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00e9,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\x89",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\xc3\x87",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa7",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa3",
+ "\x3a",
+ "\xc3\x95",
+ "\xc3\x83",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xb5",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc3\xa9",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5a",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005c => "\xe0",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000c3 => "\x7c",
+ 0x000000c7 => "\x5b",
+ 0x000000c9 => "\x4a",
+ 0x000000d5 => "\x7b",
+ 0x000000e3 => "\x79",
+ 0x000000e7 => "\x6a",
+ 0x000000e9 => "\xd0",
+ 0x000000f5 => "\xc0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM275 - Conversion routines for IBM275
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM275.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias EBCDIC-BR
+ alias CP275
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000024 | DOLLAR SIGN
+ 5B | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 7A | 0000003A | COLON
+ 7B | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ 7C | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM277.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM277.pm
new file mode 100644
index 0000000..adef49e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM277.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM277.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM277.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM277;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x007d,
+ 0x00e7,
+ 0x00f1,
+ 0x0023,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x00a4,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x0024,
+ 0x00c7,
+ 0x00d1,
+ 0x00f8,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00a6,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x00c6,
+ 0x00d8,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x0040,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x007b,
+ 0x00b8,
+ 0x005b,
+ 0x005d,
+ 0x00b5,
+ 0x00fc,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e6,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x00e5,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x007e,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\x7d",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\x23",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc2\xa4",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\x24",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc3\xb8",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc2\xa6",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\x40",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\x7b",
+ "\xc2\xb8",
+ "\x5b",
+ "\x5d",
+ "\xc2\xb5",
+ "\xc3\xbc",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa6",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xa5",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\x7e",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x4a",
+ 0x00000024 => "\x67",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x80",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x9e",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x9f",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x9c",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x47",
+ 0x0000007e => "\xdc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x5a",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x70",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x5b",
+ 0x000000c6 => "\x7b",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x7c",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\xd0",
+ 0x000000e6 => "\xc0",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x6a",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xa1",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM277 - Conversion routines for IBM277
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM277.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias EBCDIC-CP-DK
+ alias EBCDIC-CP-NO
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 0000007D | RIGHT CURLY BRACKET
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 00000023 | NUMBER SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 000000A4 | CURRENCY SIGN
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 00000024 | DOLLAR SIGN
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000A6 | BROKEN BAR
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000C6 | LATIN CAPITAL LETTER AE
+ 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 00000040 | COMMERCIAL AT
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 0000007B | LEFT CURLY BRACKET
+ 9D | 000000B8 | CEDILLA
+ 9E | 0000005B | LEFT SQUARE BRACKET
+ 9F | 0000005D | RIGHT SQUARE BRACKET
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E6 | LATIN SMALL LETTER AE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 0000007E | TILDE
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM278.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM278.pm
new file mode 100644
index 0000000..1dec0a4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM278.pm
@@ -0,0 +1,1148 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM278.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM278.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM278;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x007b,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x007d,
+ 0x00e7,
+ 0x00f1,
+ 0x00a7,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x0060,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x00a4,
+ 0x00c5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x0023,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x0024,
+ 0x00c7,
+ 0x00d1,
+ 0x00f6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00e9,
+ 0x003a,
+ 0x00c4,
+ 0x00d6,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x005d,
+ 0x00b5,
+ 0x00fc,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x005b,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e4,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00a6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x00e5,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x007e,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x0040,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\x7b",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\x7d",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\xc2\xa7",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\x60",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc2\xa4",
+ "\xc3\x85",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\x23",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\x24",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc3\xb6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\xa9",
+ "\x3a",
+ "\xc3\x84",
+ "\xc3\x96",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\x5d",
+ "\xc2\xb5",
+ "\xc3\xbc",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\x5b",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa4",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc2\xa6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xa5",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\x7e",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\x40",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x63",
+ 0x00000024 => "\x67",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xec",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xb5",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x9f",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x51",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x43",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x47",
+ 0x0000007e => "\xdc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x5a",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\xcc",
+ 0x000000a7 => "\x4a",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x7b",
+ 0x000000c5 => "\x5b",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\x7c",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\xc0",
+ 0x000000e5 => "\xd0",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x79",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\x6a",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xa1",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM278 - Conversion routines for IBM278
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM278.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP278
+ alias EBCDIC-CP-FI
+ alias EBCDIC-CP-SE
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 0000007B | LEFT CURLY BRACKET
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 0000007D | RIGHT CURLY BRACKET
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000A7 | SECTION SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 00000060 | GRAVE ACCENT
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 000000A4 | CURRENCY SIGN
+ 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 00000023 | NUMBER SIGN
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 00000024 | DOLLAR SIGN
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 7A | 0000003A | COLON
+ 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 0000005D | RIGHT SQUARE BRACKET
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 0000005B | LEFT SQUARE BRACKET
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000A6 | BROKEN BAR
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 0000007E | TILDE
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 00000040 | COMMERCIAL AT
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM280.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM280.pm
new file mode 100644
index 0000000..0cb769a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM280.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM280.pm,v 1.1 2011-10-12 23:51:36 pertusus Exp $
+
+# Conversion routines for IBM280.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM280;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x007b,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x005c,
+ 0x00f1,
+ 0x00b0,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x005d,
+ 0x00ea,
+ 0x00eb,
+ 0x007d,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x007e,
+ 0x00df,
+ 0x00e9,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00f2,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00f9,
+ 0x003a,
+ 0x00a3,
+ 0x00a7,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x005b,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x00ec,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x0023,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x0040,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e0,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00a6,
+ 0x00f3,
+ 0x00f5,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x0060,
+ 0x00fa,
+ 0x00ff,
+ 0x00e7,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\x7b",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\x5c",
+ "\xc3\xb1",
+ "\xc2\xb0",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\x5d",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\x7d",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\x7e",
+ "\xc3\x9f",
+ "\xc3\xa9",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc3\xb2",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\xb9",
+ "\x3a",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\x5b",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc3\xac",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\x23",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\x40",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa0",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc2\xa6",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\x60",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\xc3\xa7",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\xb1",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xb5",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x90",
+ 0x0000005c => "\x48",
+ 0x0000005d => "\x51",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\xdd",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x44",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x54",
+ 0x0000007e => "\x58",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\x7b",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\xcd",
+ 0x000000a7 => "\x7c",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x4a",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\xc0",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\xe0",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\x5a",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\xa1",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\x6a",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\x79",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM280 - Conversion routines for IBM280
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM280.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP280
+ alias EBCDIC-CP-IT
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 0000007B | LEFT CURLY BRACKET
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 0000005C | REVERSE SOLIDUS
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000B0 | DEGREE SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000005D | RIGHT SQUARE BRACKET
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 0000007D | RIGHT CURLY BRACKET
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 0000007E | TILDE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 7A | 0000003A | COLON
+ 7B | 000000A3 | POUND SIGN
+ 7C | 000000A7 | SECTION SIGN
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 0000005B | LEFT SQUARE BRACKET
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 00000023 | NUMBER SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 00000040 | COMMERCIAL AT
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000A6 | BROKEN BAR
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 00000060 | GRAVE ACCENT
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM281.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM281.pm
new file mode 100644
index 0000000..6189224
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM281.pm
@@ -0,0 +1,955 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM281.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM281.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM281;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a3,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0021,
+ 0x00a5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x203e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa3",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\xc2\xa5",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xbe",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\xe0",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x4a",
+ 0x000000a5 => "\x5b",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x0000203e => "\xa1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM281 - Conversion routines for IBM281
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM281.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ alias EBCDIC-JP-E
+ alias CP281
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 4A | 000000A3 | POUND SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000000A5 | YEN SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ A1 | 0000203E | OVERLINE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 00000024 | DOLLAR SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM284.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM284.pm
new file mode 100644
index 0000000..3bf5829
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM284.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM284.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM284.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM284;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00a6,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x0023,
+ 0x00f1,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x00d1,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x005e,
+ 0x0021,
+ 0x203e,
+ 0x007e,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc2\xa6",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\x23",
+ "\xc3\xb1",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\xc3\x91",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\x5e",
+ "\x21",
+ "\xe2\x80\xbe",
+ "\x7e",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\xbb",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x69",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\xba",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xbd",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x49",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xa1",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\x5f",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x7b",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x6a",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM284 - Conversion routines for IBM284
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM284.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP284
+ alias EBCDIC-CP-ES
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000A6 | BROKEN BAR
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 00000023 | NUMBER SIGN
+ 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 0000005E | CIRCUMFLEX ACCENT
+ BB | 00000021 | EXCLAMATION MARK
+ BC | 0000203E | OVERLINE
+ BD | 0000007E | TILDE
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM285.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM285.pm
new file mode 100644
index 0000000..a2053b6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM285.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM285.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM285.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM285;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x0024,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x0021,
+ 0x00a3,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x203e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x005b,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x005e,
+ 0x005d,
+ 0x007e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\x24",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x21",
+ "\xc2\xa3",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xe2\x80\xbe",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\x5b",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\x5e",
+ "\x5d",
+ "\x7e",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x4a",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xb1",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\xbb",
+ 0x0000005e => "\xba",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xbc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\x5b",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\x5f",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xa1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM285 - Conversion routines for IBM285
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM285.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP285
+ alias EBCDIC-CP-GB
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 00000024 | DOLLAR SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000000A3 | POUND SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000203E | OVERLINE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 0000005B | LEFT SQUARE BRACKET
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 0000005E | CIRCUMFLEX ACCENT
+ BB | 0000005D | RIGHT SQUARE BRACKET
+ BC | 0000007E | TILDE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM290.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM290.pm
new file mode 100644
index 0000000..1d1aaa4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM290.pm
@@ -0,0 +1,1025 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM290.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM290.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM290;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x3002,
+ 0x300c,
+ 0x300d,
+ 0x3001,
+ 0x30fb,
+ 0x30f2,
+ 0x30a1,
+ 0x30a3,
+ 0x30a5,
+ 0x00a3,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x30a7,
+ 0x30a9,
+ 0x30e3,
+ 0x30e5,
+ 0x30e7,
+ 0x30c3,
+ 0xfffd,
+ 0x30fc,
+ 0xfffd,
+ 0x0021,
+ 0x00a5,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x30a2,
+ 0x30a4,
+ 0x30a6,
+ 0x30a8,
+ 0x30aa,
+ 0x30ab,
+ 0x30ad,
+ 0x30af,
+ 0x30b1,
+ 0x30b3,
+ 0xfffd,
+ 0x30b5,
+ 0x30b7,
+ 0x30b9,
+ 0x30bb,
+ 0x30bd,
+ 0x30bf,
+ 0x30c1,
+ 0x30c4,
+ 0x30c6,
+ 0x30c8,
+ 0x30ca,
+ 0x30cb,
+ 0x30cc,
+ 0x30cd,
+ 0x30ce,
+ 0xfffd,
+ 0xfffd,
+ 0x30cf,
+ 0x30d2,
+ 0x30d5,
+ 0xfffd,
+ 0x203e,
+ 0x30d8,
+ 0x30db,
+ 0x30de,
+ 0x30df,
+ 0x30e0,
+ 0x30e1,
+ 0x30e2,
+ 0x30e4,
+ 0x30e6,
+ 0xfffd,
+ 0x30e8,
+ 0x30e9,
+ 0x30ea,
+ 0x30eb,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x30ec,
+ 0x30ed,
+ 0x30ef,
+ 0x30f3,
+ 0x309b,
+ 0x309c,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xe3\x80\x82",
+ "\xe3\x80\x8c",
+ "\xe3\x80\x8d",
+ "\xe3\x80\x81",
+ "\xe3\x83\xbb",
+ "\xe3\x83\xb2",
+ "\xe3\x82\xa1",
+ "\xe3\x82\xa3",
+ "\xe3\x82\xa5",
+ "\xc2\xa3",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xe3\x82\xa7",
+ "\xe3\x82\xa9",
+ "\xe3\x83\xa3",
+ "\xe3\x83\xa5",
+ "\xe3\x83\xa7",
+ "\xe3\x83\x83",
+ "\xef\xbf\xbd",
+ "\xe3\x83\xbc",
+ "\xef\xbf\xbd",
+ "\x21",
+ "\xc2\xa5",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\xe3\x82\xa2",
+ "\xe3\x82\xa4",
+ "\xe3\x82\xa6",
+ "\xe3\x82\xa8",
+ "\xe3\x82\xaa",
+ "\xe3\x82\xab",
+ "\xe3\x82\xad",
+ "\xe3\x82\xaf",
+ "\xe3\x82\xb1",
+ "\xe3\x82\xb3",
+ "\xef\xbf\xbd",
+ "\xe3\x82\xb5",
+ "\xe3\x82\xb7",
+ "\xe3\x82\xb9",
+ "\xe3\x82\xbb",
+ "\xe3\x82\xbd",
+ "\xe3\x82\xbf",
+ "\xe3\x83\x81",
+ "\xe3\x83\x84",
+ "\xe3\x83\x86",
+ "\xe3\x83\x88",
+ "\xe3\x83\x8a",
+ "\xe3\x83\x8b",
+ "\xe3\x83\x8c",
+ "\xe3\x83\x8d",
+ "\xe3\x83\x8e",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe3\x83\x8f",
+ "\xe3\x83\x92",
+ "\xe3\x83\x95",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xbe",
+ "\xe3\x83\x98",
+ "\xe3\x83\x9b",
+ "\xe3\x83\x9e",
+ "\xe3\x83\x9f",
+ "\xe3\x83\xa0",
+ "\xe3\x83\xa1",
+ "\xe3\x83\xa2",
+ "\xe3\x83\xa4",
+ "\xe3\x83\xa6",
+ "\xef\xbf\xbd",
+ "\xe3\x83\xa8",
+ "\xe3\x83\xa9",
+ "\xe3\x83\xaa",
+ "\xe3\x83\xab",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe3\x83\xac",
+ "\xe3\x83\xad",
+ "\xe3\x83\xaf",
+ "\xe3\x83\xb3",
+ "\xe3\x82\x9b",
+ "\xe3\x82\x9c",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\xe0",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x4a",
+ 0x000000a5 => "\x5b",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x0000203e => "\xa1",
+ 0x00003001 => "\x44",
+ 0x00003002 => "\x41",
+ 0x0000300c => "\x42",
+ 0x0000300d => "\x43",
+ 0x0000309b => "\xbe",
+ 0x0000309c => "\xbf",
+ 0x000030a1 => "\x47",
+ 0x000030a2 => "\x81",
+ 0x000030a3 => "\x48",
+ 0x000030a4 => "\x82",
+ 0x000030a5 => "\x49",
+ 0x000030a6 => "\x83",
+ 0x000030a7 => "\x51",
+ 0x000030a8 => "\x84",
+ 0x000030a9 => "\x52",
+ 0x000030aa => "\x85",
+ 0x000030ab => "\x86",
+ 0x000030ad => "\x87",
+ 0x000030af => "\x88",
+ 0x000030b1 => "\x89",
+ 0x000030b3 => "\x8a",
+ 0x000030b5 => "\x8c",
+ 0x000030b7 => "\x8d",
+ 0x000030b9 => "\x8e",
+ 0x000030bb => "\x8f",
+ 0x000030bd => "\x90",
+ 0x000030bf => "\x91",
+ 0x000030c1 => "\x92",
+ 0x000030c3 => "\x56",
+ 0x000030c4 => "\x93",
+ 0x000030c6 => "\x94",
+ 0x000030c8 => "\x95",
+ 0x000030ca => "\x96",
+ 0x000030cb => "\x97",
+ 0x000030cc => "\x98",
+ 0x000030cd => "\x99",
+ 0x000030ce => "\x9a",
+ 0x000030cf => "\x9d",
+ 0x000030d2 => "\x9e",
+ 0x000030d5 => "\x9f",
+ 0x000030d8 => "\xa2",
+ 0x000030db => "\xa3",
+ 0x000030de => "\xa4",
+ 0x000030df => "\xa5",
+ 0x000030e0 => "\xa6",
+ 0x000030e1 => "\xa7",
+ 0x000030e2 => "\xa8",
+ 0x000030e3 => "\x53",
+ 0x000030e4 => "\xa9",
+ 0x000030e5 => "\x54",
+ 0x000030e6 => "\xaa",
+ 0x000030e7 => "\x55",
+ 0x000030e8 => "\xac",
+ 0x000030e9 => "\xad",
+ 0x000030ea => "\xae",
+ 0x000030eb => "\xaf",
+ 0x000030ec => "\xba",
+ 0x000030ed => "\xbb",
+ 0x000030ef => "\xbc",
+ 0x000030f2 => "\x46",
+ 0x000030f3 => "\xbd",
+ 0x000030fb => "\x45",
+ 0x000030fc => "\x58",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM290 - Conversion routines for IBM290
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM290.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ alias CP290
+ alias EBCDIC-JP-KANA
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 00003002 | IDEOGRAPHIC FULL STOP
+ 42 | 0000300C | LEFT CORNER BRACKET
+ 43 | 0000300D | RIGHT CORNER BRACKET
+ 44 | 00003001 | IDEOGRAPHIC COMMA
+ 45 | 000030FB | KATAKANA MIDDLE DOT
+ 46 | 000030F2 | KATAKANA LETTER WO
+ 47 | 000030A1 | KATAKANA LETTER SMALL A
+ 48 | 000030A3 | KATAKANA LETTER SMALL I
+ 49 | 000030A5 | KATAKANA LETTER SMALL U
+ 4A | 000000A3 | POUND SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000030A7 | KATAKANA LETTER SMALL E
+ 52 | 000030A9 | KATAKANA LETTER SMALL O
+ 53 | 000030E3 | KATAKANA LETTER SMALL YA
+ 54 | 000030E5 | KATAKANA LETTER SMALL YU
+ 55 | 000030E7 | KATAKANA LETTER SMALL YO
+ 56 | 000030C3 | KATAKANA LETTER SMALL TU
+ 58 | 000030FC | KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 000000A5 | YEN SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 000030A2 | KATAKANA LETTER A
+ 82 | 000030A4 | KATAKANA LETTER I
+ 83 | 000030A6 | KATAKANA LETTER U
+ 84 | 000030A8 | KATAKANA LETTER E
+ 85 | 000030AA | KATAKANA LETTER O
+ 86 | 000030AB | KATAKANA LETTER KA
+ 87 | 000030AD | KATAKANA LETTER KI
+ 88 | 000030AF | KATAKANA LETTER KU
+ 89 | 000030B1 | KATAKANA LETTER KE
+ 8A | 000030B3 | KATAKANA LETTER KO
+ 8C | 000030B5 | KATAKANA LETTER SA
+ 8D | 000030B7 | KATAKANA LETTER SI
+ 8E | 000030B9 | KATAKANA LETTER SU
+ 8F | 000030BB | KATAKANA LETTER SE
+ 90 | 000030BD | KATAKANA LETTER SO
+ 91 | 000030BF | KATAKANA LETTER TA
+ 92 | 000030C1 | KATAKANA LETTER TI
+ 93 | 000030C4 | KATAKANA LETTER TU
+ 94 | 000030C6 | KATAKANA LETTER TE
+ 95 | 000030C8 | KATAKANA LETTER TO
+ 96 | 000030CA | KATAKANA LETTER NA
+ 97 | 000030CB | KATAKANA LETTER NI
+ 98 | 000030CC | KATAKANA LETTER NU
+ 99 | 000030CD | KATAKANA LETTER NE
+ 9A | 000030CE | KATAKANA LETTER NO
+ 9D | 000030CF | KATAKANA LETTER HA
+ 9E | 000030D2 | KATAKANA LETTER HI
+ 9F | 000030D5 | KATAKANA LETTER HU
+ A1 | 0000203E | OVERLINE
+ A2 | 000030D8 | KATAKANA LETTER HE
+ A3 | 000030DB | KATAKANA LETTER HO
+ A4 | 000030DE | KATAKANA LETTER MA
+ A5 | 000030DF | KATAKANA LETTER MI
+ A6 | 000030E0 | KATAKANA LETTER MU
+ A7 | 000030E1 | KATAKANA LETTER ME
+ A8 | 000030E2 | KATAKANA LETTER MO
+ A9 | 000030E4 | KATAKANA LETTER YA
+ AA | 000030E6 | KATAKANA LETTER YU
+ AC | 000030E8 | KATAKANA LETTER YO
+ AD | 000030E9 | KATAKANA LETTER RA
+ AE | 000030EA | KATAKANA LETTER RI
+ AF | 000030EB | KATAKANA LETTER RU
+ BA | 000030EC | KATAKANA LETTER RE
+ BB | 000030ED | KATAKANA LETTER RO
+ BC | 000030EF | KATAKANA LETTER WA
+ BD | 000030F3 | KATAKANA LETTER N
+ BE | 0000309B | KATAKANA-HIRAGANA VOICED SOUND MARK
+ BF | 0000309C | KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ E0 | 00000024 | DOLLAR SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM297.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM297.pm
new file mode 100644
index 0000000..7e5a9d7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM297.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM297.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM297.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM297;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x0040,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x005c,
+ 0x00f1,
+ 0x00b0,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x007b,
+ 0x00ea,
+ 0x00eb,
+ 0x007d,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x00a7,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00f9,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00b5,
+ 0x003a,
+ 0x00a3,
+ 0x00e0,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x005b,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x0060,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x0023,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x005d,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x203e,
+ 0x007e,
+ 0x00b4,
+ 0x00d7,
+ 0x00e9,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x00e8,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00a6,
+ 0x00fa,
+ 0x00ff,
+ 0x00e7,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\x40",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\x5c",
+ "\xc3\xb1",
+ "\xc2\xb0",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\x7b",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\x7d",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc2\xa7",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc3\xb9",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc2\xb5",
+ "\x3a",
+ "\xc2\xa3",
+ "\xc3\xa0",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\x5b",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\x60",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\x23",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\x5d",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xe2\x80\xbe",
+ "\x7e",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa9",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xa8",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc2\xa6",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\xc3\xa7",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\xb1",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x44",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x90",
+ 0x0000005c => "\x48",
+ 0x0000005d => "\xb5",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\xa0",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x51",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x54",
+ 0x0000007e => "\xbd",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\x7b",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\xdd",
+ 0x000000a7 => "\x5a",
+ 0x000000a8 => "\xa1",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x4a",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\x79",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x7c",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\xe0",
+ 0x000000e8 => "\xd0",
+ 0x000000e9 => "\xc0",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\x6a",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+ 0x0000203e => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM297 - Conversion routines for IBM297
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM297.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP297
+ alias EBCDIC-CP-FR
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 00000040 | COMMERCIAL AT
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 0000005C | REVERSE SOLIDUS
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000B0 | DEGREE SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000007B | LEFT CURLY BRACKET
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 0000007D | RIGHT CURLY BRACKET
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 000000A7 | SECTION SIGN
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 000000B5 | MICRO SIGN
+ 7A | 0000003A | COLON
+ 7B | 000000A3 | POUND SIGN
+ 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 0000005B | LEFT SQUARE BRACKET
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 00000060 | GRAVE ACCENT
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 00000023 | NUMBER SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 0000005D | RIGHT SQUARE BRACKET
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 0000203E | OVERLINE
+ BD | 0000007E | TILDE
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000A6 | BROKEN BAR
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM420.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM420.pm
new file mode 100644
index 0000000..c527003
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM420.pm
@@ -0,0 +1,1128 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM420.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM420.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM420;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x0651,
+ 0xfe7d,
+ 0x0640,
+ 0xfffd,
+ 0x0621,
+ 0x0622,
+ 0xfe82,
+ 0x0623,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0xfe84,
+ 0x0624,
+ 0xfffd,
+ 0xfffd,
+ 0x0626,
+ 0x0627,
+ 0xfe8e,
+ 0x0628,
+ 0xfe91,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0x0629,
+ 0x062a,
+ 0xfe97,
+ 0x062b,
+ 0xfe9b,
+ 0x062c,
+ 0xfe9f,
+ 0x062d,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfea3,
+ 0x062e,
+ 0xfea7,
+ 0x062f,
+ 0x0630,
+ 0x0631,
+ 0x0632,
+ 0x0633,
+ 0xfeb3,
+ 0x060c,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x0634,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0xfeb7,
+ 0x0635,
+ 0xfebb,
+ 0x0636,
+ 0xfebf,
+ 0x0637,
+ 0x0638,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0639,
+ 0xfeca,
+ 0xfecb,
+ 0xfecc,
+ 0x063a,
+ 0xfece,
+ 0xfecf,
+ 0x00f7,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfed0,
+ 0x0641,
+ 0xfed3,
+ 0x0642,
+ 0xfed7,
+ 0x0643,
+ 0xfedb,
+ 0x0644,
+ 0xfef5,
+ 0xfef6,
+ 0xfef7,
+ 0xfef8,
+ 0xfffd,
+ 0xfffd,
+ 0xfefb,
+ 0xfefc,
+ 0xfedf,
+ 0x0645,
+ 0xfee3,
+ 0x0646,
+ 0xfee7,
+ 0x0647,
+ 0x061b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0xfeeb,
+ 0xfffd,
+ 0xfeec,
+ 0xfffd,
+ 0x0648,
+ 0x061f,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0649,
+ 0xfef0,
+ 0x064a,
+ 0xfef2,
+ 0xfef3,
+ 0x0660,
+ 0x00d7,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x0661,
+ 0x0662,
+ 0xfffd,
+ 0x0663,
+ 0x0664,
+ 0x0665,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0x0666,
+ 0x0667,
+ 0x0668,
+ 0x0669,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xd9\x91",
+ "\xef\xb9\xbd",
+ "\xd9\x80",
+ "\xef\xbf\xbd",
+ "\xd8\xa1",
+ "\xd8\xa2",
+ "\xef\xba\x82",
+ "\xd8\xa3",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xef\xba\x84",
+ "\xd8\xa4",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xa6",
+ "\xd8\xa7",
+ "\xef\xba\x8e",
+ "\xd8\xa8",
+ "\xef\xba\x91",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xef\xba\x97",
+ "\xd8\xab",
+ "\xef\xba\x9b",
+ "\xd8\xac",
+ "\xef\xba\x9f",
+ "\xd8\xad",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xba\xa3",
+ "\xd8\xae",
+ "\xef\xba\xa7",
+ "\xd8\xaf",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xd8\xb2",
+ "\xd8\xb3",
+ "\xef\xba\xb3",
+ "\xd8\x8c",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xd8\xb4",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xef\xba\xb7",
+ "\xd8\xb5",
+ "\xef\xba\xbb",
+ "\xd8\xb6",
+ "\xef\xba\xbf",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xd8\xb9",
+ "\xef\xbb\x8a",
+ "\xef\xbb\x8b",
+ "\xef\xbb\x8c",
+ "\xd8\xba",
+ "\xef\xbb\x8e",
+ "\xef\xbb\x8f",
+ "\xc3\xb7",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbb\x90",
+ "\xd9\x81",
+ "\xef\xbb\x93",
+ "\xd9\x82",
+ "\xef\xbb\x97",
+ "\xd9\x83",
+ "\xef\xbb\x9b",
+ "\xd9\x84",
+ "\xef\xbb\xb5",
+ "\xef\xbb\xb6",
+ "\xef\xbb\xb7",
+ "\xef\xbb\xb8",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbb\xbb",
+ "\xef\xbb\xbc",
+ "\xef\xbb\x9f",
+ "\xd9\x85",
+ "\xef\xbb\xa3",
+ "\xd9\x86",
+ "\xef\xbb\xa7",
+ "\xd9\x87",
+ "\xd8\x9b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xef\xbb\xab",
+ "\xef\xbf\xbd",
+ "\xef\xbb\xac",
+ "\xef\xbf\xbd",
+ "\xd9\x88",
+ "\xd8\x9f",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xd9\x89",
+ "\xef\xbb\xb0",
+ "\xd9\x8a",
+ "\xef\xbb\xb2",
+ "\xef\xbb\xb3",
+ "\xd9\xa0",
+ "\xc3\x97",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xd9\xa1",
+ "\xd9\xa2",
+ "\xef\xbf\xbd",
+ "\xd9\xa3",
+ "\xd9\xa4",
+ "\xd9\xa5",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xd9\xa6",
+ "\xd9\xa7",
+ "\xd9\xa8",
+ "\xd9\xa9",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007c => "\x4f",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a2 => "\x4a",
+ 0x000000a6 => "\x6a",
+ 0x000000ac => "\x5f",
+ 0x000000ad => "\xca",
+ 0x000000d7 => "\xe0",
+ 0x000000f7 => "\xa1",
+ 0x0000060c => "\x79",
+ 0x0000061b => "\xc0",
+ 0x0000061f => "\xd0",
+ 0x00000621 => "\x46",
+ 0x00000622 => "\x47",
+ 0x00000623 => "\x49",
+ 0x00000624 => "\x52",
+ 0x00000626 => "\x55",
+ 0x00000627 => "\x56",
+ 0x00000628 => "\x58",
+ 0x00000629 => "\x62",
+ 0x0000062a => "\x63",
+ 0x0000062b => "\x65",
+ 0x0000062c => "\x67",
+ 0x0000062d => "\x69",
+ 0x0000062e => "\x71",
+ 0x0000062f => "\x73",
+ 0x00000630 => "\x74",
+ 0x00000631 => "\x75",
+ 0x00000632 => "\x76",
+ 0x00000633 => "\x77",
+ 0x00000634 => "\x80",
+ 0x00000635 => "\x8b",
+ 0x00000636 => "\x8d",
+ 0x00000637 => "\x8f",
+ 0x00000638 => "\x90",
+ 0x00000639 => "\x9a",
+ 0x0000063a => "\x9e",
+ 0x00000640 => "\x44",
+ 0x00000641 => "\xab",
+ 0x00000642 => "\xad",
+ 0x00000643 => "\xaf",
+ 0x00000644 => "\xb1",
+ 0x00000645 => "\xbb",
+ 0x00000646 => "\xbd",
+ 0x00000647 => "\xbf",
+ 0x00000648 => "\xcf",
+ 0x00000649 => "\xda",
+ 0x0000064a => "\xdc",
+ 0x00000651 => "\x42",
+ 0x00000660 => "\xdf",
+ 0x00000661 => "\xea",
+ 0x00000662 => "\xeb",
+ 0x00000663 => "\xed",
+ 0x00000664 => "\xee",
+ 0x00000665 => "\xef",
+ 0x00000666 => "\xfb",
+ 0x00000667 => "\xfc",
+ 0x00000668 => "\xfd",
+ 0x00000669 => "\xfe",
+ 0x0000fe7d => "\x43",
+ 0x0000fe82 => "\x48",
+ 0x0000fe84 => "\x51",
+ 0x0000fe8e => "\x57",
+ 0x0000fe91 => "\x59",
+ 0x0000fe97 => "\x64",
+ 0x0000fe9b => "\x66",
+ 0x0000fe9f => "\x68",
+ 0x0000fea3 => "\x70",
+ 0x0000fea7 => "\x72",
+ 0x0000feb3 => "\x78",
+ 0x0000feb7 => "\x8a",
+ 0x0000febb => "\x8c",
+ 0x0000febf => "\x8e",
+ 0x0000feca => "\x9b",
+ 0x0000fecb => "\x9c",
+ 0x0000fecc => "\x9d",
+ 0x0000fece => "\x9f",
+ 0x0000fecf => "\xa0",
+ 0x0000fed0 => "\xaa",
+ 0x0000fed3 => "\xac",
+ 0x0000fed7 => "\xae",
+ 0x0000fedb => "\xb0",
+ 0x0000fedf => "\xba",
+ 0x0000fee3 => "\xbc",
+ 0x0000fee7 => "\xbe",
+ 0x0000feeb => "\xcb",
+ 0x0000feec => "\xcd",
+ 0x0000fef0 => "\xdb",
+ 0x0000fef2 => "\xdd",
+ 0x0000fef3 => "\xde",
+ 0x0000fef5 => "\xb2",
+ 0x0000fef6 => "\xb3",
+ 0x0000fef7 => "\xb4",
+ 0x0000fef8 => "\xb5",
+ 0x0000fefb => "\xb8",
+ 0x0000fefc => "\xb9",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\xd0"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM420 - Conversion routines for IBM420
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM420.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ IBM NLS RM p 11-11
+ alias CP420
+ alias EBCDIC-CP-AR1
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 00000651 | ARABIC SHADDA
+ 43 | 0000FE7D | ARABIC SHADDA MEDIAL FORM
+ 44 | 00000640 | ARABIC TATWEEL
+ 46 | 00000621 | ARABIC LETTER HAMZA
+ 47 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ 48 | 0000FE82 | ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+ 49 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000FE84 | ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+ 52 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
+ 55 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
+ 56 | 00000627 | ARABIC LETTER ALEF
+ 57 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM
+ 58 | 00000628 | ARABIC LETTER BEH
+ 59 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 00000629 | ARABIC LETTER TEH MARBUTA
+ 63 | 0000062A | ARABIC LETTER TEH
+ 64 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM
+ 65 | 0000062B | ARABIC LETTER THEH
+ 66 | 0000FE9B | ARABIC LETTER THEH INITIAL FORM
+ 67 | 0000062C | ARABIC LETTER JEEM
+ 68 | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM
+ 69 | 0000062D | ARABIC LETTER HAH
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM
+ 71 | 0000062E | ARABIC LETTER KHAH
+ 72 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM
+ 73 | 0000062F | ARABIC LETTER DAL
+ 74 | 00000630 | ARABIC LETTER THAL
+ 75 | 00000631 | ARABIC LETTER REH
+ 76 | 00000632 | ARABIC LETTER ZAIN
+ 77 | 00000633 | ARABIC LETTER SEEN
+ 78 | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM
+ 79 | 0000060C | ARABIC COMMA
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 00000634 | ARABIC LETTER SHEEN
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM
+ 8B | 00000635 | ARABIC LETTER SAD
+ 8C | 0000FEBB | ARABIC LETTER SAD INITIAL FORM
+ 8D | 00000636 | ARABIC LETTER DAD
+ 8E | 0000FEBF | ARABIC LETTER DAD INITIAL FORM
+ 8F | 00000637 | ARABIC LETTER TAH
+ 90 | 00000638 | ARABIC LETTER ZAH
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 00000639 | ARABIC LETTER AIN
+ 9B | 0000FECA | ARABIC LETTER AIN FINAL FORM
+ 9C | 0000FECB | ARABIC LETTER AIN INITIAL FORM
+ 9D | 0000FECC | ARABIC LETTER AIN MEDIAL FORM
+ 9E | 0000063A | ARABIC LETTER GHAIN
+ 9F | 0000FECE | ARABIC LETTER GHAIN FINAL FORM
+ A0 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM
+ A1 | 000000F7 | DIVISION SIGN
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM
+ AB | 00000641 | ARABIC LETTER FEH
+ AC | 0000FED3 | ARABIC LETTER FEH INITIAL FORM
+ AD | 00000642 | ARABIC LETTER QAF
+ AE | 0000FED7 | ARABIC LETTER QAF INITIAL FORM
+ AF | 00000643 | ARABIC LETTER KAF
+ B0 | 0000FEDB | ARABIC LETTER KAF INITIAL FORM
+ B1 | 00000644 | ARABIC LETTER LAM
+ B2 | 0000FEF5 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+ B3 | 0000FEF6 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+ B4 | 0000FEF7 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+ B5 | 0000FEF8 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+ B8 | 0000FEFB | ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+ B9 | 0000FEFC | ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+ BA | 0000FEDF | ARABIC LETTER LAM INITIAL FORM
+ BB | 00000645 | ARABIC LETTER MEEM
+ BC | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM
+ BD | 00000646 | ARABIC LETTER NOON
+ BE | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM
+ BF | 00000647 | ARABIC LETTER HEH
+ C0 | 0000061B | ARABIC SEMICOLON
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 0000FEEB | ARABIC LETTER HEH INITIAL FORM
+ CD | 0000FEEC | ARABIC LETTER HEH MEDIAL FORM
+ CF | 00000648 | ARABIC LETTER WAW
+ D0 | 0000061F | ARABIC QUESTION MARK
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 00000649 | ARABIC LETTER ALEF MAKSURA
+ DB | 0000FEF0 | ARABIC LETTER ALEF MAKSURA FINAL FORM
+ DC | 0000064A | ARABIC LETTER YEH
+ DD | 0000FEF2 | ARABIC LETTER YEH FINAL FORM
+ DE | 0000FEF3 | ARABIC LETTER YEH INITIAL FORM
+ DF | 00000660 | ARABIC-INDIC DIGIT ZERO
+ E0 | 000000D7 | MULTIPLICATION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 00000661 | ARABIC-INDIC DIGIT ONE
+ EB | 00000662 | ARABIC-INDIC DIGIT TWO
+ ED | 00000663 | ARABIC-INDIC DIGIT THREE
+ EE | 00000664 | ARABIC-INDIC DIGIT FOUR
+ EF | 00000665 | ARABIC-INDIC DIGIT FIVE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FB | 00000666 | ARABIC-INDIC DIGIT SIX
+ FC | 00000667 | ARABIC-INDIC DIGIT SEVEN
+ FD | 00000668 | ARABIC-INDIC DIGIT EIGHT
+ FE | 00000669 | ARABIC-INDIC DIGIT NINE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM423.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM423.pm
new file mode 100644
index 0000000..2eae061
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM423.pm
@@ -0,0 +1,1127 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM423.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM423.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM423;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0x03a3,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0x0386,
+ 0x0388,
+ 0x0389,
+ 0xfffd,
+ 0x038a,
+ 0x038c,
+ 0x038e,
+ 0x038f,
+ 0x0060,
+ 0x003a,
+ 0x00a3,
+ 0x00a7,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00c4,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x00d6,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x00dc,
+ 0x00a8,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c2,
+ 0xfffd,
+ 0x03ac,
+ 0x03ad,
+ 0x03ae,
+ 0x03ca,
+ 0x03af,
+ 0x03cc,
+ 0x03cd,
+ 0x03cb,
+ 0x03ce,
+ 0x03c3,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x00b8,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0xfffd,
+ 0x03c9,
+ 0x00c2,
+ 0x00e0,
+ 0x00e4,
+ 0x00ea,
+ 0x00b4,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b1,
+ 0x00e9,
+ 0x00e8,
+ 0x00eb,
+ 0x00ee,
+ 0x00ef,
+ 0x00b0,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00bd,
+ 0x00f6,
+ 0x00f4,
+ 0x00fb,
+ 0x00f9,
+ 0x00fc,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00ff,
+ 0x00e7,
+ 0x00c7,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xce\x86",
+ "\xce\x88",
+ "\xce\x89",
+ "\xef\xbf\xbd",
+ "\xce\x8a",
+ "\xce\x8c",
+ "\xce\x8e",
+ "\xce\x8f",
+ "\x60",
+ "\x3a",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x84",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xc3\x96",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xc3\x9c",
+ "\xc2\xa8",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x82",
+ "\xef\xbf\xbd",
+ "\xce\xac",
+ "\xce\xad",
+ "\xce\xae",
+ "\xcf\x8a",
+ "\xce\xaf",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xcf\x8b",
+ "\xcf\x8e",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xc2\xb8",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xef\xbf\xbd",
+ "\xcf\x89",
+ "\xc3\x82",
+ "\xc3\xa0",
+ "\xc3\xa4",
+ "\xc3\xaa",
+ "\xc2\xb4",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb1",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xab",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc2\xb0",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xbd",
+ "\xc3\xb6",
+ "\xc3\xb4",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbc",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc3\xbf",
+ "\xc3\xa7",
+ "\xc3\x87",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\x7b",
+ 0x000000a7 => "\x7c",
+ 0x000000a8 => "\xa1",
+ 0x000000b0 => "\xe0",
+ 0x000000b1 => "\xda",
+ 0x000000b4 => "\xd0",
+ 0x000000b8 => "\xc0",
+ 0x000000bd => "\xea",
+ 0x000000c2 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c7 => "\xfc",
+ 0x000000d6 => "\x90",
+ 0x000000dc => "\xa0",
+ 0x000000e0 => "\xcd",
+ 0x000000e4 => "\xce",
+ 0x000000e7 => "\xfb",
+ 0x000000e8 => "\xdc",
+ 0x000000e9 => "\xdb",
+ 0x000000ea => "\xcf",
+ 0x000000eb => "\xdd",
+ 0x000000ee => "\xde",
+ 0x000000ef => "\xdf",
+ 0x000000f4 => "\xec",
+ 0x000000f6 => "\xeb",
+ 0x000000f9 => "\xee",
+ 0x000000fb => "\xed",
+ 0x000000fc => "\xef",
+ 0x000000ff => "\xfa",
+ 0x00000386 => "\x71",
+ 0x00000388 => "\x72",
+ 0x00000389 => "\x73",
+ 0x0000038a => "\x75",
+ 0x0000038c => "\x76",
+ 0x0000038e => "\x77",
+ 0x0000038f => "\x78",
+ 0x00000391 => "\x41",
+ 0x00000392 => "\x42",
+ 0x00000393 => "\x43",
+ 0x00000394 => "\x44",
+ 0x00000395 => "\x45",
+ 0x00000396 => "\x46",
+ 0x00000397 => "\x47",
+ 0x00000398 => "\x48",
+ 0x00000399 => "\x49",
+ 0x0000039a => "\x51",
+ 0x0000039b => "\x52",
+ 0x0000039c => "\x53",
+ 0x0000039d => "\x54",
+ 0x0000039e => "\x55",
+ 0x0000039f => "\x56",
+ 0x000003a0 => "\x57",
+ 0x000003a1 => "\x58",
+ 0x000003a3 => "\x59",
+ 0x000003a4 => "\x62",
+ 0x000003a5 => "\x63",
+ 0x000003a6 => "\x64",
+ 0x000003a7 => "\x65",
+ 0x000003a8 => "\x66",
+ 0x000003a9 => "\x67",
+ 0x000003ac => "\xb1",
+ 0x000003ad => "\xb2",
+ 0x000003ae => "\xb3",
+ 0x000003af => "\xb5",
+ 0x000003b1 => "\x8a",
+ 0x000003b2 => "\x8b",
+ 0x000003b3 => "\x8c",
+ 0x000003b4 => "\x8d",
+ 0x000003b5 => "\x8e",
+ 0x000003b6 => "\x8f",
+ 0x000003b7 => "\x9a",
+ 0x000003b8 => "\x9b",
+ 0x000003b9 => "\x9c",
+ 0x000003ba => "\x9d",
+ 0x000003bb => "\x9e",
+ 0x000003bc => "\x9f",
+ 0x000003bd => "\xaa",
+ 0x000003be => "\xab",
+ 0x000003bf => "\xac",
+ 0x000003c0 => "\xad",
+ 0x000003c1 => "\xae",
+ 0x000003c2 => "\xaf",
+ 0x000003c3 => "\xba",
+ 0x000003c4 => "\xbb",
+ 0x000003c5 => "\xbc",
+ 0x000003c6 => "\xbd",
+ 0x000003c7 => "\xbe",
+ 0x000003c8 => "\xbf",
+ 0x000003c9 => "\xcb",
+ 0x000003ca => "\xb4",
+ 0x000003cb => "\xb8",
+ 0x000003cc => "\xb6",
+ 0x000003cd => "\xb7",
+ 0x000003ce => "\xb9",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM423 - Conversion routines for IBM423
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM423.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP423
+ alias EBCDIC-CP-GR
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 42 | 00000392 | GREEK CAPITAL LETTER BETA
+ 43 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 44 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 45 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 46 | 00000396 | GREEK CAPITAL LETTER ZETA
+ 47 | 00000397 | GREEK CAPITAL LETTER ETA
+ 48 | 00000398 | GREEK CAPITAL LETTER THETA
+ 49 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 52 | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 53 | 0000039C | GREEK CAPITAL LETTER MU
+ 54 | 0000039D | GREEK CAPITAL LETTER NU
+ 55 | 0000039E | GREEK CAPITAL LETTER XI
+ 56 | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 57 | 000003A0 | GREEK CAPITAL LETTER PI
+ 58 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 59 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 63 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 64 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 65 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 66 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 67 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 71 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 72 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ 73 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ 75 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ 76 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 77 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ 78 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 000000A3 | POUND SIGN
+ 7C | 000000A7 | SECTION SIGN
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000003B1 | GREEK SMALL LETTER ALPHA
+ 8B | 000003B2 | GREEK SMALL LETTER BETA
+ 8C | 000003B3 | GREEK SMALL LETTER GAMMA
+ 8D | 000003B4 | GREEK SMALL LETTER DELTA
+ 8E | 000003B5 | GREEK SMALL LETTER EPSILON
+ 8F | 000003B6 | GREEK SMALL LETTER ZETA
+ 90 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000003B7 | GREEK SMALL LETTER ETA
+ 9B | 000003B8 | GREEK SMALL LETTER THETA
+ 9C | 000003B9 | GREEK SMALL LETTER IOTA
+ 9D | 000003BA | GREEK SMALL LETTER KAPPA
+ 9E | 000003BB | GREEK SMALL LETTER LAMDA
+ 9F | 000003BC | GREEK SMALL LETTER MU
+ A0 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ A1 | 000000A8 | DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000003BD | GREEK SMALL LETTER NU
+ AB | 000003BE | GREEK SMALL LETTER XI
+ AC | 000003BF | GREEK SMALL LETTER OMICRON
+ AD | 000003C0 | GREEK SMALL LETTER PI
+ AE | 000003C1 | GREEK SMALL LETTER RHO
+ AF | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ B1 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ B2 | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ B3 | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ B4 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ B5 | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ B6 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ B7 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ B8 | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ B9 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+ BA | 000003C3 | GREEK SMALL LETTER SIGMA
+ BB | 000003C4 | GREEK SMALL LETTER TAU
+ BC | 000003C5 | GREEK SMALL LETTER UPSILON
+ BD | 000003C6 | GREEK SMALL LETTER PHI
+ BE | 000003C7 | GREEK SMALL LETTER CHI
+ BF | 000003C8 | GREEK SMALL LETTER PSI
+ C0 | 000000B8 | CEDILLA
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CB | 000003C9 | GREEK SMALL LETTER OMEGA
+ CC | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ CD | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ CE | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ CF | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ D0 | 000000B4 | ACUTE ACCENT
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B1 | PLUS-MINUS SIGN
+ DB | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ DC | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ DD | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ DE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ DF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ E0 | 000000B0 | DEGREE SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000BD | VULGAR FRACTION ONE HALF
+ EB | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ EC | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ ED | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ EE | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ EF | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ FB | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ FC | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM424.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM424.pm
new file mode 100644
index 0000000..8fcfa42
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM424.pm
@@ -0,0 +1,1069 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM424.pm,v 1.1 2011-10-12 23:51:37 pertusus Exp $
+
+# Conversion routines for IBM424.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM424;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x00a2,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x007c,
+ 0x0026,
+ 0x05d9,
+ 0x05da,
+ 0x05db,
+ 0x05dc,
+ 0x05dd,
+ 0x05de,
+ 0x05df,
+ 0x05e0,
+ 0x05e1,
+ 0x0021,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00ac,
+ 0x002d,
+ 0x002f,
+ 0x05e2,
+ 0x05e3,
+ 0x05e4,
+ 0x05e5,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0x05ea,
+ 0xfffd,
+ 0xfffd,
+ 0x00a0,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x21d4,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b8,
+ 0xfffd,
+ 0x00a4,
+ 0x00b5,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ae,
+ 0x005e,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x005b,
+ 0x005d,
+ 0x203e,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xc2\xa2",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x7c",
+ "\x26",
+ "\xd7\x99",
+ "\xd7\x9a",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9d",
+ "\xd7\x9e",
+ "\xd7\x9f",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\x21",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc2\xac",
+ "\x2d",
+ "\x2f",
+ "\xd7\xa2",
+ "\xd7\xa3",
+ "\xd7\xa4",
+ "\xd7\xa5",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xd7\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x87\x94",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb8",
+ "\xef\xbf\xbd",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xae",
+ "\x5e",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\x5b",
+ "\x5d",
+ "\xe2\x80\xbe",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x5a",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xba",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\xbb",
+ 0x0000005e => "\xb0",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x4f",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x74",
+ 0x000000a2 => "\x4a",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\x5f",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000b0 => "\x90",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000d7 => "\xbf",
+ 0x000000f7 => "\xe1",
+ 0x000005d0 => "\x41",
+ 0x000005d1 => "\x42",
+ 0x000005d2 => "\x43",
+ 0x000005d3 => "\x44",
+ 0x000005d4 => "\x45",
+ 0x000005d5 => "\x46",
+ 0x000005d6 => "\x47",
+ 0x000005d7 => "\x48",
+ 0x000005d8 => "\x49",
+ 0x000005d9 => "\x51",
+ 0x000005da => "\x52",
+ 0x000005db => "\x53",
+ 0x000005dc => "\x54",
+ 0x000005dd => "\x55",
+ 0x000005de => "\x56",
+ 0x000005df => "\x57",
+ 0x000005e0 => "\x58",
+ 0x000005e1 => "\x59",
+ 0x000005e2 => "\x62",
+ 0x000005e3 => "\x63",
+ 0x000005e4 => "\x64",
+ 0x000005e5 => "\x65",
+ 0x000005e6 => "\x66",
+ 0x000005e7 => "\x67",
+ 0x000005e8 => "\x68",
+ 0x000005e9 => "\x69",
+ 0x000005ea => "\x71",
+ 0x0000203e => "\xbc",
+ 0x000021d4 => "\x78",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM424 - Conversion routines for IBM424
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM424.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP424
+ alias EBCDIC-CP-HE
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000005D0 | HEBREW LETTER ALEF
+ 42 | 000005D1 | HEBREW LETTER BET
+ 43 | 000005D2 | HEBREW LETTER GIMEL
+ 44 | 000005D3 | HEBREW LETTER DALET
+ 45 | 000005D4 | HEBREW LETTER HE
+ 46 | 000005D5 | HEBREW LETTER VAV
+ 47 | 000005D6 | HEBREW LETTER ZAYIN
+ 48 | 000005D7 | HEBREW LETTER HET
+ 49 | 000005D8 | HEBREW LETTER TET
+ 4A | 000000A2 | CENT SIGN
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 0000007C | VERTICAL LINE
+ 50 | 00000026 | AMPERSAND
+ 51 | 000005D9 | HEBREW LETTER YOD
+ 52 | 000005DA | HEBREW LETTER FINAL KAF
+ 53 | 000005DB | HEBREW LETTER KAF
+ 54 | 000005DC | HEBREW LETTER LAMED
+ 55 | 000005DD | HEBREW LETTER FINAL MEM
+ 56 | 000005DE | HEBREW LETTER MEM
+ 57 | 000005DF | HEBREW LETTER FINAL NUN
+ 58 | 000005E0 | HEBREW LETTER NUN
+ 59 | 000005E1 | HEBREW LETTER SAMEKH
+ 5A | 00000021 | EXCLAMATION MARK
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000AC | NOT SIGN
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000005E2 | HEBREW LETTER AYIN
+ 63 | 000005E3 | HEBREW LETTER FINAL PE
+ 64 | 000005E4 | HEBREW LETTER PE
+ 65 | 000005E5 | HEBREW LETTER FINAL TSADI
+ 66 | 000005E6 | HEBREW LETTER TSADI
+ 67 | 000005E7 | HEBREW LETTER QOF
+ 68 | 000005E8 | HEBREW LETTER RESH
+ 69 | 000005E9 | HEBREW LETTER SHIN
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 71 | 000005EA | HEBREW LETTER TAV
+ 74 | 000000A0 | NO-BREAK SPACE
+ 78 | 000021D4 | LEFT RIGHT DOUBLE ARROW
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9D | 000000B8 | CEDILLA
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 0000005E | CIRCUMFLEX ACCENT
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 0000005B | LEFT SQUARE BRACKET
+ BB | 0000005D | RIGHT SQUARE BRACKET
+ BC | 0000203E | OVERLINE
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM437.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM437.pm
new file mode 100644
index 0000000..1c9a161
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM437.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM437.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM437.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM437;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00ec,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x00ff,
+ 0x00d6,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x20a7,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\xac",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xe2\x82\xa7",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a5 => "\x9d",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b5 => "\xe6",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000d1 => "\xa5",
+ 0x000000d6 => "\x99",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000ff => "\x98",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM437 - Conversion routines for IBM437
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM437.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP437
+ alias 437
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000A5 | YEN SIGN
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM500.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM500.pm
new file mode 100644
index 0000000..8122da9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM500.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM500.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM500.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM500;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x00f0,
+ 0x00fd,
+ 0x00fe,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x00e6,
+ 0x00b8,
+ 0x00c6,
+ 0x00a4,
+ 0x00b5,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x00d0,
+ 0x00dd,
+ 0x00de,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x00af,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x00d6,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xc3\xb0",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc3\xa6",
+ "\xc2\xb8",
+ "\xc3\x86",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\xc3\x90",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xc2\xaf",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000af => "\xbc",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x9e",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\xac",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xae",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\x9c",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x8c",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x8e",
+ 0x000000ff => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM500 - Conversion routines for IBM500
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM500.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP500
+ alias 500
+ alias 500V1
+ alias EBCDIC-CP-BE
+ alias EBCDIC-CP-CH
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 000000E6 | LATIN SMALL LETTER AE
+ 9D | 000000B8 | CEDILLA
+ 9E | 000000C6 | LATIN CAPITAL LETTER AE
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 000000AF | MACRON
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM850.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM850.pm
new file mode 100644
index 0000000..b2113d0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM850.pm
@@ -0,0 +1,1148 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM850.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM850.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM850;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00ec,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x00ff,
+ 0x00d6,
+ 0x00dc,
+ 0x00f8,
+ 0x00a3,
+ 0x00d8,
+ 0x00d7,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x00ae,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x00c1,
+ 0x00c2,
+ 0x00c0,
+ 0x00a9,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x00a2,
+ 0x00a5,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x00e3,
+ 0x00c3,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x00a4,
+ 0x00f0,
+ 0x00d0,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x0131,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x00a6,
+ 0x00cc,
+ 0x2580,
+ 0x00d3,
+ 0x00df,
+ 0x00d4,
+ 0x00d2,
+ 0x00f5,
+ 0x00d5,
+ 0x00b5,
+ 0x00fe,
+ 0x00de,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x00fd,
+ 0x00dd,
+ 0x00af,
+ 0x00b4,
+ 0x00ad,
+ 0x00b1,
+ 0x2017,
+ 0x00be,
+ 0x00b6,
+ 0x00a7,
+ 0x00f7,
+ 0x00b8,
+ 0x00b0,
+ 0x00a8,
+ 0x00b7,
+ 0x00b9,
+ 0x00b3,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\xac",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xb8",
+ "\xc2\xa3",
+ "\xc3\x98",
+ "\xc3\x97",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xc2\xae",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x80",
+ "\xc2\xa9",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xc2\xa2",
+ "\xc2\xa5",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xc3\xa3",
+ "\xc3\x83",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xc2\xa4",
+ "\xc3\xb0",
+ "\xc3\x90",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc4\xb1",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xc2\xa6",
+ "\xc3\x8c",
+ "\xe2\x96\x80",
+ "\xc3\x93",
+ "\xc3\x9f",
+ "\xc3\x94",
+ "\xc3\x92",
+ "\xc3\xb5",
+ "\xc3\x95",
+ "\xc2\xb5",
+ "\xc3\xbe",
+ "\xc3\x9e",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc3\xbd",
+ "\xc3\x9d",
+ "\xc2\xaf",
+ "\xc2\xb4",
+ "\xc2\xad",
+ "\xc2\xb1",
+ "\xe2\x80\x97",
+ "\xc2\xbe",
+ "\xc2\xb6",
+ "\xc2\xa7",
+ "\xc3\xb7",
+ "\xc2\xb8",
+ "\xc2\xb0",
+ "\xc2\xa8",
+ "\xc2\xb7",
+ "\xc2\xb9",
+ "\xc2\xb3",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\xbd",
+ 0x000000a3 => "\x9c",
+ 0x000000a4 => "\xcf",
+ 0x000000a5 => "\xbe",
+ 0x000000a6 => "\xdd",
+ 0x000000a7 => "\xf5",
+ 0x000000a8 => "\xf9",
+ 0x000000a9 => "\xb8",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000ad => "\xf0",
+ 0x000000ae => "\xa9",
+ 0x000000af => "\xee",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b3 => "\xfc",
+ 0x000000b4 => "\xef",
+ 0x000000b5 => "\xe6",
+ 0x000000b6 => "\xf4",
+ 0x000000b7 => "\xfa",
+ 0x000000b8 => "\xf7",
+ 0x000000b9 => "\xfb",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000be => "\xf3",
+ 0x000000bf => "\xa8",
+ 0x000000c0 => "\xb7",
+ 0x000000c1 => "\xb5",
+ 0x000000c2 => "\xb6",
+ 0x000000c3 => "\xc7",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c8 => "\xd4",
+ 0x000000c9 => "\x90",
+ 0x000000ca => "\xd2",
+ 0x000000cb => "\xd3",
+ 0x000000cc => "\xde",
+ 0x000000cd => "\xd6",
+ 0x000000ce => "\xd7",
+ 0x000000cf => "\xd8",
+ 0x000000d0 => "\xd1",
+ 0x000000d1 => "\xa5",
+ 0x000000d2 => "\xe3",
+ 0x000000d3 => "\xe0",
+ 0x000000d4 => "\xe2",
+ 0x000000d5 => "\xe5",
+ 0x000000d6 => "\x99",
+ 0x000000d7 => "\x9e",
+ 0x000000d8 => "\x9d",
+ 0x000000d9 => "\xeb",
+ 0x000000da => "\xe9",
+ 0x000000db => "\xea",
+ 0x000000dc => "\x9a",
+ 0x000000dd => "\xed",
+ 0x000000de => "\xe8",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e3 => "\xc6",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f0 => "\xd0",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f5 => "\xe4",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\x9b",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000fd => "\xec",
+ 0x000000fe => "\xe7",
+ 0x000000ff => "\x98",
+ 0x00000131 => "\xd5",
+ 0x00000192 => "\x9f",
+ 0x00002017 => "\xf2",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM850 - Conversion routines for IBM850
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM850.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ source: UNICODE 1.0
+ alias CP850
+ alias 850
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 9E | 000000D7 | MULTIPLICATION SIGN
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 000000AE | REGISTERED SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ B7 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ B8 | 000000A9 | COPYRIGHT SIGN
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 000000A2 | CENT SIGN
+ BE | 000000A5 | YEN SIGN
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ C7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000000A4 | CURRENCY SIGN
+ D0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ D1 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ D2 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ D4 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ D5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ D8 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 000000A6 | BROKEN BAR
+ DE | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ E3 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ E4 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ E5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ E8 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ EA | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ EB | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ EC | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ ED | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ EE | 000000AF | MACRON
+ EF | 000000B4 | ACUTE ACCENT
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002017 | DOUBLE LOW LINE
+ F3 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ F4 | 000000B6 | PILCROW SIGN
+ F5 | 000000A7 | SECTION SIGN
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 000000B8 | CEDILLA
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 000000A8 | DIAERESIS
+ FA | 000000B7 | MIDDLE DOT
+ FB | 000000B9 | SUPERSCRIPT ONE
+ FC | 000000B3 | SUPERSCRIPT THREE
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM851.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM851.pm
new file mode 100644
index 0000000..35553f7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM851.pm
@@ -0,0 +1,1145 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM851.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM851.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM851;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x0386,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x0388,
+ 0x00c4,
+ 0x0389,
+ 0x038a,
+ 0xfffd,
+ 0x038c,
+ 0x00f4,
+ 0x00f6,
+ 0x038e,
+ 0x00fb,
+ 0x00f9,
+ 0x038f,
+ 0x00d6,
+ 0x00dc,
+ 0x03ac,
+ 0x00a3,
+ 0x03ad,
+ 0x03ae,
+ 0x03af,
+ 0x03ca,
+ 0x0390,
+ 0x03cc,
+ 0x03cd,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x00bd,
+ 0x0398,
+ 0x0399,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x039a,
+ 0x039b,
+ 0x039d,
+ 0x039c,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x039e,
+ 0x039f,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x03a0,
+ 0x03a1,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x03b4,
+ 0x03b5,
+ 0x2580,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c3,
+ 0x03c2,
+ 0x03c4,
+ 0x00b4,
+ 0x00ad,
+ 0x00b1,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x00a7,
+ 0x03c8,
+ 0x02db,
+ 0x00b0,
+ 0x00a8,
+ 0x03c9,
+ 0x03cb,
+ 0x03b0,
+ 0x03ce,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xce\x86",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xce\x88",
+ "\xc3\x84",
+ "\xce\x89",
+ "\xce\x8a",
+ "\xef\xbf\xbd",
+ "\xce\x8c",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xce\x8e",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xce\x8f",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xce\xac",
+ "\xc2\xa3",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\xaf",
+ "\xcf\x8a",
+ "\xce\x90",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xc2\xbd",
+ "\xce\x98",
+ "\xce\x99",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9d",
+ "\xce\x9c",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xe2\x96\x80",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x82",
+ "\xcf\x84",
+ "\xc2\xb4",
+ "\xc2\xad",
+ "\xc2\xb1",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xc2\xa7",
+ "\xcf\x88",
+ "\xcb\x9b",
+ "\xc2\xb0",
+ "\xc2\xa8",
+ "\xcf\x89",
+ "\xcf\x8b",
+ "\xce\xb0",
+ "\xcf\x8e",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a3 => "\x9c",
+ 0x000000a7 => "\xf5",
+ 0x000000a8 => "\xf9",
+ 0x000000ab => "\xae",
+ 0x000000ad => "\xf0",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b4 => "\xef",
+ 0x000000bb => "\xaf",
+ 0x000000bd => "\xab",
+ 0x000000c4 => "\x8e",
+ 0x000000c7 => "\x80",
+ 0x000000d6 => "\x99",
+ 0x000000dc => "\x9a",
+ 0x000000e0 => "\x85",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f4 => "\x93",
+ 0x000000f6 => "\x94",
+ 0x000000f9 => "\x97",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000002db => "\xf7",
+ 0x00000386 => "\x86",
+ 0x00000388 => "\x8d",
+ 0x00000389 => "\x8f",
+ 0x0000038a => "\x90",
+ 0x0000038c => "\x92",
+ 0x0000038e => "\x95",
+ 0x0000038f => "\x98",
+ 0x00000390 => "\xa1",
+ 0x00000391 => "\xa4",
+ 0x00000392 => "\xa5",
+ 0x00000393 => "\xa6",
+ 0x00000394 => "\xa7",
+ 0x00000395 => "\xa8",
+ 0x00000396 => "\xa9",
+ 0x00000397 => "\xaa",
+ 0x00000398 => "\xac",
+ 0x00000399 => "\xad",
+ 0x0000039a => "\xb5",
+ 0x0000039b => "\xb6",
+ 0x0000039c => "\xb8",
+ 0x0000039d => "\xb7",
+ 0x0000039e => "\xbd",
+ 0x0000039f => "\xbe",
+ 0x000003a0 => "\xc6",
+ 0x000003a1 => "\xc7",
+ 0x000003a3 => "\xcf",
+ 0x000003a4 => "\xd0",
+ 0x000003a5 => "\xd1",
+ 0x000003a6 => "\xd2",
+ 0x000003a7 => "\xd3",
+ 0x000003a8 => "\xd4",
+ 0x000003a9 => "\xd5",
+ 0x000003ac => "\x9b",
+ 0x000003ad => "\x9d",
+ 0x000003ae => "\x9e",
+ 0x000003af => "\x9f",
+ 0x000003b0 => "\xfc",
+ 0x000003b1 => "\xd6",
+ 0x000003b2 => "\xd7",
+ 0x000003b3 => "\xd8",
+ 0x000003b4 => "\xdd",
+ 0x000003b5 => "\xde",
+ 0x000003b6 => "\xe0",
+ 0x000003b7 => "\xe1",
+ 0x000003b8 => "\xe2",
+ 0x000003b9 => "\xe3",
+ 0x000003ba => "\xe4",
+ 0x000003bb => "\xe5",
+ 0x000003bc => "\xe6",
+ 0x000003bd => "\xe7",
+ 0x000003be => "\xe8",
+ 0x000003bf => "\xe9",
+ 0x000003c0 => "\xea",
+ 0x000003c1 => "\xeb",
+ 0x000003c2 => "\xed",
+ 0x000003c3 => "\xec",
+ 0x000003c4 => "\xee",
+ 0x000003c5 => "\xf2",
+ 0x000003c6 => "\xf3",
+ 0x000003c7 => "\xf4",
+ 0x000003c8 => "\xf6",
+ 0x000003c9 => "\xfa",
+ 0x000003ca => "\xa0",
+ 0x000003cb => "\xfb",
+ 0x000003cc => "\xa2",
+ 0x000003cd => "\xa3",
+ 0x000003ce => "\xfd",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM851 - Conversion routines for IBM851
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM851.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP851
+ alias 851
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ 90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ 92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ 9E | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ 9F | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ A0 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ A1 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ A2 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ A3 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ A4 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ A5 | 00000392 | GREEK CAPITAL LETTER BETA
+ A6 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ A7 | 00000394 | GREEK CAPITAL LETTER DELTA
+ A8 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ A9 | 00000396 | GREEK CAPITAL LETTER ZETA
+ AA | 00000397 | GREEK CAPITAL LETTER ETA
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 00000398 | GREEK CAPITAL LETTER THETA
+ AD | 00000399 | GREEK CAPITAL LETTER IOTA
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 0000039A | GREEK CAPITAL LETTER KAPPA
+ B6 | 0000039B | GREEK CAPITAL LETTER LAMDA
+ B7 | 0000039D | GREEK CAPITAL LETTER NU
+ B8 | 0000039C | GREEK CAPITAL LETTER MU
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000039E | GREEK CAPITAL LETTER XI
+ BE | 0000039F | GREEK CAPITAL LETTER OMICRON
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 000003A0 | GREEK CAPITAL LETTER PI
+ C7 | 000003A1 | GREEK CAPITAL LETTER RHO
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ D0 | 000003A4 | GREEK CAPITAL LETTER TAU
+ D1 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ D2 | 000003A6 | GREEK CAPITAL LETTER PHI
+ D3 | 000003A7 | GREEK CAPITAL LETTER CHI
+ D4 | 000003A8 | GREEK CAPITAL LETTER PSI
+ D5 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ D6 | 000003B1 | GREEK SMALL LETTER ALPHA
+ D7 | 000003B2 | GREEK SMALL LETTER BETA
+ D8 | 000003B3 | GREEK SMALL LETTER GAMMA
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 000003B4 | GREEK SMALL LETTER DELTA
+ DE | 000003B5 | GREEK SMALL LETTER EPSILON
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B6 | GREEK SMALL LETTER ZETA
+ E1 | 000003B7 | GREEK SMALL LETTER ETA
+ E2 | 000003B8 | GREEK SMALL LETTER THETA
+ E3 | 000003B9 | GREEK SMALL LETTER IOTA
+ E4 | 000003BA | GREEK SMALL LETTER KAPPA
+ E5 | 000003BB | GREEK SMALL LETTER LAMDA
+ E6 | 000003BC | GREEK SMALL LETTER MU
+ E7 | 000003BD | GREEK SMALL LETTER NU
+ E8 | 000003BE | GREEK SMALL LETTER XI
+ E9 | 000003BF | GREEK SMALL LETTER OMICRON
+ EA | 000003C0 | GREEK SMALL LETTER PI
+ EB | 000003C1 | GREEK SMALL LETTER RHO
+ EC | 000003C3 | GREEK SMALL LETTER SIGMA
+ ED | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ EE | 000003C4 | GREEK SMALL LETTER TAU
+ EF | 000000B4 | ACUTE ACCENT
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 000003C5 | GREEK SMALL LETTER UPSILON
+ F3 | 000003C6 | GREEK SMALL LETTER PHI
+ F4 | 000003C7 | GREEK SMALL LETTER CHI
+ F5 | 000000A7 | SECTION SIGN
+ F6 | 000003C8 | GREEK SMALL LETTER PSI
+ F7 | 000002DB | OGONEK
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 000000A8 | DIAERESIS
+ FA | 000003C9 | GREEK SMALL LETTER OMEGA
+ FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ FC | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ FD | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM852.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM852.pm
new file mode 100644
index 0000000..a2115dd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM852.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM852.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM852.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM852;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x016f,
+ 0x0107,
+ 0x00e7,
+ 0x0142,
+ 0x00eb,
+ 0x0150,
+ 0x0151,
+ 0x00ee,
+ 0x0179,
+ 0x00c4,
+ 0x0106,
+ 0x00c9,
+ 0x0139,
+ 0x013a,
+ 0x00f4,
+ 0x00f6,
+ 0x013d,
+ 0x013e,
+ 0x015a,
+ 0x015b,
+ 0x00d6,
+ 0x00dc,
+ 0x0164,
+ 0x0165,
+ 0x0141,
+ 0x00d7,
+ 0x010d,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x0104,
+ 0x0105,
+ 0x017d,
+ 0x017e,
+ 0x0118,
+ 0x0119,
+ 0x00ac,
+ 0x017a,
+ 0x010c,
+ 0x015f,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x00c1,
+ 0x00c2,
+ 0x011a,
+ 0x015e,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x017b,
+ 0x017c,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x0102,
+ 0x0103,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x00a4,
+ 0x0111,
+ 0x0110,
+ 0x010e,
+ 0x00cb,
+ 0x010f,
+ 0x0147,
+ 0x00cd,
+ 0x00ce,
+ 0x011b,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x0162,
+ 0x016e,
+ 0x2580,
+ 0x00d3,
+ 0x00df,
+ 0x00d4,
+ 0x0143,
+ 0x0144,
+ 0x0148,
+ 0x0160,
+ 0x0161,
+ 0x0154,
+ 0x00da,
+ 0x0155,
+ 0x0170,
+ 0x00fd,
+ 0x00dd,
+ 0x0163,
+ 0x00b4,
+ 0x00ad,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+ 0x02d8,
+ 0x00a7,
+ 0x00f7,
+ 0x00b8,
+ 0x00b0,
+ 0x00a8,
+ 0x02d9,
+ 0x0171,
+ 0x0158,
+ 0x0159,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc5\xaf",
+ "\xc4\x87",
+ "\xc3\xa7",
+ "\xc5\x82",
+ "\xc3\xab",
+ "\xc5\x90",
+ "\xc5\x91",
+ "\xc3\xae",
+ "\xc5\xb9",
+ "\xc3\x84",
+ "\xc4\x86",
+ "\xc3\x89",
+ "\xc4\xb9",
+ "\xc4\xba",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc4\xbd",
+ "\xc4\xbe",
+ "\xc5\x9a",
+ "\xc5\x9b",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc5\xa4",
+ "\xc5\xa5",
+ "\xc5\x81",
+ "\xc3\x97",
+ "\xc4\x8d",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc4\x84",
+ "\xc4\x85",
+ "\xc5\xbd",
+ "\xc5\xbe",
+ "\xc4\x98",
+ "\xc4\x99",
+ "\xc2\xac",
+ "\xc5\xba",
+ "\xc4\x8c",
+ "\xc5\x9f",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc4\x9a",
+ "\xc5\x9e",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xc5\xbb",
+ "\xc5\xbc",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xc4\x82",
+ "\xc4\x83",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xc2\xa4",
+ "\xc4\x91",
+ "\xc4\x90",
+ "\xc4\x8e",
+ "\xc3\x8b",
+ "\xc4\x8f",
+ "\xc5\x87",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc4\x9b",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xc5\xa2",
+ "\xc5\xae",
+ "\xe2\x96\x80",
+ "\xc3\x93",
+ "\xc3\x9f",
+ "\xc3\x94",
+ "\xc5\x83",
+ "\xc5\x84",
+ "\xc5\x88",
+ "\xc5\xa0",
+ "\xc5\xa1",
+ "\xc5\x94",
+ "\xc3\x9a",
+ "\xc5\x95",
+ "\xc5\xb0",
+ "\xc3\xbd",
+ "\xc3\x9d",
+ "\xc5\xa3",
+ "\xc2\xb4",
+ "\xc2\xad",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+ "\xcb\x98",
+ "\xc2\xa7",
+ "\xc3\xb7",
+ "\xc2\xb8",
+ "\xc2\xb0",
+ "\xc2\xa8",
+ "\xcb\x99",
+ "\xc5\xb1",
+ "\xc5\x98",
+ "\xc5\x99",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a4 => "\xcf",
+ 0x000000a7 => "\xf5",
+ 0x000000a8 => "\xf9",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000ad => "\xf0",
+ 0x000000b0 => "\xf8",
+ 0x000000b4 => "\xef",
+ 0x000000b8 => "\xf7",
+ 0x000000bb => "\xaf",
+ 0x000000c1 => "\xb5",
+ 0x000000c2 => "\xb6",
+ 0x000000c4 => "\x8e",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000cb => "\xd3",
+ 0x000000cd => "\xd6",
+ 0x000000ce => "\xd7",
+ 0x000000d3 => "\xe0",
+ 0x000000d4 => "\xe2",
+ 0x000000d6 => "\x99",
+ 0x000000d7 => "\x9e",
+ 0x000000da => "\xe9",
+ 0x000000dc => "\x9a",
+ 0x000000dd => "\xed",
+ 0x000000df => "\xe1",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e7 => "\x87",
+ 0x000000e9 => "\x82",
+ 0x000000eb => "\x89",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000fa => "\xa3",
+ 0x000000fc => "\x81",
+ 0x000000fd => "\xec",
+ 0x00000102 => "\xc6",
+ 0x00000103 => "\xc7",
+ 0x00000104 => "\xa4",
+ 0x00000105 => "\xa5",
+ 0x00000106 => "\x8f",
+ 0x00000107 => "\x86",
+ 0x0000010c => "\xac",
+ 0x0000010d => "\x9f",
+ 0x0000010e => "\xd2",
+ 0x0000010f => "\xd4",
+ 0x00000110 => "\xd1",
+ 0x00000111 => "\xd0",
+ 0x00000118 => "\xa8",
+ 0x00000119 => "\xa9",
+ 0x0000011a => "\xb7",
+ 0x0000011b => "\xd8",
+ 0x00000139 => "\x91",
+ 0x0000013a => "\x92",
+ 0x0000013d => "\x95",
+ 0x0000013e => "\x96",
+ 0x00000141 => "\x9d",
+ 0x00000142 => "\x88",
+ 0x00000143 => "\xe3",
+ 0x00000144 => "\xe4",
+ 0x00000147 => "\xd5",
+ 0x00000148 => "\xe5",
+ 0x00000150 => "\x8a",
+ 0x00000151 => "\x8b",
+ 0x00000154 => "\xe8",
+ 0x00000155 => "\xea",
+ 0x00000158 => "\xfc",
+ 0x00000159 => "\xfd",
+ 0x0000015a => "\x97",
+ 0x0000015b => "\x98",
+ 0x0000015e => "\xb8",
+ 0x0000015f => "\xad",
+ 0x00000160 => "\xe6",
+ 0x00000161 => "\xe7",
+ 0x00000162 => "\xdd",
+ 0x00000163 => "\xee",
+ 0x00000164 => "\x9b",
+ 0x00000165 => "\x9c",
+ 0x0000016e => "\xde",
+ 0x0000016f => "\x85",
+ 0x00000170 => "\xeb",
+ 0x00000171 => "\xfb",
+ 0x00000179 => "\x8d",
+ 0x0000017a => "\xab",
+ 0x0000017b => "\xbd",
+ 0x0000017c => "\xbe",
+ 0x0000017d => "\xa6",
+ 0x0000017e => "\xa7",
+ 0x000002c7 => "\xf3",
+ 0x000002d8 => "\xf4",
+ 0x000002d9 => "\xfa",
+ 0x000002db => "\xf2",
+ 0x000002dd => "\xf1",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM852 - Conversion routines for IBM852
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM852.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP852
+ alias 852
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
+ 86 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ 8B | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
+ 92 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 0000013D | LATIN CAPITAL LETTER L WITH CARON
+ 96 | 0000013E | LATIN SMALL LETTER L WITH CARON
+ 97 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ 98 | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 00000164 | LATIN CAPITAL LETTER T WITH CARON
+ 9C | 00000165 | LATIN SMALL LETTER T WITH CARON
+ 9D | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ 9E | 000000D7 | MULTIPLICATION SIGN
+ 9F | 0000010D | LATIN SMALL LETTER C WITH CARON
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A5 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ A6 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ A7 | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ A8 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ A9 | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ AA | 000000AC | NOT SIGN
+ AB | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ AC | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ AD | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ B7 | 0000011A | LATIN CAPITAL LETTER E WITH CARON
+ B8 | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ BE | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C7 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000000A4 | CURRENCY SIGN
+ D0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ D1 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D2 | 0000010E | LATIN CAPITAL LETTER D WITH CARON
+ D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ D4 | 0000010F | LATIN SMALL LETTER D WITH CARON
+ D5 | 00000147 | LATIN CAPITAL LETTER N WITH CARON
+ D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ D8 | 0000011B | LATIN SMALL LETTER E WITH CARON
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
+ DE | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ E3 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ E4 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ E5 | 00000148 | LATIN SMALL LETTER N WITH CARON
+ E6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ E7 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ E8 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
+ E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ EA | 00000155 | LATIN SMALL LETTER R WITH ACUTE
+ EB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ EC | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ ED | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ EE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
+ EF | 000000B4 | ACUTE ACCENT
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 000002DD | DOUBLE ACUTE ACCENT
+ F2 | 000002DB | OGONEK
+ F3 | 000002C7 | CARON (Mandarin Chinese third tone)
+ F4 | 000002D8 | BREVE
+ F5 | 000000A7 | SECTION SIGN
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 000000B8 | CEDILLA
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 000000A8 | DIAERESIS
+ FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+ FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ FC | 00000158 | LATIN CAPITAL LETTER R WITH CARON
+ FD | 00000159 | LATIN SMALL LETTER R WITH CARON
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM855.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM855.pm
new file mode 100644
index 0000000..f53fd62
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM855.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM855.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM855.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM855;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0452,
+ 0x0402,
+ 0x0453,
+ 0x0403,
+ 0x0451,
+ 0x0401,
+ 0x0454,
+ 0x0404,
+ 0x0455,
+ 0x0405,
+ 0x0456,
+ 0x0406,
+ 0x0457,
+ 0x0407,
+ 0x0458,
+ 0x0408,
+ 0x0459,
+ 0x0409,
+ 0x045a,
+ 0x040a,
+ 0x045b,
+ 0x040b,
+ 0x045c,
+ 0x040c,
+ 0x045e,
+ 0x040e,
+ 0x045f,
+ 0x040f,
+ 0x044e,
+ 0x042e,
+ 0x044a,
+ 0x042a,
+ 0x0430,
+ 0x0410,
+ 0x0431,
+ 0x0411,
+ 0x0446,
+ 0x0426,
+ 0x0434,
+ 0x0414,
+ 0x0435,
+ 0x0415,
+ 0x0444,
+ 0x0424,
+ 0x0433,
+ 0x0413,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x0445,
+ 0x0425,
+ 0x0438,
+ 0x0418,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x0439,
+ 0x0419,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x043a,
+ 0x041a,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x00a4,
+ 0x043b,
+ 0x041b,
+ 0x043c,
+ 0x041c,
+ 0x043d,
+ 0x041d,
+ 0x043e,
+ 0x041e,
+ 0x043f,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x041f,
+ 0x044f,
+ 0x2580,
+ 0x042f,
+ 0x0440,
+ 0x0420,
+ 0x0441,
+ 0x0421,
+ 0x0442,
+ 0x0422,
+ 0x0443,
+ 0x0423,
+ 0x0436,
+ 0x0416,
+ 0x0432,
+ 0x0412,
+ 0x044c,
+ 0x042c,
+ 0x2116,
+ 0x00ad,
+ 0x044b,
+ 0x042b,
+ 0x0437,
+ 0x0417,
+ 0x0448,
+ 0x0428,
+ 0x044d,
+ 0x042d,
+ 0x0449,
+ 0x0429,
+ 0x0447,
+ 0x0427,
+ 0x00a7,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd1\x92",
+ "\xd0\x82",
+ "\xd1\x93",
+ "\xd0\x83",
+ "\xd1\x91",
+ "\xd0\x81",
+ "\xd1\x94",
+ "\xd0\x84",
+ "\xd1\x95",
+ "\xd0\x85",
+ "\xd1\x96",
+ "\xd0\x86",
+ "\xd1\x97",
+ "\xd0\x87",
+ "\xd1\x98",
+ "\xd0\x88",
+ "\xd1\x99",
+ "\xd0\x89",
+ "\xd1\x9a",
+ "\xd0\x8a",
+ "\xd1\x9b",
+ "\xd0\x8b",
+ "\xd1\x9c",
+ "\xd0\x8c",
+ "\xd1\x9e",
+ "\xd0\x8e",
+ "\xd1\x9f",
+ "\xd0\x8f",
+ "\xd1\x8e",
+ "\xd0\xae",
+ "\xd1\x8a",
+ "\xd0\xaa",
+ "\xd0\xb0",
+ "\xd0\x90",
+ "\xd0\xb1",
+ "\xd0\x91",
+ "\xd1\x86",
+ "\xd0\xa6",
+ "\xd0\xb4",
+ "\xd0\x94",
+ "\xd0\xb5",
+ "\xd0\x95",
+ "\xd1\x84",
+ "\xd0\xa4",
+ "\xd0\xb3",
+ "\xd0\x93",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xd1\x85",
+ "\xd0\xa5",
+ "\xd0\xb8",
+ "\xd0\x98",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xd0\xb9",
+ "\xd0\x99",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xd0\xba",
+ "\xd0\x9a",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xc2\xa4",
+ "\xd0\xbb",
+ "\xd0\x9b",
+ "\xd0\xbc",
+ "\xd0\x9c",
+ "\xd0\xbd",
+ "\xd0\x9d",
+ "\xd0\xbe",
+ "\xd0\x9e",
+ "\xd0\xbf",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xd0\x9f",
+ "\xd1\x8f",
+ "\xe2\x96\x80",
+ "\xd0\xaf",
+ "\xd1\x80",
+ "\xd0\xa0",
+ "\xd1\x81",
+ "\xd0\xa1",
+ "\xd1\x82",
+ "\xd0\xa2",
+ "\xd1\x83",
+ "\xd0\xa3",
+ "\xd0\xb6",
+ "\xd0\x96",
+ "\xd0\xb2",
+ "\xd0\x92",
+ "\xd1\x8c",
+ "\xd0\xac",
+ "\xe2\x84\x96",
+ "\xc2\xad",
+ "\xd1\x8b",
+ "\xd0\xab",
+ "\xd0\xb7",
+ "\xd0\x97",
+ "\xd1\x88",
+ "\xd0\xa8",
+ "\xd1\x8d",
+ "\xd0\xad",
+ "\xd1\x89",
+ "\xd0\xa9",
+ "\xd1\x87",
+ "\xd0\xa7",
+ "\xc2\xa7",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a4 => "\xcf",
+ 0x000000a7 => "\xfd",
+ 0x000000ab => "\xae",
+ 0x000000ad => "\xf0",
+ 0x000000bb => "\xaf",
+ 0x00000401 => "\x85",
+ 0x00000402 => "\x81",
+ 0x00000403 => "\x83",
+ 0x00000404 => "\x87",
+ 0x00000405 => "\x89",
+ 0x00000406 => "\x8b",
+ 0x00000407 => "\x8d",
+ 0x00000408 => "\x8f",
+ 0x00000409 => "\x91",
+ 0x0000040a => "\x93",
+ 0x0000040b => "\x95",
+ 0x0000040c => "\x97",
+ 0x0000040e => "\x99",
+ 0x0000040f => "\x9b",
+ 0x00000410 => "\xa1",
+ 0x00000411 => "\xa3",
+ 0x00000412 => "\xec",
+ 0x00000413 => "\xad",
+ 0x00000414 => "\xa7",
+ 0x00000415 => "\xa9",
+ 0x00000416 => "\xea",
+ 0x00000417 => "\xf4",
+ 0x00000418 => "\xb8",
+ 0x00000419 => "\xbe",
+ 0x0000041a => "\xc7",
+ 0x0000041b => "\xd1",
+ 0x0000041c => "\xd3",
+ 0x0000041d => "\xd5",
+ 0x0000041e => "\xd7",
+ 0x0000041f => "\xdd",
+ 0x00000420 => "\xe2",
+ 0x00000421 => "\xe4",
+ 0x00000422 => "\xe6",
+ 0x00000423 => "\xe8",
+ 0x00000424 => "\xab",
+ 0x00000425 => "\xb6",
+ 0x00000426 => "\xa5",
+ 0x00000427 => "\xfc",
+ 0x00000428 => "\xf6",
+ 0x00000429 => "\xfa",
+ 0x0000042a => "\x9f",
+ 0x0000042b => "\xf2",
+ 0x0000042c => "\xee",
+ 0x0000042d => "\xf8",
+ 0x0000042e => "\x9d",
+ 0x0000042f => "\xe0",
+ 0x00000430 => "\xa0",
+ 0x00000431 => "\xa2",
+ 0x00000432 => "\xeb",
+ 0x00000433 => "\xac",
+ 0x00000434 => "\xa6",
+ 0x00000435 => "\xa8",
+ 0x00000436 => "\xe9",
+ 0x00000437 => "\xf3",
+ 0x00000438 => "\xb7",
+ 0x00000439 => "\xbd",
+ 0x0000043a => "\xc6",
+ 0x0000043b => "\xd0",
+ 0x0000043c => "\xd2",
+ 0x0000043d => "\xd4",
+ 0x0000043e => "\xd6",
+ 0x0000043f => "\xd8",
+ 0x00000440 => "\xe1",
+ 0x00000441 => "\xe3",
+ 0x00000442 => "\xe5",
+ 0x00000443 => "\xe7",
+ 0x00000444 => "\xaa",
+ 0x00000445 => "\xb5",
+ 0x00000446 => "\xa4",
+ 0x00000447 => "\xfb",
+ 0x00000448 => "\xf5",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\x9e",
+ 0x0000044b => "\xf1",
+ 0x0000044c => "\xed",
+ 0x0000044d => "\xf7",
+ 0x0000044e => "\x9c",
+ 0x0000044f => "\xde",
+ 0x00000451 => "\x84",
+ 0x00000452 => "\x80",
+ 0x00000453 => "\x82",
+ 0x00000454 => "\x86",
+ 0x00000455 => "\x88",
+ 0x00000456 => "\x8a",
+ 0x00000457 => "\x8c",
+ 0x00000458 => "\x8e",
+ 0x00000459 => "\x90",
+ 0x0000045a => "\x92",
+ 0x0000045b => "\x94",
+ 0x0000045c => "\x96",
+ 0x0000045e => "\x98",
+ 0x0000045f => "\x9a",
+ 0x00002116 => "\xef",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM855 - Conversion routines for IBM855
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM855.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP855
+ alias 855
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian)
+ 81 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+ 82 | 00000453 | CYRILLIC SMALL LETTER GJE
+ 83 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ 84 | 00000451 | CYRILLIC SMALL LETTER IO
+ 85 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ 86 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ 87 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ 88 | 00000455 | CYRILLIC SMALL LETTER DZE
+ 89 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ 8A | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 8B | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ 8C | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ 8D | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ 8E | 00000458 | CYRILLIC SMALL LETTER JE
+ 8F | 00000408 | CYRILLIC CAPITAL LETTER JE
+ 90 | 00000459 | CYRILLIC SMALL LETTER LJE
+ 91 | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ 92 | 0000045A | CYRILLIC SMALL LETTER NJE
+ 93 | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ 94 | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+ 95 | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ 96 | 0000045C | CYRILLIC SMALL LETTER KJE
+ 97 | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ 98 | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+ 99 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+ 9A | 0000045F | CYRILLIC SMALL LETTER DZHE
+ 9B | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ 9C | 0000044E | CYRILLIC SMALL LETTER YU
+ 9D | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9E | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ 9F | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ A0 | 00000430 | CYRILLIC SMALL LETTER A
+ A1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ A2 | 00000431 | CYRILLIC SMALL LETTER BE
+ A3 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ A4 | 00000446 | CYRILLIC SMALL LETTER TSE
+ A5 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ A6 | 00000434 | CYRILLIC SMALL LETTER DE
+ A7 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ A8 | 00000435 | CYRILLIC SMALL LETTER IE
+ A9 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ AA | 00000444 | CYRILLIC SMALL LETTER EF
+ AB | 00000424 | CYRILLIC CAPITAL LETTER EF
+ AC | 00000433 | CYRILLIC SMALL LETTER GHE
+ AD | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00000445 | CYRILLIC SMALL LETTER HA
+ B6 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ B7 | 00000438 | CYRILLIC SMALL LETTER I
+ B8 | 00000418 | CYRILLIC CAPITAL LETTER I
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ BE | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000043A | CYRILLIC SMALL LETTER KA
+ C7 | 0000041A | CYRILLIC CAPITAL LETTER KA
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000000A4 | CURRENCY SIGN
+ D0 | 0000043B | CYRILLIC SMALL LETTER EL
+ D1 | 0000041B | CYRILLIC CAPITAL LETTER EL
+ D2 | 0000043C | CYRILLIC SMALL LETTER EM
+ D3 | 0000041C | CYRILLIC CAPITAL LETTER EM
+ D4 | 0000043D | CYRILLIC SMALL LETTER EN
+ D5 | 0000041D | CYRILLIC CAPITAL LETTER EN
+ D6 | 0000043E | CYRILLIC SMALL LETTER O
+ D7 | 0000041E | CYRILLIC CAPITAL LETTER O
+ D8 | 0000043F | CYRILLIC SMALL LETTER PE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000041F | CYRILLIC CAPITAL LETTER PE
+ DE | 0000044F | CYRILLIC SMALL LETTER YA
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ E1 | 00000440 | CYRILLIC SMALL LETTER ER
+ E2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ E3 | 00000441 | CYRILLIC SMALL LETTER ES
+ E4 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ E5 | 00000442 | CYRILLIC SMALL LETTER TE
+ E6 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ E7 | 00000443 | CYRILLIC SMALL LETTER U
+ E8 | 00000423 | CYRILLIC CAPITAL LETTER U
+ E9 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ EA | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ EB | 00000432 | CYRILLIC SMALL LETTER VE
+ EC | 00000412 | CYRILLIC CAPITAL LETTER VE
+ ED | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ EE | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ EF | 00002116 | NUMERO SIGN
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 0000044B | CYRILLIC SMALL LETTER YERU
+ F2 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ F3 | 00000437 | CYRILLIC SMALL LETTER ZE
+ F4 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ F5 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F6 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ F7 | 0000044D | CYRILLIC SMALL LETTER E
+ F8 | 0000042D | CYRILLIC CAPITAL LETTER E
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FB | 00000447 | CYRILLIC SMALL LETTER CHE
+ FC | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FD | 000000A7 | SECTION SIGN
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM857.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM857.pm
new file mode 100644
index 0000000..b9675a0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM857.pm
@@ -0,0 +1,1141 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM857.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM857.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM857;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x0131,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x0130,
+ 0x00d6,
+ 0x00dc,
+ 0x00f8,
+ 0x00a3,
+ 0x00d8,
+ 0x015e,
+ 0x015f,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x011e,
+ 0x011f,
+ 0x00bf,
+ 0x00ae,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x00c1,
+ 0x00c2,
+ 0x00c0,
+ 0x00a9,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x00a2,
+ 0x00a5,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x00e3,
+ 0x00c3,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x00a4,
+ 0x00ba,
+ 0x00aa,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0xfffd,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x00a6,
+ 0x00cc,
+ 0x2580,
+ 0x00d3,
+ 0x00df,
+ 0x00d4,
+ 0x00d2,
+ 0x00f5,
+ 0x00d5,
+ 0x00b5,
+ 0xfffd,
+ 0x00d7,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x00ec,
+ 0x00ff,
+ 0x00af,
+ 0x00b4,
+ 0x00ad,
+ 0x00b1,
+ 0xfffd,
+ 0x00be,
+ 0x00b6,
+ 0x00a7,
+ 0x00f7,
+ 0x00b8,
+ 0x00b0,
+ 0x00a8,
+ 0x00b7,
+ 0x00b9,
+ 0x00b3,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc4\xb1",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc4\xb0",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xb8",
+ "\xc2\xa3",
+ "\xc3\x98",
+ "\xc5\x9e",
+ "\xc5\x9f",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc4\x9e",
+ "\xc4\x9f",
+ "\xc2\xbf",
+ "\xc2\xae",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x80",
+ "\xc2\xa9",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xc2\xa2",
+ "\xc2\xa5",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xc3\xa3",
+ "\xc3\x83",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xc2\xa4",
+ "\xc2\xba",
+ "\xc2\xaa",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xef\xbf\xbd",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xc2\xa6",
+ "\xc3\x8c",
+ "\xe2\x96\x80",
+ "\xc3\x93",
+ "\xc3\x9f",
+ "\xc3\x94",
+ "\xc3\x92",
+ "\xc3\xb5",
+ "\xc3\x95",
+ "\xc2\xb5",
+ "\xef\xbf\xbd",
+ "\xc3\x97",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc3\xac",
+ "\xc3\xbf",
+ "\xc2\xaf",
+ "\xc2\xb4",
+ "\xc2\xad",
+ "\xc2\xb1",
+ "\xef\xbf\xbd",
+ "\xc2\xbe",
+ "\xc2\xb6",
+ "\xc2\xa7",
+ "\xc3\xb7",
+ "\xc2\xb8",
+ "\xc2\xb0",
+ "\xc2\xa8",
+ "\xc2\xb7",
+ "\xc2\xb9",
+ "\xc2\xb3",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\xbd",
+ 0x000000a3 => "\x9c",
+ 0x000000a4 => "\xcf",
+ 0x000000a5 => "\xbe",
+ 0x000000a6 => "\xdd",
+ 0x000000a7 => "\xf5",
+ 0x000000a8 => "\xf9",
+ 0x000000a9 => "\xb8",
+ 0x000000aa => "\xd1",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000ad => "\xf0",
+ 0x000000ae => "\xa9",
+ 0x000000af => "\xee",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b3 => "\xfc",
+ 0x000000b4 => "\xef",
+ 0x000000b5 => "\xe6",
+ 0x000000b6 => "\xf4",
+ 0x000000b7 => "\xfa",
+ 0x000000b8 => "\xf7",
+ 0x000000b9 => "\xfb",
+ 0x000000ba => "\xd0",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000be => "\xf3",
+ 0x000000bf => "\xa8",
+ 0x000000c0 => "\xb7",
+ 0x000000c1 => "\xb5",
+ 0x000000c2 => "\xb6",
+ 0x000000c3 => "\xc7",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c8 => "\xd4",
+ 0x000000c9 => "\x90",
+ 0x000000ca => "\xd2",
+ 0x000000cb => "\xd3",
+ 0x000000cc => "\xde",
+ 0x000000cd => "\xd6",
+ 0x000000ce => "\xd7",
+ 0x000000cf => "\xd8",
+ 0x000000d1 => "\xa5",
+ 0x000000d2 => "\xe3",
+ 0x000000d3 => "\xe0",
+ 0x000000d4 => "\xe2",
+ 0x000000d5 => "\xe5",
+ 0x000000d6 => "\x99",
+ 0x000000d7 => "\xe8",
+ 0x000000d8 => "\x9d",
+ 0x000000d9 => "\xeb",
+ 0x000000da => "\xe9",
+ 0x000000db => "\xea",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e3 => "\xc6",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f5 => "\xe4",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\x9b",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000ff => "\xed",
+ 0x0000011e => "\xa6",
+ 0x0000011f => "\xa7",
+ 0x00000130 => "\x98",
+ 0x00000131 => "\x8d",
+ 0x0000015e => "\x9e",
+ 0x0000015f => "\x9f",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM857 - Conversion routines for IBM857
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM857.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP857
+ alias 857
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 00000131 | LATIN SMALL LETTER DOTLESS I
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 9E | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ 9F | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ A7 | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 000000AE | REGISTERED SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ B7 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ B8 | 000000A9 | COPYRIGHT SIGN
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 000000A2 | CENT SIGN
+ BE | 000000A5 | YEN SIGN
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ C7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000000A4 | CURRENCY SIGN
+ D0 | 000000BA | MASCULINE ORDINAL INDICATOR
+ D1 | 000000AA | FEMININE ORDINAL INDICATOR
+ D2 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ D4 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ D8 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 000000A6 | BROKEN BAR
+ DE | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ E3 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ E4 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ E5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ E6 | 000000B5 | MICRO SIGN
+ E8 | 000000D7 | MULTIPLICATION SIGN
+ E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ EA | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ EB | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ EE | 000000AF | MACRON
+ EF | 000000B4 | ACUTE ACCENT
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F3 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ F4 | 000000B6 | PILCROW SIGN
+ F5 | 000000A7 | SECTION SIGN
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 000000B8 | CEDILLA
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 000000A8 | DIAERESIS
+ FA | 000000B7 | MIDDLE DOT
+ FB | 000000B9 | SUPERSCRIPT ONE
+ FC | 000000B3 | SUPERSCRIPT THREE
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM860.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM860.pm
new file mode 100644
index 0000000..9b48afc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM860.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM860.pm,v 1.1 2011-10-12 23:51:38 pertusus Exp $
+
+# Conversion routines for IBM860.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM860;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e3,
+ 0x00e0,
+ 0x00c1,
+ 0x00e7,
+ 0x00ea,
+ 0x00ca,
+ 0x00e8,
+ 0x00cd,
+ 0x00d4,
+ 0x00ec,
+ 0x00c3,
+ 0x00c2,
+ 0x00c9,
+ 0x00c0,
+ 0x00c8,
+ 0x00f4,
+ 0x00f5,
+ 0x00f2,
+ 0x00da,
+ 0x00f9,
+ 0x00cc,
+ 0x00d5,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00d9,
+ 0x20a7,
+ 0x00d3,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x00d2,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa0",
+ "\xc3\x81",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\x8a",
+ "\xc3\xa8",
+ "\xc3\x8d",
+ "\xc3\x94",
+ "\xc3\xac",
+ "\xc3\x83",
+ "\xc3\x82",
+ "\xc3\x89",
+ "\xc3\x80",
+ "\xc3\x88",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb2",
+ "\xc3\x9a",
+ "\xc3\xb9",
+ "\xc3\x8c",
+ "\xc3\x95",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc3\x99",
+ "\xe2\x82\xa7",
+ "\xc3\x93",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xc3\x92",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b5 => "\xe6",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c0 => "\x91",
+ 0x000000c1 => "\x86",
+ 0x000000c2 => "\x8f",
+ 0x000000c3 => "\x8e",
+ 0x000000c7 => "\x80",
+ 0x000000c8 => "\x92",
+ 0x000000c9 => "\x90",
+ 0x000000ca => "\x89",
+ 0x000000cc => "\x98",
+ 0x000000cd => "\x8b",
+ 0x000000d1 => "\xa5",
+ 0x000000d2 => "\xa9",
+ 0x000000d3 => "\x9f",
+ 0x000000d4 => "\x8c",
+ 0x000000d5 => "\x99",
+ 0x000000d9 => "\x9d",
+ 0x000000da => "\x96",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e3 => "\x84",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f5 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fc => "\x81",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM860 - Conversion routines for IBM860
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM860.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP860
+ alias 860
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 8C | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 8F | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 92 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 99 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM861.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM861.pm
new file mode 100644
index 0000000..f54e1a5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM861.pm
@@ -0,0 +1,1148 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM861.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM861.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM861;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00d0,
+ 0x00f0,
+ 0x00de,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00fe,
+ 0x00fb,
+ 0x00dd,
+ 0x00fd,
+ 0x00d6,
+ 0x00dc,
+ 0x00f8,
+ 0x00a3,
+ 0x00d8,
+ 0x20a7,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00c1,
+ 0x00cd,
+ 0x00d3,
+ 0x00da,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\x90",
+ "\xc3\xb0",
+ "\xc3\x9e",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xbe",
+ "\xc3\xbb",
+ "\xc3\x9d",
+ "\xc3\xbd",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xb8",
+ "\xc2\xa3",
+ "\xc3\x98",
+ "\xe2\x82\xa7",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\x81",
+ "\xc3\x8d",
+ "\xc3\x93",
+ "\xc3\x9a",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a3 => "\x9c",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b5 => "\xe6",
+ 0x000000b7 => "\xfa",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c1 => "\xa4",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000cd => "\xa5",
+ 0x000000d0 => "\x8b",
+ 0x000000d3 => "\xa6",
+ 0x000000d6 => "\x99",
+ 0x000000d8 => "\x9d",
+ 0x000000da => "\xa7",
+ 0x000000dc => "\x9a",
+ 0x000000dd => "\x97",
+ 0x000000de => "\x8d",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ed => "\xa1",
+ 0x000000f0 => "\x8c",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\x9b",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000fd => "\x98",
+ 0x000000fe => "\x95",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM861 - Conversion routines for IBM861
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM861.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP861
+ alias 861
+ alias CP-IS
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 8D | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ 98 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ A5 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ A6 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ A7 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM862.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM862.pm
new file mode 100644
index 0000000..d0e398e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM862.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM862.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM862.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM862;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x05d9,
+ 0x05da,
+ 0x05db,
+ 0x05dc,
+ 0x05dd,
+ 0x05de,
+ 0x05df,
+ 0x05e0,
+ 0x05e1,
+ 0x05e2,
+ 0x05e3,
+ 0x05e4,
+ 0x05e5,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x05ea,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x20a7,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xd7\x99",
+ "\xd7\x9a",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9d",
+ "\xd7\x9e",
+ "\xd7\x9f",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\xd7\xa2",
+ "\xd7\xa3",
+ "\xd7\xa4",
+ "\xd7\xa5",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xd7\xaa",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xe2\x82\xa7",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a5 => "\x9d",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b5 => "\xe6",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000d1 => "\xa5",
+ 0x000000df => "\xe1",
+ 0x000000e1 => "\xa0",
+ 0x000000ed => "\xa1",
+ 0x000000f1 => "\xa4",
+ 0x000000f3 => "\xa2",
+ 0x000000f7 => "\xf6",
+ 0x000000fa => "\xa3",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x000005d0 => "\x80",
+ 0x000005d1 => "\x81",
+ 0x000005d2 => "\x82",
+ 0x000005d3 => "\x83",
+ 0x000005d4 => "\x84",
+ 0x000005d5 => "\x85",
+ 0x000005d6 => "\x86",
+ 0x000005d7 => "\x87",
+ 0x000005d8 => "\x88",
+ 0x000005d9 => "\x89",
+ 0x000005da => "\x8a",
+ 0x000005db => "\x8b",
+ 0x000005dc => "\x8c",
+ 0x000005dd => "\x8d",
+ 0x000005de => "\x8e",
+ 0x000005df => "\x8f",
+ 0x000005e0 => "\x90",
+ 0x000005e1 => "\x91",
+ 0x000005e2 => "\x92",
+ 0x000005e3 => "\x93",
+ 0x000005e4 => "\x94",
+ 0x000005e5 => "\x95",
+ 0x000005e6 => "\x96",
+ 0x000005e7 => "\x97",
+ 0x000005e8 => "\x98",
+ 0x000005e9 => "\x99",
+ 0x000005ea => "\x9a",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM862 - Conversion routines for IBM862
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM862.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP862
+ alias 862
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000005D0 | HEBREW LETTER ALEF
+ 81 | 000005D1 | HEBREW LETTER BET
+ 82 | 000005D2 | HEBREW LETTER GIMEL
+ 83 | 000005D3 | HEBREW LETTER DALET
+ 84 | 000005D4 | HEBREW LETTER HE
+ 85 | 000005D5 | HEBREW LETTER VAV
+ 86 | 000005D6 | HEBREW LETTER ZAYIN
+ 87 | 000005D7 | HEBREW LETTER HET
+ 88 | 000005D8 | HEBREW LETTER TET
+ 89 | 000005D9 | HEBREW LETTER YOD
+ 8A | 000005DA | HEBREW LETTER FINAL KAF
+ 8B | 000005DB | HEBREW LETTER KAF
+ 8C | 000005DC | HEBREW LETTER LAMED
+ 8D | 000005DD | HEBREW LETTER FINAL MEM
+ 8E | 000005DE | HEBREW LETTER MEM
+ 8F | 000005DF | HEBREW LETTER FINAL NUN
+ 90 | 000005E0 | HEBREW LETTER NUN
+ 91 | 000005E1 | HEBREW LETTER SAMEKH
+ 92 | 000005E2 | HEBREW LETTER AYIN
+ 93 | 000005E3 | HEBREW LETTER FINAL PE
+ 94 | 000005E4 | HEBREW LETTER PE
+ 95 | 000005E5 | HEBREW LETTER FINAL TSADI
+ 96 | 000005E6 | HEBREW LETTER TSADI
+ 97 | 000005E7 | HEBREW LETTER QOF
+ 98 | 000005E8 | HEBREW LETTER RESH
+ 99 | 000005E9 | HEBREW LETTER SHIN
+ 9A | 000005EA | HEBREW LETTER TAV
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000A5 | YEN SIGN
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM863.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM863.pm
new file mode 100644
index 0000000..ac3b2e7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM863.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM863.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM863.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM863;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00c2,
+ 0x00e0,
+ 0x00b6,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x2017,
+ 0x00c0,
+ 0x00a7,
+ 0x00c9,
+ 0x00c8,
+ 0x00ca,
+ 0x00f4,
+ 0x00cb,
+ 0x00cf,
+ 0x00fb,
+ 0x00f9,
+ 0x00a4,
+ 0x00d4,
+ 0x00dc,
+ 0x00a2,
+ 0x00a3,
+ 0x00d9,
+ 0x00db,
+ 0x0192,
+ 0x00a6,
+ 0x00b4,
+ 0x00f3,
+ 0x00fa,
+ 0x00a8,
+ 0x00b8,
+ 0x00b3,
+ 0x00af,
+ 0x00ce,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00be,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\x82",
+ "\xc3\xa0",
+ "\xc2\xb6",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xe2\x80\x97",
+ "\xc3\x80",
+ "\xc2\xa7",
+ "\xc3\x89",
+ "\xc3\x88",
+ "\xc3\x8a",
+ "\xc3\xb4",
+ "\xc3\x8b",
+ "\xc3\x8f",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc2\xa4",
+ "\xc3\x94",
+ "\xc3\x9c",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc3\x99",
+ "\xc3\x9b",
+ "\xc6\x92",
+ "\xc2\xa6",
+ "\xc2\xb4",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc2\xa8",
+ "\xc2\xb8",
+ "\xc2\xb3",
+ "\xc2\xaf",
+ "\xc3\x8e",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xbe",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a2 => "\x9b",
+ 0x000000a3 => "\x9c",
+ 0x000000a4 => "\x98",
+ 0x000000a6 => "\xa0",
+ 0x000000a7 => "\x8f",
+ 0x000000a8 => "\xa4",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000af => "\xa7",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b3 => "\xa6",
+ 0x000000b4 => "\xa1",
+ 0x000000b5 => "\xe6",
+ 0x000000b6 => "\x86",
+ 0x000000b7 => "\xfa",
+ 0x000000b8 => "\xa5",
+ 0x000000bb => "\xaf",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000be => "\xad",
+ 0x000000c0 => "\x8e",
+ 0x000000c2 => "\x84",
+ 0x000000c7 => "\x80",
+ 0x000000c8 => "\x91",
+ 0x000000c9 => "\x90",
+ 0x000000ca => "\x92",
+ 0x000000cb => "\x94",
+ 0x000000ce => "\xa8",
+ 0x000000cf => "\x95",
+ 0x000000d4 => "\x99",
+ 0x000000d9 => "\x9d",
+ 0x000000db => "\x9e",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e2 => "\x83",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f7 => "\xf6",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x00002017 => "\x8d",
+ 0x0000207f => "\xfc",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM863 - Conversion routines for IBM863
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM863.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+ alias CP863
+ alias 863
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000B6 | PILCROW SIGN
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 00002017 | DOUBLE LOW LINE
+ 8E | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 8F | 000000A7 | SECTION SIGN
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 92 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 95 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000A4 | CURRENCY SIGN
+ 99 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000A2 | CENT SIGN
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ 9E | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000A6 | BROKEN BAR
+ A1 | 000000B4 | ACUTE ACCENT
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000A8 | DIAERESIS
+ A5 | 000000B8 | CEDILLA
+ A6 | 000000B3 | SUPERSCRIPT THREE
+ A7 | 000000AF | MACRON
+ A8 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000BE | VULGAR FRACTION THREE QUARTERS
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM864.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM864.pm
new file mode 100644
index 0000000..e05ee95
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM864.pm
@@ -0,0 +1,1133 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM864.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM864.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM864;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x066a,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00b0,
+ 0x00b7,
+ 0x2219,
+ 0x221a,
+ 0x2592,
+ 0x2500,
+ 0x2502,
+ 0x253c,
+ 0x2524,
+ 0x252c,
+ 0x251c,
+ 0x2534,
+ 0x2510,
+ 0x250c,
+ 0x2514,
+ 0x2518,
+ 0x03b2,
+ 0x221e,
+ 0x03c6,
+ 0x00b1,
+ 0x00bd,
+ 0x00bc,
+ 0x2248,
+ 0x00ab,
+ 0x00bb,
+ 0xfef7,
+ 0xfef8,
+ 0xfffd,
+ 0xfffd,
+ 0xfefb,
+ 0xfefc,
+ 0xfffd,
+ 0x00a0,
+ 0x00ad,
+ 0xfe82,
+ 0x00a3,
+ 0x00a4,
+ 0xfe84,
+ 0xfffd,
+ 0xfffd,
+ 0xfe8e,
+ 0xfe8f,
+ 0xfe95,
+ 0xfe99,
+ 0x060c,
+ 0xfe9d,
+ 0xfea1,
+ 0xfea5,
+ 0x0660,
+ 0x0661,
+ 0x0662,
+ 0x0663,
+ 0x0664,
+ 0x0665,
+ 0x0666,
+ 0x0667,
+ 0x0668,
+ 0x0669,
+ 0xfed1,
+ 0x061b,
+ 0xfeb1,
+ 0xfeb5,
+ 0xfeb9,
+ 0x061f,
+ 0x00a2,
+ 0xfe80,
+ 0xfe81,
+ 0xfe83,
+ 0xfe85,
+ 0xfeca,
+ 0xfe8b,
+ 0xfe8d,
+ 0xfe91,
+ 0xfe93,
+ 0xfe97,
+ 0xfe9b,
+ 0xfe9f,
+ 0xfea3,
+ 0xfea7,
+ 0xfea9,
+ 0xfeab,
+ 0xfead,
+ 0xfeaf,
+ 0xfeb3,
+ 0xfeb7,
+ 0xfebb,
+ 0xfebf,
+ 0xfec1,
+ 0xfec5,
+ 0xfecb,
+ 0xfecf,
+ 0x00a6,
+ 0x00ac,
+ 0x00f7,
+ 0x00d7,
+ 0xfec9,
+ 0x0640,
+ 0xfed3,
+ 0xfed7,
+ 0xfedb,
+ 0xfedf,
+ 0xfee3,
+ 0xfee7,
+ 0xfeeb,
+ 0xfeed,
+ 0xfeef,
+ 0xfef3,
+ 0xfebd,
+ 0xfecc,
+ 0xfece,
+ 0xfecd,
+ 0xfee1,
+ 0xfe7d,
+ 0x0651,
+ 0xfee5,
+ 0xfee9,
+ 0xfeec,
+ 0xfef0,
+ 0xfef2,
+ 0xfed0,
+ 0xfed5,
+ 0xfef5,
+ 0xfef6,
+ 0xfedd,
+ 0xfed9,
+ 0xfef1,
+ 0x25a0,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\xd9\xaa",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\xb0",
+ "\xc2\xb7",
+ "\xe2\x88\x99",
+ "\xe2\x88\x9a",
+ "\xe2\x96\x92",
+ "\xe2\x94\x80",
+ "\xe2\x94\x82",
+ "\xe2\x94\xbc",
+ "\xe2\x94\xa4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\xb4",
+ "\xe2\x94\x90",
+ "\xe2\x94\x8c",
+ "\xe2\x94\x94",
+ "\xe2\x94\x98",
+ "\xce\xb2",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xc2\xb1",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xe2\x89\x88",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xef\xbb\xb7",
+ "\xef\xbb\xb8",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbb\xbb",
+ "\xef\xbb\xbc",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xc2\xad",
+ "\xef\xba\x82",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xef\xba\x84",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xba\x8e",
+ "\xef\xba\x8f",
+ "\xef\xba\x95",
+ "\xef\xba\x99",
+ "\xd8\x8c",
+ "\xef\xba\x9d",
+ "\xef\xba\xa1",
+ "\xef\xba\xa5",
+ "\xd9\xa0",
+ "\xd9\xa1",
+ "\xd9\xa2",
+ "\xd9\xa3",
+ "\xd9\xa4",
+ "\xd9\xa5",
+ "\xd9\xa6",
+ "\xd9\xa7",
+ "\xd9\xa8",
+ "\xd9\xa9",
+ "\xef\xbb\x91",
+ "\xd8\x9b",
+ "\xef\xba\xb1",
+ "\xef\xba\xb5",
+ "\xef\xba\xb9",
+ "\xd8\x9f",
+ "\xc2\xa2",
+ "\xef\xba\x80",
+ "\xef\xba\x81",
+ "\xef\xba\x83",
+ "\xef\xba\x85",
+ "\xef\xbb\x8a",
+ "\xef\xba\x8b",
+ "\xef\xba\x8d",
+ "\xef\xba\x91",
+ "\xef\xba\x93",
+ "\xef\xba\x97",
+ "\xef\xba\x9b",
+ "\xef\xba\x9f",
+ "\xef\xba\xa3",
+ "\xef\xba\xa7",
+ "\xef\xba\xa9",
+ "\xef\xba\xab",
+ "\xef\xba\xad",
+ "\xef\xba\xaf",
+ "\xef\xba\xb3",
+ "\xef\xba\xb7",
+ "\xef\xba\xbb",
+ "\xef\xba\xbf",
+ "\xef\xbb\x81",
+ "\xef\xbb\x85",
+ "\xef\xbb\x8b",
+ "\xef\xbb\x8f",
+ "\xc2\xa6",
+ "\xc2\xac",
+ "\xc3\xb7",
+ "\xc3\x97",
+ "\xef\xbb\x89",
+ "\xd9\x80",
+ "\xef\xbb\x93",
+ "\xef\xbb\x97",
+ "\xef\xbb\x9b",
+ "\xef\xbb\x9f",
+ "\xef\xbb\xa3",
+ "\xef\xbb\xa7",
+ "\xef\xbb\xab",
+ "\xef\xbb\xad",
+ "\xef\xbb\xaf",
+ "\xef\xbb\xb3",
+ "\xef\xba\xbd",
+ "\xef\xbb\x8c",
+ "\xef\xbb\x8e",
+ "\xef\xbb\x8d",
+ "\xef\xbb\xa1",
+ "\xef\xb9\xbd",
+ "\xd9\x91",
+ "\xef\xbb\xa5",
+ "\xef\xbb\xa9",
+ "\xef\xbb\xac",
+ "\xef\xbb\xb0",
+ "\xef\xbb\xb2",
+ "\xef\xbb\x90",
+ "\xef\xbb\x95",
+ "\xef\xbb\xb5",
+ "\xef\xbb\xb6",
+ "\xef\xbb\x9d",
+ "\xef\xbb\x99",
+ "\xef\xbb\xb1",
+ "\xe2\x96\xa0",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a2 => "\xc0",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xdb",
+ 0x000000ab => "\x97",
+ 0x000000ac => "\xdc",
+ 0x000000ad => "\xa1",
+ 0x000000b0 => "\x80",
+ 0x000000b1 => "\x93",
+ 0x000000b7 => "\x81",
+ 0x000000bb => "\x98",
+ 0x000000bc => "\x95",
+ 0x000000bd => "\x94",
+ 0x000000d7 => "\xde",
+ 0x000000f7 => "\xdd",
+ 0x000003b2 => "\x90",
+ 0x000003c6 => "\x92",
+ 0x0000060c => "\xac",
+ 0x0000061b => "\xbb",
+ 0x0000061f => "\xbf",
+ 0x00000640 => "\xe0",
+ 0x00000651 => "\xf1",
+ 0x00000660 => "\xb0",
+ 0x00000661 => "\xb1",
+ 0x00000662 => "\xb2",
+ 0x00000663 => "\xb3",
+ 0x00000664 => "\xb4",
+ 0x00000665 => "\xb5",
+ 0x00000666 => "\xb6",
+ 0x00000667 => "\xb7",
+ 0x00000668 => "\xb8",
+ 0x00000669 => "\xb9",
+ 0x0000066a => "\x25",
+ 0x00002219 => "\x82",
+ 0x0000221a => "\x83",
+ 0x0000221e => "\x91",
+ 0x00002248 => "\x96",
+ 0x00002500 => "\x85",
+ 0x00002502 => "\x86",
+ 0x0000250c => "\x8d",
+ 0x00002510 => "\x8c",
+ 0x00002514 => "\x8e",
+ 0x00002518 => "\x8f",
+ 0x0000251c => "\x8a",
+ 0x00002524 => "\x88",
+ 0x0000252c => "\x89",
+ 0x00002534 => "\x8b",
+ 0x0000253c => "\x87",
+ 0x00002592 => "\x84",
+ 0x000025a0 => "\xfe",
+ 0x0000fe7d => "\xf0",
+ 0x0000fe80 => "\xc1",
+ 0x0000fe81 => "\xc2",
+ 0x0000fe82 => "\xa2",
+ 0x0000fe83 => "\xc3",
+ 0x0000fe84 => "\xa5",
+ 0x0000fe85 => "\xc4",
+ 0x0000fe8b => "\xc6",
+ 0x0000fe8d => "\xc7",
+ 0x0000fe8e => "\xa8",
+ 0x0000fe8f => "\xa9",
+ 0x0000fe91 => "\xc8",
+ 0x0000fe93 => "\xc9",
+ 0x0000fe95 => "\xaa",
+ 0x0000fe97 => "\xca",
+ 0x0000fe99 => "\xab",
+ 0x0000fe9b => "\xcb",
+ 0x0000fe9d => "\xad",
+ 0x0000fe9f => "\xcc",
+ 0x0000fea1 => "\xae",
+ 0x0000fea3 => "\xcd",
+ 0x0000fea5 => "\xaf",
+ 0x0000fea7 => "\xce",
+ 0x0000fea9 => "\xcf",
+ 0x0000feab => "\xd0",
+ 0x0000fead => "\xd1",
+ 0x0000feaf => "\xd2",
+ 0x0000feb1 => "\xbc",
+ 0x0000feb3 => "\xd3",
+ 0x0000feb5 => "\xbd",
+ 0x0000feb7 => "\xd4",
+ 0x0000feb9 => "\xbe",
+ 0x0000febb => "\xd5",
+ 0x0000febd => "\xeb",
+ 0x0000febf => "\xd6",
+ 0x0000fec1 => "\xd7",
+ 0x0000fec5 => "\xd8",
+ 0x0000fec9 => "\xdf",
+ 0x0000feca => "\xc5",
+ 0x0000fecb => "\xd9",
+ 0x0000fecc => "\xec",
+ 0x0000fecd => "\xee",
+ 0x0000fece => "\xed",
+ 0x0000fecf => "\xda",
+ 0x0000fed0 => "\xf7",
+ 0x0000fed1 => "\xba",
+ 0x0000fed3 => "\xe1",
+ 0x0000fed5 => "\xf8",
+ 0x0000fed7 => "\xe2",
+ 0x0000fed9 => "\xfc",
+ 0x0000fedb => "\xe3",
+ 0x0000fedd => "\xfb",
+ 0x0000fedf => "\xe4",
+ 0x0000fee1 => "\xef",
+ 0x0000fee3 => "\xe5",
+ 0x0000fee5 => "\xf2",
+ 0x0000fee7 => "\xe6",
+ 0x0000fee9 => "\xf3",
+ 0x0000feeb => "\xe7",
+ 0x0000feec => "\xf4",
+ 0x0000feed => "\xe8",
+ 0x0000feef => "\xe9",
+ 0x0000fef0 => "\xf5",
+ 0x0000fef1 => "\xfd",
+ 0x0000fef2 => "\xf6",
+ 0x0000fef3 => "\xea",
+ 0x0000fef5 => "\xf9",
+ 0x0000fef6 => "\xfa",
+ 0x0000fef7 => "\x99",
+ 0x0000fef8 => "\x9a",
+ 0x0000fefb => "\x9d",
+ 0x0000fefc => "\x9e",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM864 - Conversion routines for IBM864
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM864.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias CP864
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 0000066A | ARABIC PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 000000B0 | DEGREE SIGN
+ 81 | 000000B7 | MIDDLE DOT
+ 82 | 00002219 | BULLET OPERATOR
+ 83 | 0000221A | SQUARE ROOT
+ 84 | 00002592 | MEDIUM SHADE
+ 85 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ 86 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ 87 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ 88 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ 89 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ 8A | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ 8B | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ 8C | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ 8D | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ 8E | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ 8F | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ 90 | 000003B2 | GREEK SMALL LETTER BETA
+ 91 | 0000221E | INFINITY
+ 92 | 000003C6 | GREEK SMALL LETTER PHI
+ 93 | 000000B1 | PLUS-MINUS SIGN
+ 94 | 000000BD | VULGAR FRACTION ONE HALF
+ 95 | 000000BC | VULGAR FRACTION ONE QUARTER
+ 96 | 00002248 | ALMOST EQUAL TO
+ 97 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 98 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 99 | 0000FEF7 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+ 9A | 0000FEF8 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+ 9D | 0000FEFB | ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+ 9E | 0000FEFC | ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000AD | SOFT HYPHEN
+ A2 | 0000FE82 | ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 0000FE84 | ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+ A8 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM
+ A9 | 0000FE8F | ARABIC LETTER BEH ISOLATED FORM
+ AA | 0000FE95 | ARABIC LETTER TEH ISOLATED FORM
+ AB | 0000FE99 | ARABIC LETTER THEH ISOLATED FORM
+ AC | 0000060C | ARABIC COMMA
+ AD | 0000FE9D | ARABIC LETTER JEEM ISOLATED FORM
+ AE | 0000FEA1 | ARABIC LETTER HAH ISOLATED FORM
+ AF | 0000FEA5 | ARABIC LETTER KHAH ISOLATED FORM
+ B0 | 00000660 | ARABIC-INDIC DIGIT ZERO
+ B1 | 00000661 | ARABIC-INDIC DIGIT ONE
+ B2 | 00000662 | ARABIC-INDIC DIGIT TWO
+ B3 | 00000663 | ARABIC-INDIC DIGIT THREE
+ B4 | 00000664 | ARABIC-INDIC DIGIT FOUR
+ B5 | 00000665 | ARABIC-INDIC DIGIT FIVE
+ B6 | 00000666 | ARABIC-INDIC DIGIT SIX
+ B7 | 00000667 | ARABIC-INDIC DIGIT SEVEN
+ B8 | 00000668 | ARABIC-INDIC DIGIT EIGHT
+ B9 | 00000669 | ARABIC-INDIC DIGIT NINE
+ BA | 0000FED1 | ARABIC LETTER FEH ISOLATED FORM
+ BB | 0000061B | ARABIC SEMICOLON
+ BC | 0000FEB1 | ARABIC LETTER SEEN ISOLATED FORM
+ BD | 0000FEB5 | ARABIC LETTER SHEEN ISOLATED FORM
+ BE | 0000FEB9 | ARABIC LETTER SAD ISOLATED FORM
+ BF | 0000061F | ARABIC QUESTION MARK
+ C0 | 000000A2 | CENT SIGN
+ C1 | 0000FE80 | ARABIC LETTER HAMZA ISOLATED FORM
+ C2 | 0000FE81 | ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+ C3 | 0000FE83 | ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+ C4 | 0000FE85 | ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+ C5 | 0000FECA | ARABIC LETTER AIN FINAL FORM
+ C6 | 0000FE8B | ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+ C7 | 0000FE8D | ARABIC LETTER ALEF ISOLATED FORM
+ C8 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM
+ C9 | 0000FE93 | ARABIC LETTER TEH MARBUTA ISOLATED FORM
+ CA | 0000FE97 | ARABIC LETTER TEH INITIAL FORM
+ CB | 0000FE9B | ARABIC LETTER THEH INITIAL FORM
+ CC | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM
+ CD | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM
+ CE | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM
+ CF | 0000FEA9 | ARABIC LETTER DAL ISOLATED FORM
+ D0 | 0000FEAB | ARABIC LETTER THAL ISOLATED FORM
+ D1 | 0000FEAD | ARABIC LETTER REH ISOLATED FORM
+ D2 | 0000FEAF | ARABIC LETTER ZAIN ISOLATED FORM
+ D3 | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM
+ D4 | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM
+ D5 | 0000FEBB | ARABIC LETTER SAD INITIAL FORM
+ D6 | 0000FEBF | ARABIC LETTER DAD INITIAL FORM
+ D7 | 0000FEC1 | ARABIC LETTER TAH ISOLATED FORM
+ D8 | 0000FEC5 | ARABIC LETTER ZAH ISOLATED FORM
+ D9 | 0000FECB | ARABIC LETTER AIN INITIAL FORM
+ DA | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM
+ DB | 000000A6 | BROKEN BAR
+ DC | 000000AC | NOT SIGN
+ DD | 000000F7 | DIVISION SIGN
+ DE | 000000D7 | MULTIPLICATION SIGN
+ DF | 0000FEC9 | ARABIC LETTER AIN ISOLATED FORM
+ E0 | 00000640 | ARABIC TATWEEL
+ E1 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM
+ E2 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM
+ E3 | 0000FEDB | ARABIC LETTER KAF INITIAL FORM
+ E4 | 0000FEDF | ARABIC LETTER LAM INITIAL FORM
+ E5 | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM
+ E6 | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM
+ E7 | 0000FEEB | ARABIC LETTER HEH INITIAL FORM
+ E8 | 0000FEED | ARABIC LETTER WAW ISOLATED FORM
+ E9 | 0000FEEF | ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+ EA | 0000FEF3 | ARABIC LETTER YEH INITIAL FORM
+ EB | 0000FEBD | ARABIC LETTER DAD ISOLATED FORM
+ EC | 0000FECC | ARABIC LETTER AIN MEDIAL FORM
+ ED | 0000FECE | ARABIC LETTER GHAIN FINAL FORM
+ EE | 0000FECD | ARABIC LETTER GHAIN ISOLATED FORM
+ EF | 0000FEE1 | ARABIC LETTER MEEM ISOLATED FORM
+ F0 | 0000FE7D | ARABIC SHADDA MEDIAL FORM
+ F1 | 00000651 | ARABIC SHADDA
+ F2 | 0000FEE5 | ARABIC LETTER NOON ISOLATED FORM
+ F3 | 0000FEE9 | ARABIC LETTER HEH ISOLATED FORM
+ F4 | 0000FEEC | ARABIC LETTER HEH MEDIAL FORM
+ F5 | 0000FEF0 | ARABIC LETTER ALEF MAKSURA FINAL FORM
+ F6 | 0000FEF2 | ARABIC LETTER YEH FINAL FORM
+ F7 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM
+ F8 | 0000FED5 | ARABIC LETTER QAF ISOLATED FORM
+ F9 | 0000FEF5 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+ FA | 0000FEF6 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+ FB | 0000FEDD | ARABIC LETTER LAM ISOLATED FORM
+ FC | 0000FED9 | ARABIC LETTER KAF ISOLATED FORM
+ FD | 0000FEF1 | ARABIC LETTER YEH ISOLATED FORM
+ FE | 000025A0 | BLACK SQUARE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM865.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM865.pm
new file mode 100644
index 0000000..ba76f7a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM865.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM865.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM865.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM865;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c7,
+ 0x00fc,
+ 0x00e9,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e5,
+ 0x00e7,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ef,
+ 0x00ee,
+ 0x00ec,
+ 0x00c4,
+ 0x00c5,
+ 0x00c9,
+ 0x00e6,
+ 0x00c6,
+ 0x00f4,
+ 0x00f6,
+ 0x00f2,
+ 0x00fb,
+ 0x00f9,
+ 0x00ff,
+ 0x00d6,
+ 0x00dc,
+ 0x00f8,
+ 0x00a3,
+ 0x00d8,
+ 0x20a7,
+ 0x0192,
+ 0x00e1,
+ 0x00ed,
+ 0x00f3,
+ 0x00fa,
+ 0x00f1,
+ 0x00d1,
+ 0x00aa,
+ 0x00ba,
+ 0x00bf,
+ 0x2310,
+ 0x00ac,
+ 0x00bd,
+ 0x00bc,
+ 0x00a1,
+ 0x00ab,
+ 0x00a4,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x03b1,
+ 0x00df,
+ 0x0393,
+ 0x03c0,
+ 0x03a3,
+ 0x03c3,
+ 0x00b5,
+ 0x03c4,
+ 0x03a6,
+ 0x0398,
+ 0x03a9,
+ 0x03b4,
+ 0x221e,
+ 0x03c6,
+ 0x03b5,
+ 0x2229,
+ 0x2261,
+ 0x00b1,
+ 0x2265,
+ 0x2264,
+ 0x2320,
+ 0x2321,
+ 0x00f7,
+ 0x2248,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x207f,
+ 0x00b2,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x87",
+ "\xc3\xbc",
+ "\xc3\xa9",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xaf",
+ "\xc3\xae",
+ "\xc3\xac",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x89",
+ "\xc3\xa6",
+ "\xc3\x86",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb2",
+ "\xc3\xbb",
+ "\xc3\xb9",
+ "\xc3\xbf",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xb8",
+ "\xc2\xa3",
+ "\xc3\x98",
+ "\xe2\x82\xa7",
+ "\xc6\x92",
+ "\xc3\xa1",
+ "\xc3\xad",
+ "\xc3\xb3",
+ "\xc3\xba",
+ "\xc3\xb1",
+ "\xc3\x91",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xc2\xbf",
+ "\xe2\x8c\x90",
+ "\xc2\xac",
+ "\xc2\xbd",
+ "\xc2\xbc",
+ "\xc2\xa1",
+ "\xc2\xab",
+ "\xc2\xa4",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xce\xb1",
+ "\xc3\x9f",
+ "\xce\x93",
+ "\xcf\x80",
+ "\xce\xa3",
+ "\xcf\x83",
+ "\xc2\xb5",
+ "\xcf\x84",
+ "\xce\xa6",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xce\xb4",
+ "\xe2\x88\x9e",
+ "\xcf\x86",
+ "\xce\xb5",
+ "\xe2\x88\xa9",
+ "\xe2\x89\xa1",
+ "\xc2\xb1",
+ "\xe2\x89\xa5",
+ "\xe2\x89\xa4",
+ "\xe2\x8c\xa0",
+ "\xe2\x8c\xa1",
+ "\xc3\xb7",
+ "\xe2\x89\x88",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x81\xbf",
+ "\xc2\xb2",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a1 => "\xad",
+ 0x000000a3 => "\x9c",
+ 0x000000a4 => "\xaf",
+ 0x000000aa => "\xa6",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\xaa",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\xfd",
+ 0x000000b5 => "\xe6",
+ 0x000000b7 => "\xfa",
+ 0x000000ba => "\xa7",
+ 0x000000bc => "\xac",
+ 0x000000bd => "\xab",
+ 0x000000bf => "\xa8",
+ 0x000000c4 => "\x8e",
+ 0x000000c5 => "\x8f",
+ 0x000000c6 => "\x92",
+ 0x000000c7 => "\x80",
+ 0x000000c9 => "\x90",
+ 0x000000d1 => "\xa5",
+ 0x000000d6 => "\x99",
+ 0x000000d8 => "\x9d",
+ 0x000000dc => "\x9a",
+ 0x000000df => "\xe1",
+ 0x000000e0 => "\x85",
+ 0x000000e1 => "\xa0",
+ 0x000000e2 => "\x83",
+ 0x000000e4 => "\x84",
+ 0x000000e5 => "\x86",
+ 0x000000e6 => "\x91",
+ 0x000000e7 => "\x87",
+ 0x000000e8 => "\x8a",
+ 0x000000e9 => "\x82",
+ 0x000000ea => "\x88",
+ 0x000000eb => "\x89",
+ 0x000000ec => "\x8d",
+ 0x000000ed => "\xa1",
+ 0x000000ee => "\x8c",
+ 0x000000ef => "\x8b",
+ 0x000000f1 => "\xa4",
+ 0x000000f2 => "\x95",
+ 0x000000f3 => "\xa2",
+ 0x000000f4 => "\x93",
+ 0x000000f6 => "\x94",
+ 0x000000f7 => "\xf6",
+ 0x000000f8 => "\x9b",
+ 0x000000f9 => "\x97",
+ 0x000000fa => "\xa3",
+ 0x000000fb => "\x96",
+ 0x000000fc => "\x81",
+ 0x000000ff => "\x98",
+ 0x00000192 => "\x9f",
+ 0x00000393 => "\xe2",
+ 0x00000398 => "\xe9",
+ 0x000003a3 => "\xe4",
+ 0x000003a6 => "\xe8",
+ 0x000003a9 => "\xea",
+ 0x000003b1 => "\xe0",
+ 0x000003b4 => "\xeb",
+ 0x000003b5 => "\xee",
+ 0x000003c0 => "\xe3",
+ 0x000003c3 => "\xe5",
+ 0x000003c4 => "\xe7",
+ 0x000003c6 => "\xed",
+ 0x0000207f => "\xfc",
+ 0x000020a7 => "\x9e",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x0000221e => "\xec",
+ 0x00002229 => "\xef",
+ 0x00002248 => "\xf7",
+ 0x00002261 => "\xf0",
+ 0x00002264 => "\xf3",
+ 0x00002265 => "\xf2",
+ 0x00002310 => "\xa9",
+ 0x00002320 => "\xf4",
+ 0x00002321 => "\xf5",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM865 - Conversion routines for IBM865
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM865.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)
+ alias CP865
+ alias 865
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 91 | 000000E6 | LATIN SMALL LETTER AE
+ 92 | 000000C6 | LATIN CAPITAL LETTER AE
+ 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 9E | 000020A7 | PESETA SIGN
+ 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ A6 | 000000AA | FEMININE ORDINAL INDICATOR
+ A7 | 000000BA | MASCULINE ORDINAL INDICATOR
+ A8 | 000000BF | INVERTED QUESTION MARK
+ A9 | 00002310 | REVERSED NOT SIGN
+ AA | 000000AC | NOT SIGN
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 000000BC | VULGAR FRACTION ONE QUARTER
+ AD | 000000A1 | INVERTED EXCLAMATION MARK
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000A4 | CURRENCY SIGN
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ E3 | 000003C0 | GREEK SMALL LETTER PI
+ E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ E5 | 000003C3 | GREEK SMALL LETTER SIGMA
+ E6 | 000000B5 | MICRO SIGN
+ E7 | 000003C4 | GREEK SMALL LETTER TAU
+ E8 | 000003A6 | GREEK CAPITAL LETTER PHI
+ E9 | 00000398 | GREEK CAPITAL LETTER THETA
+ EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ EB | 000003B4 | GREEK SMALL LETTER DELTA
+ EC | 0000221E | INFINITY
+ ED | 000003C6 | GREEK SMALL LETTER PHI
+ EE | 000003B5 | GREEK SMALL LETTER EPSILON
+ EF | 00002229 | INTERSECTION
+ F0 | 00002261 | IDENTICAL TO
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 00002265 | GREATER-THAN OR EQUAL TO
+ F3 | 00002264 | LESS-THAN OR EQUAL TO
+ F4 | 00002320 | TOP HALF INTEGRAL
+ F5 | 00002321 | BOTTOM HALF INTEGRAL
+ F6 | 000000F7 | DIVISION SIGN
+ F7 | 00002248 | ALMOST EQUAL TO
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N
+ FD | 000000B2 | SUPERSCRIPT TWO
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM866.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM866.pm
new file mode 100644
index 0000000..cf559f5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM866.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM866.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM866.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM866;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x2561,
+ 0x2562,
+ 0x2556,
+ 0x2555,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x255c,
+ 0x255b,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x255e,
+ 0x255f,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x2567,
+ 0x2568,
+ 0x2564,
+ 0x2565,
+ 0x2559,
+ 0x2558,
+ 0x2552,
+ 0x2553,
+ 0x256b,
+ 0x256a,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x258c,
+ 0x2590,
+ 0x2580,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x044f,
+ 0x0401,
+ 0x0451,
+ 0x0404,
+ 0x0454,
+ 0x0407,
+ 0x0457,
+ 0x040e,
+ 0x045e,
+ 0x00b0,
+ 0x2219,
+ 0x00b7,
+ 0x221a,
+ 0x2116,
+ 0x00a4,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xe2\x95\xa1",
+ "\xe2\x95\xa2",
+ "\xe2\x95\x96",
+ "\xe2\x95\x95",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9b",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\x99",
+ "\xe2\x95\x98",
+ "\xe2\x95\x92",
+ "\xe2\x95\x93",
+ "\xe2\x95\xab",
+ "\xe2\x95\xaa",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x80",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xd1\x8f",
+ "\xd0\x81",
+ "\xd1\x91",
+ "\xd0\x84",
+ "\xd1\x94",
+ "\xd0\x87",
+ "\xd1\x97",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xc2\xb0",
+ "\xe2\x88\x99",
+ "\xc2\xb7",
+ "\xe2\x88\x9a",
+ "\xe2\x84\x96",
+ "\xc2\xa4",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a4 => "\xfd",
+ 0x000000b0 => "\xf8",
+ 0x000000b7 => "\xfa",
+ 0x00000401 => "\xf0",
+ 0x00000404 => "\xf2",
+ 0x00000407 => "\xf4",
+ 0x0000040e => "\xf6",
+ 0x00000410 => "\x80",
+ 0x00000411 => "\x81",
+ 0x00000412 => "\x82",
+ 0x00000413 => "\x83",
+ 0x00000414 => "\x84",
+ 0x00000415 => "\x85",
+ 0x00000416 => "\x86",
+ 0x00000417 => "\x87",
+ 0x00000418 => "\x88",
+ 0x00000419 => "\x89",
+ 0x0000041a => "\x8a",
+ 0x0000041b => "\x8b",
+ 0x0000041c => "\x8c",
+ 0x0000041d => "\x8d",
+ 0x0000041e => "\x8e",
+ 0x0000041f => "\x8f",
+ 0x00000420 => "\x90",
+ 0x00000421 => "\x91",
+ 0x00000422 => "\x92",
+ 0x00000423 => "\x93",
+ 0x00000424 => "\x94",
+ 0x00000425 => "\x95",
+ 0x00000426 => "\x96",
+ 0x00000427 => "\x97",
+ 0x00000428 => "\x98",
+ 0x00000429 => "\x99",
+ 0x0000042a => "\x9a",
+ 0x0000042b => "\x9b",
+ 0x0000042c => "\x9c",
+ 0x0000042d => "\x9d",
+ 0x0000042e => "\x9e",
+ 0x0000042f => "\x9f",
+ 0x00000430 => "\xa0",
+ 0x00000431 => "\xa1",
+ 0x00000432 => "\xa2",
+ 0x00000433 => "\xa3",
+ 0x00000434 => "\xa4",
+ 0x00000435 => "\xa5",
+ 0x00000436 => "\xa6",
+ 0x00000437 => "\xa7",
+ 0x00000438 => "\xa8",
+ 0x00000439 => "\xa9",
+ 0x0000043a => "\xaa",
+ 0x0000043b => "\xab",
+ 0x0000043c => "\xac",
+ 0x0000043d => "\xad",
+ 0x0000043e => "\xae",
+ 0x0000043f => "\xaf",
+ 0x00000440 => "\xe0",
+ 0x00000441 => "\xe1",
+ 0x00000442 => "\xe2",
+ 0x00000443 => "\xe3",
+ 0x00000444 => "\xe4",
+ 0x00000445 => "\xe5",
+ 0x00000446 => "\xe6",
+ 0x00000447 => "\xe7",
+ 0x00000448 => "\xe8",
+ 0x00000449 => "\xe9",
+ 0x0000044a => "\xea",
+ 0x0000044b => "\xeb",
+ 0x0000044c => "\xec",
+ 0x0000044d => "\xed",
+ 0x0000044e => "\xee",
+ 0x0000044f => "\xef",
+ 0x00000451 => "\xf1",
+ 0x00000454 => "\xf3",
+ 0x00000457 => "\xf5",
+ 0x0000045e => "\xf7",
+ 0x00002116 => "\xfc",
+ 0x00002219 => "\xf9",
+ 0x0000221a => "\xfb",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002552 => "\xd5",
+ 0x00002553 => "\xd6",
+ 0x00002554 => "\xc9",
+ 0x00002555 => "\xb8",
+ 0x00002556 => "\xb7",
+ 0x00002557 => "\xbb",
+ 0x00002558 => "\xd4",
+ 0x00002559 => "\xd3",
+ 0x0000255a => "\xc8",
+ 0x0000255b => "\xbe",
+ 0x0000255c => "\xbd",
+ 0x0000255d => "\xbc",
+ 0x0000255e => "\xc6",
+ 0x0000255f => "\xc7",
+ 0x00002560 => "\xcc",
+ 0x00002561 => "\xb5",
+ 0x00002562 => "\xb6",
+ 0x00002563 => "\xb9",
+ 0x00002564 => "\xd1",
+ 0x00002565 => "\xd2",
+ 0x00002566 => "\xcb",
+ 0x00002567 => "\xcf",
+ 0x00002568 => "\xd0",
+ 0x00002569 => "\xca",
+ 0x0000256a => "\xd8",
+ 0x0000256b => "\xd7",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x0000258c => "\xdd",
+ 0x00002590 => "\xde",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM866 - Conversion routines for IBM866
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM866.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias CP866
+ alias 866
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 81 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 82 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 84 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 85 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 88 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 8A | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 8B | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 8C | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 8D | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 8E | 0000041E | CYRILLIC CAPITAL LETTER O
+ 8F | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 90 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 91 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 92 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 93 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 94 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 95 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 9D | 0000042D | CYRILLIC CAPITAL LETTER E
+ 9E | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9F | 0000042F | CYRILLIC CAPITAL LETTER YA
+ A0 | 00000430 | CYRILLIC SMALL LETTER A
+ A1 | 00000431 | CYRILLIC SMALL LETTER BE
+ A2 | 00000432 | CYRILLIC SMALL LETTER VE
+ A3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ A4 | 00000434 | CYRILLIC SMALL LETTER DE
+ A5 | 00000435 | CYRILLIC SMALL LETTER IE
+ A6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ A7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ A8 | 00000438 | CYRILLIC SMALL LETTER I
+ A9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ AA | 0000043A | CYRILLIC SMALL LETTER KA
+ AB | 0000043B | CYRILLIC SMALL LETTER EL
+ AC | 0000043C | CYRILLIC SMALL LETTER EM
+ AD | 0000043D | CYRILLIC SMALL LETTER EN
+ AE | 0000043E | CYRILLIC SMALL LETTER O
+ AF | 0000043F | CYRILLIC SMALL LETTER PE
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 0000258C | LEFT HALF BLOCK
+ DE | 00002590 | RIGHT HALF BLOCK
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 00000440 | CYRILLIC SMALL LETTER ER
+ E1 | 00000441 | CYRILLIC SMALL LETTER ES
+ E2 | 00000442 | CYRILLIC SMALL LETTER TE
+ E3 | 00000443 | CYRILLIC SMALL LETTER U
+ E4 | 00000444 | CYRILLIC SMALL LETTER EF
+ E5 | 00000445 | CYRILLIC SMALL LETTER HA
+ E6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ E7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ E8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ EB | 0000044B | CYRILLIC SMALL LETTER YERU
+ EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ ED | 0000044D | CYRILLIC SMALL LETTER E
+ EE | 0000044E | CYRILLIC SMALL LETTER YU
+ EF | 0000044F | CYRILLIC SMALL LETTER YA
+ F0 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ F1 | 00000451 | CYRILLIC SMALL LETTER IO
+ F2 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ F3 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ F4 | 00000407 | CYRILLIC CAPITAL LETTER YI
+ F5 | 00000457 | CYRILLIC SMALL LETTER YI
+ F6 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ F7 | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 00002219 | BULLET OPERATOR
+ FA | 000000B7 | MIDDLE DOT
+ FB | 0000221A | SQUARE ROOT
+ FC | 00002116 | NUMERO SIGN
+ FD | 000000A4 | CURRENCY SIGN
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM868.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM868.pm
new file mode 100644
index 0000000..3f79309
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM868.pm
@@ -0,0 +1,1097 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM868.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM868.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM868;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0660,
+ 0x0661,
+ 0x0662,
+ 0x0663,
+ 0x0664,
+ 0x0665,
+ 0x0666,
+ 0x0667,
+ 0x0668,
+ 0x0669,
+ 0x060c,
+ 0x061b,
+ 0x061f,
+ 0x0622,
+ 0x0627,
+ 0xfe8e,
+ 0xe016,
+ 0x0628,
+ 0xfe91,
+ 0x067e,
+ 0xfffd,
+ 0x0629,
+ 0x062a,
+ 0xfe97,
+ 0xfffd,
+ 0xfffd,
+ 0x062b,
+ 0xfe9b,
+ 0x062c,
+ 0xfe9f,
+ 0xfffd,
+ 0xfffd,
+ 0x062d,
+ 0xfea3,
+ 0x062e,
+ 0xfea7,
+ 0x062f,
+ 0xfffd,
+ 0x0630,
+ 0x0631,
+ 0xfffd,
+ 0x0632,
+ 0xfffd,
+ 0x0633,
+ 0xfeb3,
+ 0x0634,
+ 0x00ab,
+ 0x00bb,
+ 0xfeb7,
+ 0x0635,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0xfebb,
+ 0x0636,
+ 0xfebf,
+ 0x0637,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x0638,
+ 0x0639,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0xfeca,
+ 0xfecb,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0xfecc,
+ 0x063a,
+ 0xfece,
+ 0xfecf,
+ 0xfed0,
+ 0x0641,
+ 0xfed3,
+ 0x0642,
+ 0xfed7,
+ 0xfeda,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2580,
+ 0xfedb,
+ 0xfffd,
+ 0x2584,
+ 0xfffd,
+ 0x0644,
+ 0xfede,
+ 0xfee0,
+ 0x0645,
+ 0xfee3,
+ 0xfffd,
+ 0x0646,
+ 0xfee7,
+ 0xfffd,
+ 0x0648,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0621,
+ 0x00ad,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0651,
+ 0xfe7d,
+ 0xfffd,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd9\xa0",
+ "\xd9\xa1",
+ "\xd9\xa2",
+ "\xd9\xa3",
+ "\xd9\xa4",
+ "\xd9\xa5",
+ "\xd9\xa6",
+ "\xd9\xa7",
+ "\xd9\xa8",
+ "\xd9\xa9",
+ "\xd8\x8c",
+ "\xd8\x9b",
+ "\xd8\x9f",
+ "\xd8\xa2",
+ "\xd8\xa7",
+ "\xef\xba\x8e",
+ "\xee\x80\x96",
+ "\xd8\xa8",
+ "\xef\xba\x91",
+ "\xd9\xbe",
+ "\xef\xbf\xbd",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xef\xba\x97",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xab",
+ "\xef\xba\x9b",
+ "\xd8\xac",
+ "\xef\xba\x9f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xad",
+ "\xef\xba\xa3",
+ "\xd8\xae",
+ "\xef\xba\xa7",
+ "\xd8\xaf",
+ "\xef\xbf\xbd",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xef\xbf\xbd",
+ "\xd8\xb2",
+ "\xef\xbf\xbd",
+ "\xd8\xb3",
+ "\xef\xba\xb3",
+ "\xd8\xb4",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xef\xba\xb7",
+ "\xd8\xb5",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xef\xba\xbb",
+ "\xd8\xb6",
+ "\xef\xba\xbf",
+ "\xd8\xb7",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xef\xbb\x8a",
+ "\xef\xbb\x8b",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xef\xbb\x8c",
+ "\xd8\xba",
+ "\xef\xbb\x8e",
+ "\xef\xbb\x8f",
+ "\xef\xbb\x90",
+ "\xd9\x81",
+ "\xef\xbb\x93",
+ "\xd9\x82",
+ "\xef\xbb\x97",
+ "\xef\xbb\x9a",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x80",
+ "\xef\xbb\x9b",
+ "\xef\xbf\xbd",
+ "\xe2\x96\x84",
+ "\xef\xbf\xbd",
+ "\xd9\x84",
+ "\xef\xbb\x9e",
+ "\xef\xbb\xa0",
+ "\xd9\x85",
+ "\xef\xbb\xa3",
+ "\xef\xbf\xbd",
+ "\xd9\x86",
+ "\xef\xbb\xa7",
+ "\xef\xbf\xbd",
+ "\xd9\x88",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xa1",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\x91",
+ "\xef\xb9\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000ab => "\xae",
+ 0x000000ad => "\xf2",
+ 0x000000bb => "\xaf",
+ 0x0000060c => "\x8a",
+ 0x0000061b => "\x8b",
+ 0x0000061f => "\x8c",
+ 0x00000621 => "\xf1",
+ 0x00000622 => "\x8d",
+ 0x00000627 => "\x8e",
+ 0x00000628 => "\x91",
+ 0x00000629 => "\x95",
+ 0x0000062a => "\x96",
+ 0x0000062b => "\x9a",
+ 0x0000062c => "\x9c",
+ 0x0000062d => "\xa0",
+ 0x0000062e => "\xa2",
+ 0x0000062f => "\xa4",
+ 0x00000630 => "\xa6",
+ 0x00000631 => "\xa7",
+ 0x00000632 => "\xa9",
+ 0x00000633 => "\xab",
+ 0x00000634 => "\xad",
+ 0x00000635 => "\xb1",
+ 0x00000636 => "\xb8",
+ 0x00000637 => "\xba",
+ 0x00000638 => "\xbf",
+ 0x00000639 => "\xc0",
+ 0x0000063a => "\xd2",
+ 0x00000641 => "\xd6",
+ 0x00000642 => "\xd8",
+ 0x00000644 => "\xe3",
+ 0x00000645 => "\xe6",
+ 0x00000646 => "\xe9",
+ 0x00000648 => "\xec",
+ 0x00000651 => "\xfb",
+ 0x00000660 => "\x80",
+ 0x00000661 => "\x81",
+ 0x00000662 => "\x82",
+ 0x00000663 => "\x83",
+ 0x00000664 => "\x84",
+ 0x00000665 => "\x85",
+ 0x00000666 => "\x86",
+ 0x00000667 => "\x87",
+ 0x00000668 => "\x88",
+ 0x00000669 => "\x89",
+ 0x0000067e => "\x93",
+ 0x00002500 => "\xc6",
+ 0x00002502 => "\xb5",
+ 0x0000250c => "\xdc",
+ 0x00002510 => "\xc1",
+ 0x00002514 => "\xc2",
+ 0x00002518 => "\xdb",
+ 0x0000251c => "\xc5",
+ 0x00002524 => "\xb6",
+ 0x0000252c => "\xc4",
+ 0x00002534 => "\xc3",
+ 0x0000253c => "\xc7",
+ 0x00002550 => "\xcf",
+ 0x00002551 => "\xbc",
+ 0x00002554 => "\xcb",
+ 0x00002557 => "\xbd",
+ 0x0000255a => "\xca",
+ 0x0000255d => "\xbe",
+ 0x00002560 => "\xce",
+ 0x00002563 => "\xbb",
+ 0x00002566 => "\xcd",
+ 0x00002569 => "\xcc",
+ 0x0000256c => "\xd0",
+ 0x00002580 => "\xde",
+ 0x00002584 => "\xe1",
+ 0x00002588 => "\xdd",
+ 0x00002591 => "\xb2",
+ 0x00002592 => "\xb3",
+ 0x00002593 => "\xb4",
+ 0x000025a0 => "\xfe",
+ 0x0000e016 => "\x90",
+ 0x0000fe7d => "\xfc",
+ 0x0000fe8e => "\x8f",
+ 0x0000fe91 => "\x92",
+ 0x0000fe97 => "\x97",
+ 0x0000fe9b => "\x9b",
+ 0x0000fe9f => "\x9d",
+ 0x0000fea3 => "\xa1",
+ 0x0000fea7 => "\xa3",
+ 0x0000feb3 => "\xac",
+ 0x0000feb7 => "\xb0",
+ 0x0000febb => "\xb7",
+ 0x0000febf => "\xb9",
+ 0x0000feca => "\xc8",
+ 0x0000fecb => "\xc9",
+ 0x0000fecc => "\xd1",
+ 0x0000fece => "\xd3",
+ 0x0000fecf => "\xd4",
+ 0x0000fed0 => "\xd5",
+ 0x0000fed3 => "\xd7",
+ 0x0000fed7 => "\xd9",
+ 0x0000feda => "\xda",
+ 0x0000fedb => "\xdf",
+ 0x0000fede => "\xe4",
+ 0x0000fee0 => "\xe5",
+ 0x0000fee3 => "\xe7",
+ 0x0000fee7 => "\xea",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x8c"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM868 - Conversion routines for IBM868
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM868.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP868
+ alias CP-AR
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000660 | ARABIC-INDIC DIGIT ZERO
+ 81 | 00000661 | ARABIC-INDIC DIGIT ONE
+ 82 | 00000662 | ARABIC-INDIC DIGIT TWO
+ 83 | 00000663 | ARABIC-INDIC DIGIT THREE
+ 84 | 00000664 | ARABIC-INDIC DIGIT FOUR
+ 85 | 00000665 | ARABIC-INDIC DIGIT FIVE
+ 86 | 00000666 | ARABIC-INDIC DIGIT SIX
+ 87 | 00000667 | ARABIC-INDIC DIGIT SEVEN
+ 88 | 00000668 | ARABIC-INDIC DIGIT EIGHT
+ 89 | 00000669 | ARABIC-INDIC DIGIT NINE
+ 8A | 0000060C | ARABIC COMMA
+ 8B | 0000061B | ARABIC SEMICOLON
+ 8C | 0000061F | ARABIC QUESTION MARK
+ 8D | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ 8E | 00000627 | ARABIC LETTER ALEF
+ 8F | 0000FE8E | ARABIC LETTER ALEF FINAL FORM
+ 90 | 0000E016 | ARABIC LETTER ALEF FINAL FORM COMPATIBILITY E<lt>IBM868_90E<gt>
+ 91 | 00000628 | ARABIC LETTER BEH
+ 92 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM
+ 93 | 0000067E | ARABIC LETTER PEH
+ 95 | 00000629 | ARABIC LETTER TEH MARBUTA
+ 96 | 0000062A | ARABIC LETTER TEH
+ 97 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM
+ 9A | 0000062B | ARABIC LETTER THEH
+ 9B | 0000FE9B | ARABIC LETTER THEH INITIAL FORM
+ 9C | 0000062C | ARABIC LETTER JEEM
+ 9D | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM
+ A0 | 0000062D | ARABIC LETTER HAH
+ A1 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM
+ A2 | 0000062E | ARABIC LETTER KHAH
+ A3 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM
+ A4 | 0000062F | ARABIC LETTER DAL
+ A6 | 00000630 | ARABIC LETTER THAL
+ A7 | 00000631 | ARABIC LETTER REH
+ A9 | 00000632 | ARABIC LETTER ZAIN
+ AB | 00000633 | ARABIC LETTER SEEN
+ AC | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM
+ AD | 00000634 | ARABIC LETTER SHEEN
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM
+ B1 | 00000635 | ARABIC LETTER SAD
+ B2 | 00002591 | LIGHT SHADE
+ B3 | 00002592 | MEDIUM SHADE
+ B4 | 00002593 | DARK SHADE
+ B5 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B6 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B7 | 0000FEBB | ARABIC LETTER SAD INITIAL FORM
+ B8 | 00000636 | ARABIC LETTER DAD
+ B9 | 0000FEBF | ARABIC LETTER DAD INITIAL FORM
+ BA | 00000637 | ARABIC LETTER TAH
+ BB | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BC | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BD | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BF | 00000638 | ARABIC LETTER ZAH
+ C0 | 00000639 | ARABIC LETTER AIN
+ C1 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C2 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C3 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C4 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C5 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C6 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C7 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C8 | 0000FECA | ARABIC LETTER AIN FINAL FORM
+ C9 | 0000FECB | ARABIC LETTER AIN INITIAL FORM
+ CA | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ CB | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CC | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CD | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CE | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CF | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ D0 | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ D1 | 0000FECC | ARABIC LETTER AIN MEDIAL FORM
+ D2 | 0000063A | ARABIC LETTER GHAIN
+ D3 | 0000FECE | ARABIC LETTER GHAIN FINAL FORM
+ D4 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM
+ D5 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM
+ D6 | 00000641 | ARABIC LETTER FEH
+ D7 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM
+ D8 | 00000642 | ARABIC LETTER QAF
+ D9 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM
+ DA | 0000FEDA | ARABIC LETTER KAF FINAL FORM
+ DB | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DC | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DD | 00002588 | FULL BLOCK
+ DE | 00002580 | UPPER HALF BLOCK
+ DF | 0000FEDB | ARABIC LETTER KAF INITIAL FORM
+ E1 | 00002584 | LOWER HALF BLOCK
+ E3 | 00000644 | ARABIC LETTER LAM
+ E4 | 0000FEDE | ARABIC LETTER LAM FINAL FORM
+ E5 | 0000FEE0 | ARABIC LETTER LAM MEDIAL FORM
+ E6 | 00000645 | ARABIC LETTER MEEM
+ E7 | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM
+ E9 | 00000646 | ARABIC LETTER NOON
+ EA | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM
+ EC | 00000648 | ARABIC LETTER WAW
+ F1 | 00000621 | ARABIC LETTER HAMZA
+ F2 | 000000AD | SOFT HYPHEN
+ FB | 00000651 | ARABIC SHADDA
+ FC | 0000FE7D | ARABIC SHADDA MEDIAL FORM
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM869.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM869.pm
new file mode 100644
index 0000000..7b1b3ba
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM869.pm
@@ -0,0 +1,1130 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM869.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM869.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM869;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0386,
+ 0xfffd,
+ 0x00b7,
+ 0x00ac,
+ 0x00a6,
+ 0x2018,
+ 0x2019,
+ 0x0388,
+ 0x2015,
+ 0x0389,
+ 0x038a,
+ 0x03aa,
+ 0x038c,
+ 0xfffd,
+ 0xfffd,
+ 0x038e,
+ 0x03ab,
+ 0x00a9,
+ 0x038f,
+ 0x00b2,
+ 0x00b3,
+ 0x03ac,
+ 0x00a3,
+ 0x03ad,
+ 0x03ae,
+ 0x03af,
+ 0x03ca,
+ 0x0390,
+ 0x03cc,
+ 0x03cd,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x00bd,
+ 0x0398,
+ 0x0399,
+ 0x00ab,
+ 0x00bb,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2502,
+ 0x2524,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x2563,
+ 0x2551,
+ 0x2557,
+ 0x255d,
+ 0x039e,
+ 0x039f,
+ 0x2510,
+ 0x2514,
+ 0x2534,
+ 0x252c,
+ 0x251c,
+ 0x2500,
+ 0x253c,
+ 0x03a0,
+ 0x03a1,
+ 0x255a,
+ 0x2554,
+ 0x2569,
+ 0x2566,
+ 0x2560,
+ 0x2550,
+ 0x256c,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x2518,
+ 0x250c,
+ 0x2588,
+ 0x2584,
+ 0x03b4,
+ 0x03b5,
+ 0x2580,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c3,
+ 0x03c2,
+ 0x03c4,
+ 0x0384,
+ 0x00ad,
+ 0x00b1,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x00a7,
+ 0x03c8,
+ 0x0385,
+ 0x00b0,
+ 0x00a8,
+ 0x03c9,
+ 0x03cb,
+ 0x03b0,
+ 0x03ce,
+ 0x25a0,
+ 0x00a0,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xce\x86",
+ "\xef\xbf\xbd",
+ "\xc2\xb7",
+ "\xc2\xac",
+ "\xc2\xa6",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xce\x88",
+ "\xe2\x80\x95",
+ "\xce\x89",
+ "\xce\x8a",
+ "\xce\xaa",
+ "\xce\x8c",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xce\x8e",
+ "\xce\xab",
+ "\xc2\xa9",
+ "\xce\x8f",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xce\xac",
+ "\xc2\xa3",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\xaf",
+ "\xcf\x8a",
+ "\xce\x90",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xc2\xbd",
+ "\xce\x98",
+ "\xce\x99",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x94\x82",
+ "\xe2\x94\xa4",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xe2\x95\xa3",
+ "\xe2\x95\x91",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xac",
+ "\xe2\x94\x9c",
+ "\xe2\x94\x80",
+ "\xe2\x94\xbc",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x94",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa0",
+ "\xe2\x95\x90",
+ "\xe2\x95\xac",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xe2\x94\x98",
+ "\xe2\x94\x8c",
+ "\xe2\x96\x88",
+ "\xe2\x96\x84",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xe2\x96\x80",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x82",
+ "\xcf\x84",
+ "\xce\x84",
+ "\xc2\xad",
+ "\xc2\xb1",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xc2\xa7",
+ "\xcf\x88",
+ "\xce\x85",
+ "\xc2\xb0",
+ "\xc2\xa8",
+ "\xcf\x89",
+ "\xcf\x8b",
+ "\xce\xb0",
+ "\xcf\x8e",
+ "\xe2\x96\xa0",
+ "\xc2\xa0",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xff",
+ 0x000000a3 => "\x9c",
+ 0x000000a6 => "\x8a",
+ 0x000000a7 => "\xf5",
+ 0x000000a8 => "\xf9",
+ 0x000000a9 => "\x97",
+ 0x000000ab => "\xae",
+ 0x000000ac => "\x89",
+ 0x000000ad => "\xf0",
+ 0x000000b0 => "\xf8",
+ 0x000000b1 => "\xf1",
+ 0x000000b2 => "\x99",
+ 0x000000b3 => "\x9a",
+ 0x000000b7 => "\x88",
+ 0x000000bb => "\xaf",
+ 0x000000bd => "\xab",
+ 0x00000384 => "\xef",
+ 0x00000385 => "\xf7",
+ 0x00000386 => "\x86",
+ 0x00000388 => "\x8d",
+ 0x00000389 => "\x8f",
+ 0x0000038a => "\x90",
+ 0x0000038c => "\x92",
+ 0x0000038e => "\x95",
+ 0x0000038f => "\x98",
+ 0x00000390 => "\xa1",
+ 0x00000391 => "\xa4",
+ 0x00000392 => "\xa5",
+ 0x00000393 => "\xa6",
+ 0x00000394 => "\xa7",
+ 0x00000395 => "\xa8",
+ 0x00000396 => "\xa9",
+ 0x00000397 => "\xaa",
+ 0x00000398 => "\xac",
+ 0x00000399 => "\xad",
+ 0x0000039a => "\xb5",
+ 0x0000039b => "\xb6",
+ 0x0000039c => "\xb7",
+ 0x0000039d => "\xb8",
+ 0x0000039e => "\xbd",
+ 0x0000039f => "\xbe",
+ 0x000003a0 => "\xc6",
+ 0x000003a1 => "\xc7",
+ 0x000003a3 => "\xcf",
+ 0x000003a4 => "\xd0",
+ 0x000003a5 => "\xd1",
+ 0x000003a6 => "\xd2",
+ 0x000003a7 => "\xd3",
+ 0x000003a8 => "\xd4",
+ 0x000003a9 => "\xd5",
+ 0x000003aa => "\x91",
+ 0x000003ab => "\x96",
+ 0x000003ac => "\x9b",
+ 0x000003ad => "\x9d",
+ 0x000003ae => "\x9e",
+ 0x000003af => "\x9f",
+ 0x000003b0 => "\xfc",
+ 0x000003b1 => "\xd6",
+ 0x000003b2 => "\xd7",
+ 0x000003b3 => "\xd8",
+ 0x000003b4 => "\xdd",
+ 0x000003b5 => "\xde",
+ 0x000003b6 => "\xe0",
+ 0x000003b7 => "\xe1",
+ 0x000003b8 => "\xe2",
+ 0x000003b9 => "\xe3",
+ 0x000003ba => "\xe4",
+ 0x000003bb => "\xe5",
+ 0x000003bc => "\xe6",
+ 0x000003bd => "\xe7",
+ 0x000003be => "\xe8",
+ 0x000003bf => "\xe9",
+ 0x000003c0 => "\xea",
+ 0x000003c1 => "\xeb",
+ 0x000003c2 => "\xed",
+ 0x000003c3 => "\xec",
+ 0x000003c4 => "\xee",
+ 0x000003c5 => "\xf2",
+ 0x000003c6 => "\xf3",
+ 0x000003c7 => "\xf4",
+ 0x000003c8 => "\xf6",
+ 0x000003c9 => "\xfa",
+ 0x000003ca => "\xa0",
+ 0x000003cb => "\xfb",
+ 0x000003cc => "\xa2",
+ 0x000003cd => "\xa3",
+ 0x000003ce => "\xfd",
+ 0x00002015 => "\x8e",
+ 0x00002018 => "\x8b",
+ 0x00002019 => "\x8c",
+ 0x00002500 => "\xc4",
+ 0x00002502 => "\xb3",
+ 0x0000250c => "\xda",
+ 0x00002510 => "\xbf",
+ 0x00002514 => "\xc0",
+ 0x00002518 => "\xd9",
+ 0x0000251c => "\xc3",
+ 0x00002524 => "\xb4",
+ 0x0000252c => "\xc2",
+ 0x00002534 => "\xc1",
+ 0x0000253c => "\xc5",
+ 0x00002550 => "\xcd",
+ 0x00002551 => "\xba",
+ 0x00002554 => "\xc9",
+ 0x00002557 => "\xbb",
+ 0x0000255a => "\xc8",
+ 0x0000255d => "\xbc",
+ 0x00002560 => "\xcc",
+ 0x00002563 => "\xb9",
+ 0x00002566 => "\xcb",
+ 0x00002569 => "\xca",
+ 0x0000256c => "\xce",
+ 0x00002580 => "\xdf",
+ 0x00002584 => "\xdc",
+ 0x00002588 => "\xdb",
+ 0x00002591 => "\xb0",
+ 0x00002592 => "\xb1",
+ 0x00002593 => "\xb2",
+ 0x000025a0 => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM869 - Conversion routines for IBM869
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM869.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+ alias CP869
+ alias 869
+ alias CP-GR
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 88 | 000000B7 | MIDDLE DOT
+ 89 | 000000AC | NOT SIGN
+ 8A | 000000A6 | BROKEN BAR
+ 8B | 00002018 | LEFT SINGLE QUOTATION MARK
+ 8C | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ 8E | 00002015 | HORIZONTAL BAR
+ 8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ 90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ 91 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ 92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ 96 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ 97 | 000000A9 | COPYRIGHT SIGN
+ 98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 99 | 000000B2 | SUPERSCRIPT TWO
+ 9A | 000000B3 | SUPERSCRIPT THREE
+ 9B | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ 9C | 000000A3 | POUND SIGN
+ 9D | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ 9E | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ 9F | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ A0 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ A1 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ A2 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ A3 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ A4 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ A5 | 00000392 | GREEK CAPITAL LETTER BETA
+ A6 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ A7 | 00000394 | GREEK CAPITAL LETTER DELTA
+ A8 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ A9 | 00000396 | GREEK CAPITAL LETTER ZETA
+ AA | 00000397 | GREEK CAPITAL LETTER ETA
+ AB | 000000BD | VULGAR FRACTION ONE HALF
+ AC | 00000398 | GREEK CAPITAL LETTER THETA
+ AD | 00000399 | GREEK CAPITAL LETTER IOTA
+ AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ B0 | 00002591 | LIGHT SHADE
+ B1 | 00002592 | MEDIUM SHADE
+ B2 | 00002593 | DARK SHADE
+ B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ B5 | 0000039A | GREEK CAPITAL LETTER KAPPA
+ B6 | 0000039B | GREEK CAPITAL LETTER LAMDA
+ B7 | 0000039C | GREEK CAPITAL LETTER MU
+ B8 | 0000039D | GREEK CAPITAL LETTER NU
+ B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ BD | 0000039E | GREEK CAPITAL LETTER XI
+ BE | 0000039F | GREEK CAPITAL LETTER OMICRON
+ BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ C6 | 000003A0 | GREEK CAPITAL LETTER PI
+ C7 | 000003A1 | GREEK CAPITAL LETTER RHO
+ C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CF | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ D0 | 000003A4 | GREEK CAPITAL LETTER TAU
+ D1 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ D2 | 000003A6 | GREEK CAPITAL LETTER PHI
+ D3 | 000003A7 | GREEK CAPITAL LETTER CHI
+ D4 | 000003A8 | GREEK CAPITAL LETTER PSI
+ D5 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ D6 | 000003B1 | GREEK SMALL LETTER ALPHA
+ D7 | 000003B2 | GREEK SMALL LETTER BETA
+ D8 | 000003B3 | GREEK SMALL LETTER GAMMA
+ D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ DB | 00002588 | FULL BLOCK
+ DC | 00002584 | LOWER HALF BLOCK
+ DD | 000003B4 | GREEK SMALL LETTER DELTA
+ DE | 000003B5 | GREEK SMALL LETTER EPSILON
+ DF | 00002580 | UPPER HALF BLOCK
+ E0 | 000003B6 | GREEK SMALL LETTER ZETA
+ E1 | 000003B7 | GREEK SMALL LETTER ETA
+ E2 | 000003B8 | GREEK SMALL LETTER THETA
+ E3 | 000003B9 | GREEK SMALL LETTER IOTA
+ E4 | 000003BA | GREEK SMALL LETTER KAPPA
+ E5 | 000003BB | GREEK SMALL LETTER LAMDA
+ E6 | 000003BC | GREEK SMALL LETTER MU
+ E7 | 000003BD | GREEK SMALL LETTER NU
+ E8 | 000003BE | GREEK SMALL LETTER XI
+ E9 | 000003BF | GREEK SMALL LETTER OMICRON
+ EA | 000003C0 | GREEK SMALL LETTER PI
+ EB | 000003C1 | GREEK SMALL LETTER RHO
+ EC | 000003C3 | GREEK SMALL LETTER SIGMA
+ ED | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ EE | 000003C4 | GREEK SMALL LETTER TAU
+ EF | 00000384 | GREEK TONOS
+ F0 | 000000AD | SOFT HYPHEN
+ F1 | 000000B1 | PLUS-MINUS SIGN
+ F2 | 000003C5 | GREEK SMALL LETTER UPSILON
+ F3 | 000003C6 | GREEK SMALL LETTER PHI
+ F4 | 000003C7 | GREEK SMALL LETTER CHI
+ F5 | 000000A7 | SECTION SIGN
+ F6 | 000003C8 | GREEK SMALL LETTER PSI
+ F7 | 00000385 | GREEK DIALYTIKA TONOS
+ F8 | 000000B0 | DEGREE SIGN
+ F9 | 000000A8 | DIAERESIS
+ FA | 000003C9 | GREEK SMALL LETTER OMEGA
+ FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ FC | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ FD | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+ FE | 000025A0 | BLACK SQUARE
+ FF | 000000A0 | NO-BREAK SPACE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM870.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM870.pm
new file mode 100644
index 0000000..4e5cefe
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM870.pm
@@ -0,0 +1,1126 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM870.pm,v 1.1 2011-10-12 23:51:39 pertusus Exp $
+
+# Conversion routines for IBM870.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM870;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0xfffd,
+ 0x00e4,
+ 0xfffd,
+ 0x00e1,
+ 0x0103,
+ 0x010d,
+ 0x00e7,
+ 0x0107,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0xfffd,
+ 0x00eb,
+ 0x016f,
+ 0x00ed,
+ 0xfffd,
+ 0x013e,
+ 0x013a,
+ 0x00df,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfffd,
+ 0x00c4,
+ 0x02dd,
+ 0x00c1,
+ 0xfffd,
+ 0x010c,
+ 0x00c7,
+ 0x0106,
+ 0x007c,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x02c7,
+ 0x00c9,
+ 0xfffd,
+ 0x00cb,
+ 0x016e,
+ 0x00cd,
+ 0xfffd,
+ 0x013d,
+ 0x0139,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x02d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x015b,
+ 0x0148,
+ 0x0111,
+ 0x00fd,
+ 0x0159,
+ 0xfffd,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0142,
+ 0x0144,
+ 0x0161,
+ 0x00b8,
+ 0x02db,
+ 0x00a4,
+ 0x0105,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x015a,
+ 0x0147,
+ 0x0110,
+ 0x00dd,
+ 0x0158,
+ 0xfffd,
+ 0x00b7,
+ 0x0104,
+ 0x017c,
+ 0xfffd,
+ 0x017b,
+ 0x00a7,
+ 0x00b6,
+ 0x017e,
+ 0x017a,
+ 0x017d,
+ 0x0179,
+ 0x0143,
+ 0x0160,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x00f6,
+ 0x0155,
+ 0x00f3,
+ 0x0151,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x011a,
+ 0x0171,
+ 0x00fc,
+ 0x0165,
+ 0x00fa,
+ 0x011b,
+ 0x005c,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x010f,
+ 0x00d4,
+ 0x00d6,
+ 0x0154,
+ 0x00d3,
+ 0x0150,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x010e,
+ 0x0170,
+ 0x00dc,
+ 0x0164,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xef\xbf\xbd",
+ "\xc3\xa4",
+ "\xef\xbf\xbd",
+ "\xc3\xa1",
+ "\xc4\x83",
+ "\xc4\x8d",
+ "\xc3\xa7",
+ "\xc4\x87",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xef\xbf\xbd",
+ "\xc3\xab",
+ "\xc5\xaf",
+ "\xc3\xad",
+ "\xef\xbf\xbd",
+ "\xc4\xbe",
+ "\xc4\xba",
+ "\xc3\x9f",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xbf\xbd",
+ "\xc3\x84",
+ "\xcb\x9d",
+ "\xc3\x81",
+ "\xef\xbf\xbd",
+ "\xc4\x8c",
+ "\xc3\x87",
+ "\xc4\x86",
+ "\x7c",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xcb\x87",
+ "\xc3\x89",
+ "\xef\xbf\xbd",
+ "\xc3\x8b",
+ "\xc5\xae",
+ "\xc3\x8d",
+ "\xef\xbf\xbd",
+ "\xc4\xbd",
+ "\xc4\xb9",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xcb\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc5\x9b",
+ "\xc5\x88",
+ "\xc4\x91",
+ "\xc3\xbd",
+ "\xc5\x99",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc5\x82",
+ "\xc5\x84",
+ "\xc5\xa1",
+ "\xc2\xb8",
+ "\xcb\x9b",
+ "\xc2\xa4",
+ "\xc4\x85",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc5\x9a",
+ "\xc5\x87",
+ "\xc4\x90",
+ "\xc3\x9d",
+ "\xc5\x98",
+ "\xef\xbf\xbd",
+ "\xc2\xb7",
+ "\xc4\x84",
+ "\xc5\xbc",
+ "\xef\xbf\xbd",
+ "\xc5\xbb",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc5\xbe",
+ "\xc5\xba",
+ "\xc5\xbd",
+ "\xc5\xb9",
+ "\xc5\x83",
+ "\xc5\xa0",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc5\x95",
+ "\xc3\xb3",
+ "\xc5\x91",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc4\x9a",
+ "\xc5\xb1",
+ "\xc3\xbc",
+ "\xc5\xa5",
+ "\xc3\xba",
+ "\xc4\x9b",
+ "\x5c",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc4\x8f",
+ "\xc3\x94",
+ "\xc3\x96",
+ "\xc5\x94",
+ "\xc3\x93",
+ "\xc5\x90",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc4\x8e",
+ "\xc5\xb0",
+ "\xc3\x9c",
+ "\xc5\xa4",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\x6a",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a4 => "\x9f",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000ad => "\xca",
+ 0x000000b0 => "\x90",
+ 0x000000b4 => "\xbe",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb0",
+ 0x000000b8 => "\x9d",
+ 0x000000c1 => "\x65",
+ 0x000000c4 => "\x63",
+ 0x000000c7 => "\x68",
+ 0x000000c9 => "\x71",
+ 0x000000cb => "\x73",
+ 0x000000cd => "\x75",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d6 => "\xec",
+ 0x000000d7 => "\xbf",
+ 0x000000da => "\xfe",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000df => "\x59",
+ 0x000000e1 => "\x45",
+ 0x000000e4 => "\x43",
+ 0x000000e7 => "\x48",
+ 0x000000e9 => "\x51",
+ 0x000000eb => "\x53",
+ 0x000000ed => "\x55",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f6 => "\xcc",
+ 0x000000f7 => "\xe1",
+ 0x000000fa => "\xde",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x00000103 => "\x46",
+ 0x00000104 => "\xb1",
+ 0x00000105 => "\xa0",
+ 0x00000106 => "\x69",
+ 0x00000107 => "\x49",
+ 0x0000010c => "\x67",
+ 0x0000010d => "\x47",
+ 0x0000010e => "\xfa",
+ 0x0000010f => "\xea",
+ 0x00000110 => "\xac",
+ 0x00000111 => "\x8c",
+ 0x0000011a => "\xda",
+ 0x0000011b => "\xdf",
+ 0x00000139 => "\x78",
+ 0x0000013a => "\x58",
+ 0x0000013d => "\x77",
+ 0x0000013e => "\x57",
+ 0x00000142 => "\x9a",
+ 0x00000143 => "\xbb",
+ 0x00000144 => "\x9b",
+ 0x00000147 => "\xab",
+ 0x00000148 => "\x8b",
+ 0x00000150 => "\xef",
+ 0x00000151 => "\xcf",
+ 0x00000154 => "\xed",
+ 0x00000155 => "\xcd",
+ 0x00000158 => "\xae",
+ 0x00000159 => "\x8e",
+ 0x0000015a => "\xaa",
+ 0x0000015b => "\x8a",
+ 0x00000160 => "\xbc",
+ 0x00000161 => "\x9c",
+ 0x00000164 => "\xfd",
+ 0x00000165 => "\xdd",
+ 0x0000016e => "\x74",
+ 0x0000016f => "\x54",
+ 0x00000170 => "\xfb",
+ 0x00000171 => "\xdb",
+ 0x00000179 => "\xba",
+ 0x0000017a => "\xb8",
+ 0x0000017b => "\xb4",
+ 0x0000017c => "\xb2",
+ 0x0000017d => "\xb9",
+ 0x0000017e => "\xb7",
+ 0x000002c7 => "\x70",
+ 0x000002d8 => "\x80",
+ 0x000002db => "\x9e",
+ 0x000002dd => "\x64",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM870 - Conversion routines for IBM870
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM870.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP870
+ alias EBCDIC-CP-ROECE
+ alias EBCDIC-CP-YU
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ 47 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 57 | 0000013E | LATIN SMALL LETTER L WITH CARON
+ 58 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000002DD | DOUBLE ACUTE ACCENT
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 67 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ 6A | 0000007C | VERTICAL LINE
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000002C7 | CARON (Mandarin Chinese third tone)
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 77 | 0000013D | LATIN CAPITAL LETTER L WITH CARON
+ 78 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000002D8 | BREVE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ 8B | 00000148 | LATIN SMALL LETTER N WITH CARON
+ 8C | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 00000159 | LATIN SMALL LETTER R WITH CARON
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ 9B | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ 9C | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9D | 000000B8 | CEDILLA
+ 9E | 000002DB | OGONEK
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ AB | 00000147 | LATIN CAPITAL LETTER N WITH CARON
+ AC | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 00000158 | LATIN CAPITAL LETTER R WITH CARON
+ B0 | 000000B7 | MIDDLE DOT
+ B1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ B2 | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ B4 | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ B8 | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ B9 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ BA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ BB | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ BC | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ CD | 00000155 | LATIN SMALL LETTER R WITH ACUTE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 0000011A | LATIN CAPITAL LETTER E WITH CARON
+ DB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 00000165 | LATIN SMALL LETTER T WITH CARON
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 0000011B | LATIN SMALL LETTER E WITH CARON
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 0000010F | LATIN SMALL LETTER D WITH CARON
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ ED | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 0000010E | LATIN CAPITAL LETTER D WITH CARON
+ FB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 00000164 | LATIN CAPITAL LETTER T WITH CARON
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM871.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM871.pm
new file mode 100644
index 0000000..e091df0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM871.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM871.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM871.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM871;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00f1,
+ 0x00fe,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x00c6,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x00d6,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0x00c3,
+ 0x00c5,
+ 0x00c7,
+ 0x00d1,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00f8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00f0,
+ 0x003a,
+ 0x0023,
+ 0x00d0,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x00d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x00ab,
+ 0x00bb,
+ 0x0060,
+ 0x00fd,
+ 0x007b,
+ 0x00b1,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x00aa,
+ 0x00ba,
+ 0x007d,
+ 0x00b8,
+ 0x005d,
+ 0x00a4,
+ 0x00b5,
+ 0x00f6,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00a1,
+ 0x00bf,
+ 0x0040,
+ 0x00dd,
+ 0x005b,
+ 0x00ae,
+ 0x00a2,
+ 0x00a3,
+ 0x00a5,
+ 0x00b7,
+ 0x00a9,
+ 0x00a7,
+ 0x00b6,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00ac,
+ 0x007c,
+ 0x00af,
+ 0x00a8,
+ 0x005c,
+ 0x00d7,
+ 0x00de,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x007e,
+ 0x00f2,
+ 0x00f3,
+ 0x00f5,
+ 0x00e6,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b9,
+ 0x00fb,
+ 0x00fc,
+ 0x00f9,
+ 0x00fa,
+ 0x00ff,
+ 0x00b4,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x005e,
+ 0x00d2,
+ 0x00d3,
+ 0x00d5,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x00dc,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xb1",
+ "\xc3\xbe",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc3\x86",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\xc3\x96",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x83",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x91",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc3\xb8",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\xb0",
+ "\x3a",
+ "\x23",
+ "\xc3\x90",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xc3\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\x60",
+ "\xc3\xbd",
+ "\x7b",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\x7d",
+ "\xc2\xb8",
+ "\x5d",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc3\xb6",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc2\xa1",
+ "\xc2\xbf",
+ "\x40",
+ "\xc3\x9d",
+ "\x5b",
+ "\xc2\xae",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa5",
+ "\xc2\xb7",
+ "\xc2\xa9",
+ "\xc2\xa7",
+ "\xc2\xb6",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xac",
+ "\x7c",
+ "\xc2\xaf",
+ "\xc2\xa8",
+ "\x5c",
+ "\xc3\x97",
+ "\xc3\x9e",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\x7e",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb5",
+ "\xc3\xa6",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbf",
+ "\xc2\xb4",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\x5e",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x95",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xac",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\xae",
+ 0x0000005c => "\xbe",
+ 0x0000005d => "\x9e",
+ 0x0000005e => "\xec",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x8c",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x8e",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\x9c",
+ 0x0000007e => "\xcc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000a1 => "\xaa",
+ 0x000000a2 => "\xb0",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a5 => "\xb2",
+ 0x000000a6 => "\x6a",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000a9 => "\xb4",
+ 0x000000aa => "\x9a",
+ 0x000000ab => "\x8a",
+ 0x000000ac => "\xba",
+ 0x000000ad => "\xca",
+ 0x000000ae => "\xaf",
+ 0x000000af => "\xbc",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\x8f",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xe0",
+ 0x000000b5 => "\xa0",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb3",
+ 0x000000b8 => "\x9d",
+ 0x000000b9 => "\xda",
+ 0x000000ba => "\x9b",
+ 0x000000bb => "\x8b",
+ 0x000000bc => "\xb7",
+ 0x000000bd => "\xb8",
+ 0x000000be => "\xb9",
+ 0x000000bf => "\xab",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c3 => "\x66",
+ 0x000000c4 => "\x63",
+ 0x000000c5 => "\x67",
+ 0x000000c6 => "\x5a",
+ 0x000000c7 => "\x68",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d0 => "\x7c",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d5 => "\xef",
+ 0x000000d6 => "\x5f",
+ 0x000000d7 => "\xbf",
+ 0x000000d8 => "\x80",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\xfc",
+ 0x000000dd => "\xad",
+ 0x000000de => "\xc0",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e3 => "\x46",
+ 0x000000e4 => "\x43",
+ 0x000000e5 => "\x47",
+ 0x000000e6 => "\xd0",
+ 0x000000e7 => "\x48",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f0 => "\x79",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f5 => "\xcf",
+ 0x000000f6 => "\xa1",
+ 0x000000f7 => "\xe1",
+ 0x000000f8 => "\x70",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xdc",
+ 0x000000fd => "\x8d",
+ 0x000000fe => "\x4a",
+ 0x000000ff => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM871 - Conversion routines for IBM871
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM871.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP871
+ alias EBCDIC-CP-IS
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 000000C6 | LATIN CAPITAL LETTER AE
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8C | 00000060 | GRAVE ACCENT
+ 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ 8E | 0000007B | LEFT CURLY BRACKET
+ 8F | 000000B1 | PLUS-MINUS SIGN
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000000AA | FEMININE ORDINAL INDICATOR
+ 9B | 000000BA | MASCULINE ORDINAL INDICATOR
+ 9C | 0000007D | RIGHT CURLY BRACKET
+ 9D | 000000B8 | CEDILLA
+ 9E | 0000005D | RIGHT SQUARE BRACKET
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000000A1 | INVERTED EXCLAMATION MARK
+ AB | 000000BF | INVERTED QUESTION MARK
+ AC | 00000040 | COMMERCIAL AT
+ AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ AE | 0000005B | LEFT SQUARE BRACKET
+ AF | 000000AE | REGISTERED SIGN
+ B0 | 000000A2 | CENT SIGN
+ B1 | 000000A3 | POUND SIGN
+ B2 | 000000A5 | YEN SIGN
+ B3 | 000000B7 | MIDDLE DOT
+ B4 | 000000A9 | COPYRIGHT SIGN
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000BC | VULGAR FRACTION ONE QUARTER
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BA | 000000AC | NOT SIGN
+ BB | 0000007C | VERTICAL LINE
+ BC | 000000AF | MACRON
+ BD | 000000A8 | DIAERESIS
+ BE | 0000005C | REVERSE SOLIDUS
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 0000007E | TILDE
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ D0 | 000000E6 | LATIN SMALL LETTER AE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B9 | SUPERSCRIPT ONE
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ E0 | 000000B4 | ACUTE ACCENT
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 0000005E | CIRCUMFLEX ACCENT
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM874.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM874.pm
new file mode 100644
index 0000000..49c5902
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM874.pm
@@ -0,0 +1,1083 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM874.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM874.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM874;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2026,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a0,
+ 0x0e01,
+ 0x0e02,
+ 0x0e03,
+ 0x0e04,
+ 0x0e05,
+ 0x0e06,
+ 0x0e07,
+ 0x0e08,
+ 0x0e09,
+ 0x0e0a,
+ 0x0e0b,
+ 0x0e0c,
+ 0x0e0d,
+ 0x0e0e,
+ 0x0e0f,
+ 0x0e10,
+ 0x0e11,
+ 0x0e12,
+ 0x0e13,
+ 0x0e14,
+ 0x0e15,
+ 0x0e16,
+ 0x0e17,
+ 0x0e18,
+ 0x0e19,
+ 0x0e1a,
+ 0x0e1b,
+ 0x0e1c,
+ 0x0e1d,
+ 0x0e1e,
+ 0x0e1f,
+ 0x0e20,
+ 0x0e21,
+ 0x0e22,
+ 0x0e23,
+ 0x0e24,
+ 0x0e25,
+ 0x0e26,
+ 0x0e27,
+ 0x0e28,
+ 0x0e29,
+ 0x0e2a,
+ 0x0e2b,
+ 0x0e2c,
+ 0x0e2d,
+ 0x0e2e,
+ 0x0e2f,
+ 0x0e30,
+ 0x0e31,
+ 0x0e32,
+ 0x0e33,
+ 0x0e34,
+ 0x0e35,
+ 0x0e36,
+ 0x0e37,
+ 0x0e38,
+ 0x0e39,
+ 0x0e3a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0e3f,
+ 0x0e40,
+ 0x0e41,
+ 0x0e42,
+ 0x0e43,
+ 0x0e44,
+ 0x0e45,
+ 0x0e46,
+ 0x0e47,
+ 0x0e48,
+ 0x0e49,
+ 0x0e4a,
+ 0x0e4b,
+ 0x0e4c,
+ 0x0e4d,
+ 0x0e4e,
+ 0x0e4f,
+ 0x0e50,
+ 0x0e51,
+ 0x0e52,
+ 0x0e53,
+ 0x0e54,
+ 0x0e55,
+ 0x0e56,
+ 0x0e57,
+ 0x0e58,
+ 0x0e59,
+ 0x0e5a,
+ 0x0e5b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xa6",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xe0\xb8\x81",
+ "\xe0\xb8\x82",
+ "\xe0\xb8\x83",
+ "\xe0\xb8\x84",
+ "\xe0\xb8\x85",
+ "\xe0\xb8\x86",
+ "\xe0\xb8\x87",
+ "\xe0\xb8\x88",
+ "\xe0\xb8\x89",
+ "\xe0\xb8\x8a",
+ "\xe0\xb8\x8b",
+ "\xe0\xb8\x8c",
+ "\xe0\xb8\x8d",
+ "\xe0\xb8\x8e",
+ "\xe0\xb8\x8f",
+ "\xe0\xb8\x90",
+ "\xe0\xb8\x91",
+ "\xe0\xb8\x92",
+ "\xe0\xb8\x93",
+ "\xe0\xb8\x94",
+ "\xe0\xb8\x95",
+ "\xe0\xb8\x96",
+ "\xe0\xb8\x97",
+ "\xe0\xb8\x98",
+ "\xe0\xb8\x99",
+ "\xe0\xb8\x9a",
+ "\xe0\xb8\x9b",
+ "\xe0\xb8\x9c",
+ "\xe0\xb8\x9d",
+ "\xe0\xb8\x9e",
+ "\xe0\xb8\x9f",
+ "\xe0\xb8\xa0",
+ "\xe0\xb8\xa1",
+ "\xe0\xb8\xa2",
+ "\xe0\xb8\xa3",
+ "\xe0\xb8\xa4",
+ "\xe0\xb8\xa5",
+ "\xe0\xb8\xa6",
+ "\xe0\xb8\xa7",
+ "\xe0\xb8\xa8",
+ "\xe0\xb8\xa9",
+ "\xe0\xb8\xaa",
+ "\xe0\xb8\xab",
+ "\xe0\xb8\xac",
+ "\xe0\xb8\xad",
+ "\xe0\xb8\xae",
+ "\xe0\xb8\xaf",
+ "\xe0\xb8\xb0",
+ "\xe0\xb8\xb1",
+ "\xe0\xb8\xb2",
+ "\xe0\xb8\xb3",
+ "\xe0\xb8\xb4",
+ "\xe0\xb8\xb5",
+ "\xe0\xb8\xb6",
+ "\xe0\xb8\xb7",
+ "\xe0\xb8\xb8",
+ "\xe0\xb8\xb9",
+ "\xe0\xb8\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe0\xb8\xbf",
+ "\xe0\xb9\x80",
+ "\xe0\xb9\x81",
+ "\xe0\xb9\x82",
+ "\xe0\xb9\x83",
+ "\xe0\xb9\x84",
+ "\xe0\xb9\x85",
+ "\xe0\xb9\x86",
+ "\xe0\xb9\x87",
+ "\xe0\xb9\x88",
+ "\xe0\xb9\x89",
+ "\xe0\xb9\x8a",
+ "\xe0\xb9\x8b",
+ "\xe0\xb9\x8c",
+ "\xe0\xb9\x8d",
+ "\xe0\xb9\x8e",
+ "\xe0\xb9\x8f",
+ "\xe0\xb9\x90",
+ "\xe0\xb9\x91",
+ "\xe0\xb9\x92",
+ "\xe0\xb9\x93",
+ "\xe0\xb9\x94",
+ "\xe0\xb9\x95",
+ "\xe0\xb9\x96",
+ "\xe0\xb9\x97",
+ "\xe0\xb9\x98",
+ "\xe0\xb9\x99",
+ "\xe0\xb9\x9a",
+ "\xe0\xb9\x9b",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x00000e01 => "\xa1",
+ 0x00000e02 => "\xa2",
+ 0x00000e03 => "\xa3",
+ 0x00000e04 => "\xa4",
+ 0x00000e05 => "\xa5",
+ 0x00000e06 => "\xa6",
+ 0x00000e07 => "\xa7",
+ 0x00000e08 => "\xa8",
+ 0x00000e09 => "\xa9",
+ 0x00000e0a => "\xaa",
+ 0x00000e0b => "\xab",
+ 0x00000e0c => "\xac",
+ 0x00000e0d => "\xad",
+ 0x00000e0e => "\xae",
+ 0x00000e0f => "\xaf",
+ 0x00000e10 => "\xb0",
+ 0x00000e11 => "\xb1",
+ 0x00000e12 => "\xb2",
+ 0x00000e13 => "\xb3",
+ 0x00000e14 => "\xb4",
+ 0x00000e15 => "\xb5",
+ 0x00000e16 => "\xb6",
+ 0x00000e17 => "\xb7",
+ 0x00000e18 => "\xb8",
+ 0x00000e19 => "\xb9",
+ 0x00000e1a => "\xba",
+ 0x00000e1b => "\xbb",
+ 0x00000e1c => "\xbc",
+ 0x00000e1d => "\xbd",
+ 0x00000e1e => "\xbe",
+ 0x00000e1f => "\xbf",
+ 0x00000e20 => "\xc0",
+ 0x00000e21 => "\xc1",
+ 0x00000e22 => "\xc2",
+ 0x00000e23 => "\xc3",
+ 0x00000e24 => "\xc4",
+ 0x00000e25 => "\xc5",
+ 0x00000e26 => "\xc6",
+ 0x00000e27 => "\xc7",
+ 0x00000e28 => "\xc8",
+ 0x00000e29 => "\xc9",
+ 0x00000e2a => "\xca",
+ 0x00000e2b => "\xcb",
+ 0x00000e2c => "\xcc",
+ 0x00000e2d => "\xcd",
+ 0x00000e2e => "\xce",
+ 0x00000e2f => "\xcf",
+ 0x00000e30 => "\xd0",
+ 0x00000e31 => "\xd1",
+ 0x00000e32 => "\xd2",
+ 0x00000e33 => "\xd3",
+ 0x00000e34 => "\xd4",
+ 0x00000e35 => "\xd5",
+ 0x00000e36 => "\xd6",
+ 0x00000e37 => "\xd7",
+ 0x00000e38 => "\xd8",
+ 0x00000e39 => "\xd9",
+ 0x00000e3a => "\xda",
+ 0x00000e3f => "\xdf",
+ 0x00000e40 => "\xe0",
+ 0x00000e41 => "\xe1",
+ 0x00000e42 => "\xe2",
+ 0x00000e43 => "\xe3",
+ 0x00000e44 => "\xe4",
+ 0x00000e45 => "\xe5",
+ 0x00000e46 => "\xe6",
+ 0x00000e47 => "\xe7",
+ 0x00000e48 => "\xe8",
+ 0x00000e49 => "\xe9",
+ 0x00000e4a => "\xea",
+ 0x00000e4b => "\xeb",
+ 0x00000e4c => "\xec",
+ 0x00000e4d => "\xed",
+ 0x00000e4e => "\xee",
+ 0x00000e4f => "\xef",
+ 0x00000e50 => "\xf0",
+ 0x00000e51 => "\xf1",
+ 0x00000e52 => "\xf2",
+ 0x00000e53 => "\xf3",
+ 0x00000e54 => "\xf4",
+ 0x00000e55 => "\xf5",
+ 0x00000e56 => "\xf6",
+ 0x00000e57 => "\xf7",
+ 0x00000e58 => "\xf8",
+ 0x00000e59 => "\xf9",
+ 0x00000e5a => "\xfa",
+ 0x00000e5b => "\xfb",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x000020ac => "\x80",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM874 - Conversion routines for IBM874
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM874.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias CP874
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 000020AC | EURO SIGN
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000E01 | THAI CHARACTER KO KAI
+ A2 | 00000E02 | THAI CHARACTER KHO KHAI
+ A3 | 00000E03 | THAI CHARACTER KHO KHUAT
+ A4 | 00000E04 | THAI CHARACTER KHO KHWAI
+ A5 | 00000E05 | THAI CHARACTER KHO KHON
+ A6 | 00000E06 | THAI CHARACTER KHO RAKHANG
+ A7 | 00000E07 | THAI CHARACTER NGO NGU
+ A8 | 00000E08 | THAI CHARACTER CHO CHAN
+ A9 | 00000E09 | THAI CHARACTER CHO CHING
+ AA | 00000E0A | THAI CHARACTER CHO CHANG
+ AB | 00000E0B | THAI CHARACTER SO SO
+ AC | 00000E0C | THAI CHARACTER CHO CHOE
+ AD | 00000E0D | THAI CHARACTER YO YING
+ AE | 00000E0E | THAI CHARACTER DO CHADA
+ AF | 00000E0F | THAI CHARACTER TO PATAK
+ B0 | 00000E10 | THAI CHARACTER THO THAN
+ B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO
+ B2 | 00000E12 | THAI CHARACTER THO PHUTHAO
+ B3 | 00000E13 | THAI CHARACTER NO NEN
+ B4 | 00000E14 | THAI CHARACTER DO DEK
+ B5 | 00000E15 | THAI CHARACTER TO TAO
+ B6 | 00000E16 | THAI CHARACTER THO THUNG
+ B7 | 00000E17 | THAI CHARACTER THO THAHAN
+ B8 | 00000E18 | THAI CHARACTER THO THONG
+ B9 | 00000E19 | THAI CHARACTER NO NU
+ BA | 00000E1A | THAI CHARACTER BO BAIMAI
+ BB | 00000E1B | THAI CHARACTER PO PLA
+ BC | 00000E1C | THAI CHARACTER PHO PHUNG
+ BD | 00000E1D | THAI CHARACTER FO FA
+ BE | 00000E1E | THAI CHARACTER PHO PHAN
+ BF | 00000E1F | THAI CHARACTER FO FAN
+ C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO
+ C1 | 00000E21 | THAI CHARACTER MO MA
+ C2 | 00000E22 | THAI CHARACTER YO YAK
+ C3 | 00000E23 | THAI CHARACTER RO RUA
+ C4 | 00000E24 | THAI CHARACTER RU
+ C5 | 00000E25 | THAI CHARACTER LO LING
+ C6 | 00000E26 | THAI CHARACTER LU
+ C7 | 00000E27 | THAI CHARACTER WO WAEN
+ C8 | 00000E28 | THAI CHARACTER SO SALA
+ C9 | 00000E29 | THAI CHARACTER SO RUSI
+ CA | 00000E2A | THAI CHARACTER SO SUA
+ CB | 00000E2B | THAI CHARACTER HO HIP
+ CC | 00000E2C | THAI CHARACTER LO CHULA
+ CD | 00000E2D | THAI CHARACTER O ANG
+ CE | 00000E2E | THAI CHARACTER HO NOKHUK
+ CF | 00000E2F | THAI CHARACTER PAIYANNOI
+ D0 | 00000E30 | THAI CHARACTER SARA A
+ D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT
+ D2 | 00000E32 | THAI CHARACTER SARA AA
+ D3 | 00000E33 | THAI CHARACTER SARA AM
+ D4 | 00000E34 | THAI CHARACTER SARA I
+ D5 | 00000E35 | THAI CHARACTER SARA II
+ D6 | 00000E36 | THAI CHARACTER SARA UE
+ D7 | 00000E37 | THAI CHARACTER SARA UEE
+ D8 | 00000E38 | THAI CHARACTER SARA U
+ D9 | 00000E39 | THAI CHARACTER SARA UU
+ DA | 00000E3A | THAI CHARACTER PHINTHU
+ DF | 00000E3F | THAI CURRENCY SYMBOL BAHT
+ E0 | 00000E40 | THAI CHARACTER SARA E
+ E1 | 00000E41 | THAI CHARACTER SARA AE
+ E2 | 00000E42 | THAI CHARACTER SARA O
+ E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN
+ E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI
+ E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO
+ E6 | 00000E46 | THAI CHARACTER MAIYAMOK
+ E7 | 00000E47 | THAI CHARACTER MAITAIKHU
+ E8 | 00000E48 | THAI CHARACTER MAI EK
+ E9 | 00000E49 | THAI CHARACTER MAI THO
+ EA | 00000E4A | THAI CHARACTER MAI TRI
+ EB | 00000E4B | THAI CHARACTER MAI CHATTAWA
+ EC | 00000E4C | THAI CHARACTER THANTHAKHAT
+ ED | 00000E4D | THAI CHARACTER NIKHAHIT
+ EE | 00000E4E | THAI CHARACTER YAMAKKAN
+ EF | 00000E4F | THAI CHARACTER FONGMAN
+ F0 | 00000E50 | THAI DIGIT ZERO
+ F1 | 00000E51 | THAI DIGIT ONE
+ F2 | 00000E52 | THAI DIGIT TWO
+ F3 | 00000E53 | THAI DIGIT THREE
+ F4 | 00000E54 | THAI DIGIT FOUR
+ F5 | 00000E55 | THAI DIGIT FIVE
+ F6 | 00000E56 | THAI DIGIT SIX
+ F7 | 00000E57 | THAI DIGIT SEVEN
+ F8 | 00000E58 | THAI DIGIT EIGHT
+ F9 | 00000E59 | THAI DIGIT NINE
+ FA | 00000E5A | THAI CHARACTER ANGKHANKHU
+ FB | 00000E5B | THAI CHARACTER KHOMUT
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM875.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM875.pm
new file mode 100644
index 0000000..94ca90e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM875.pm
@@ -0,0 +1,1133 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM875.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM875.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM875;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0x03a3,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03aa,
+ 0x03ab,
+ 0xfffd,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x00a8,
+ 0x0386,
+ 0x0388,
+ 0x0389,
+ 0x2207,
+ 0x038a,
+ 0x038c,
+ 0x038e,
+ 0x038f,
+ 0x0060,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x0385,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x00b4,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c3,
+ 0x00a3,
+ 0x03ac,
+ 0x03ad,
+ 0x03ae,
+ 0x0390,
+ 0x03af,
+ 0x03cc,
+ 0x03cd,
+ 0x03b0,
+ 0x03ce,
+ 0x03c2,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x03c9,
+ 0x03ca,
+ 0x03cb,
+ 0x2018,
+ 0x2015,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x00b1,
+ 0x00bd,
+ 0xfffd,
+ 0x00b7,
+ 0x2019,
+ 0x00a6,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00a7,
+ 0xfffd,
+ 0xfffd,
+ 0x00ab,
+ 0x00ac,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00a9,
+ 0xfffd,
+ 0xfffd,
+ 0x00bb,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xaa",
+ "\xce\xab",
+ "\xef\xbf\xbd",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xc2\xa8",
+ "\xce\x86",
+ "\xce\x88",
+ "\xce\x89",
+ "\xe2\x88\x87",
+ "\xce\x8a",
+ "\xce\x8c",
+ "\xce\x8e",
+ "\xce\x8f",
+ "\x60",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xce\x85",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xc2\xb4",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xc2\xa3",
+ "\xce\xac",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\x90",
+ "\xce\xaf",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xce\xb0",
+ "\xcf\x8e",
+ "\xcf\x82",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xcf\x89",
+ "\xcf\x8a",
+ "\xcf\x8b",
+ "\xe2\x80\x98",
+ "\xe2\x80\x95",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xc2\xb1",
+ "\xc2\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb7",
+ "\xe2\x80\x99",
+ "\xc2\xa6",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc2\xa7",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc2\xa9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xbb",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x79",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\xb0",
+ 0x000000a6 => "\xdf",
+ 0x000000a7 => "\xeb",
+ 0x000000a8 => "\x70",
+ 0x000000a9 => "\xfb",
+ 0x000000ab => "\xee",
+ 0x000000ac => "\xef",
+ 0x000000ad => "\xca",
+ 0x000000b0 => "\x90",
+ 0x000000b1 => "\xda",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xa0",
+ 0x000000b7 => "\xdd",
+ 0x000000bb => "\xfe",
+ 0x000000bd => "\xdb",
+ 0x00000385 => "\x80",
+ 0x00000386 => "\x71",
+ 0x00000388 => "\x72",
+ 0x00000389 => "\x73",
+ 0x0000038a => "\x75",
+ 0x0000038c => "\x76",
+ 0x0000038e => "\x77",
+ 0x0000038f => "\x78",
+ 0x00000390 => "\xb4",
+ 0x00000391 => "\x41",
+ 0x00000392 => "\x42",
+ 0x00000393 => "\x43",
+ 0x00000394 => "\x44",
+ 0x00000395 => "\x45",
+ 0x00000396 => "\x46",
+ 0x00000397 => "\x47",
+ 0x00000398 => "\x48",
+ 0x00000399 => "\x49",
+ 0x0000039a => "\x51",
+ 0x0000039b => "\x52",
+ 0x0000039c => "\x53",
+ 0x0000039d => "\x54",
+ 0x0000039e => "\x55",
+ 0x0000039f => "\x56",
+ 0x000003a0 => "\x57",
+ 0x000003a1 => "\x58",
+ 0x000003a3 => "\x59",
+ 0x000003a4 => "\x62",
+ 0x000003a5 => "\x63",
+ 0x000003a6 => "\x64",
+ 0x000003a7 => "\x65",
+ 0x000003a8 => "\x66",
+ 0x000003a9 => "\x67",
+ 0x000003aa => "\x68",
+ 0x000003ab => "\x69",
+ 0x000003ac => "\xb1",
+ 0x000003ad => "\xb2",
+ 0x000003ae => "\xb3",
+ 0x000003af => "\xb5",
+ 0x000003b0 => "\xb8",
+ 0x000003b1 => "\x8a",
+ 0x000003b2 => "\x8b",
+ 0x000003b3 => "\x8c",
+ 0x000003b4 => "\x8d",
+ 0x000003b5 => "\x8e",
+ 0x000003b6 => "\x8f",
+ 0x000003b7 => "\x9a",
+ 0x000003b8 => "\x9b",
+ 0x000003b9 => "\x9c",
+ 0x000003ba => "\x9d",
+ 0x000003bb => "\x9e",
+ 0x000003bc => "\x9f",
+ 0x000003bd => "\xaa",
+ 0x000003be => "\xab",
+ 0x000003bf => "\xac",
+ 0x000003c0 => "\xad",
+ 0x000003c1 => "\xae",
+ 0x000003c2 => "\xba",
+ 0x000003c3 => "\xaf",
+ 0x000003c4 => "\xbb",
+ 0x000003c5 => "\xbc",
+ 0x000003c6 => "\xbd",
+ 0x000003c7 => "\xbe",
+ 0x000003c8 => "\xbf",
+ 0x000003c9 => "\xcb",
+ 0x000003ca => "\xcc",
+ 0x000003cb => "\xcd",
+ 0x000003cc => "\xb6",
+ 0x000003cd => "\xb7",
+ 0x000003ce => "\xb9",
+ 0x00002015 => "\xcf",
+ 0x00002018 => "\xce",
+ 0x00002019 => "\xde",
+ 0x00002207 => "\x74",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM875 - Conversion routines for IBM875
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM875.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: UNICODE 1.0
+ alias CP875
+ alias EBCDIC-GREEK
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 42 | 00000392 | GREEK CAPITAL LETTER BETA
+ 43 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 44 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 45 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 46 | 00000396 | GREEK CAPITAL LETTER ZETA
+ 47 | 00000397 | GREEK CAPITAL LETTER ETA
+ 48 | 00000398 | GREEK CAPITAL LETTER THETA
+ 49 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 52 | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 53 | 0000039C | GREEK CAPITAL LETTER MU
+ 54 | 0000039D | GREEK CAPITAL LETTER NU
+ 55 | 0000039E | GREEK CAPITAL LETTER XI
+ 56 | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 57 | 000003A0 | GREEK CAPITAL LETTER PI
+ 58 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 59 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 63 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 64 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 65 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 66 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 67 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 68 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ 69 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 000000A8 | DIAERESIS
+ 71 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ 72 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ 73 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ 74 | 00002207 | NABLA
+ 75 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ 76 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ 77 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ 78 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ 79 | 00000060 | GRAVE ACCENT
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 00000385 | GREEK DIALYTIKA TONOS
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 000003B1 | GREEK SMALL LETTER ALPHA
+ 8B | 000003B2 | GREEK SMALL LETTER BETA
+ 8C | 000003B3 | GREEK SMALL LETTER GAMMA
+ 8D | 000003B4 | GREEK SMALL LETTER DELTA
+ 8E | 000003B5 | GREEK SMALL LETTER EPSILON
+ 8F | 000003B6 | GREEK SMALL LETTER ZETA
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 000003B7 | GREEK SMALL LETTER ETA
+ 9B | 000003B8 | GREEK SMALL LETTER THETA
+ 9C | 000003B9 | GREEK SMALL LETTER IOTA
+ 9D | 000003BA | GREEK SMALL LETTER KAPPA
+ 9E | 000003BB | GREEK SMALL LETTER LAMDA
+ 9F | 000003BC | GREEK SMALL LETTER MU
+ A0 | 000000B4 | ACUTE ACCENT
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 000003BD | GREEK SMALL LETTER NU
+ AB | 000003BE | GREEK SMALL LETTER XI
+ AC | 000003BF | GREEK SMALL LETTER OMICRON
+ AD | 000003C0 | GREEK SMALL LETTER PI
+ AE | 000003C1 | GREEK SMALL LETTER RHO
+ AF | 000003C3 | GREEK SMALL LETTER SIGMA
+ B0 | 000000A3 | POUND SIGN
+ B1 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ B2 | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ B3 | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ B4 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ B5 | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ B6 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ B7 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ B8 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ B9 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+ BA | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ BB | 000003C4 | GREEK SMALL LETTER TAU
+ BC | 000003C5 | GREEK SMALL LETTER UPSILON
+ BD | 000003C6 | GREEK SMALL LETTER PHI
+ BE | 000003C7 | GREEK SMALL LETTER CHI
+ BF | 000003C8 | GREEK SMALL LETTER PSI
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000003C9 | GREEK SMALL LETTER OMEGA
+ CC | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ CD | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ CE | 00002018 | LEFT SINGLE QUOTATION MARK
+ CF | 00002015 | HORIZONTAL BAR
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 000000B1 | PLUS-MINUS SIGN
+ DB | 000000BD | VULGAR FRACTION ONE HALF
+ DD | 000000B7 | MIDDLE DOT
+ DE | 00002019 | RIGHT SINGLE QUOTATION MARK
+ DF | 000000A6 | BROKEN BAR
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000A7 | SECTION SIGN
+ EE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ EF | 000000AC | NOT SIGN
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000A9 | COPYRIGHT SIGN
+ FE | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM880.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM880.pm
new file mode 100644
index 0000000..a5b024e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM880.pm
@@ -0,0 +1,1127 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM880.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM880.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM880;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0x0452,
+ 0x0453,
+ 0x0451,
+ 0xfffd,
+ 0x0455,
+ 0x0456,
+ 0x0457,
+ 0x0458,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x0459,
+ 0x045a,
+ 0x045b,
+ 0x045c,
+ 0xfffd,
+ 0x045f,
+ 0x042a,
+ 0x2116,
+ 0x0402,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x0403,
+ 0x0401,
+ 0xfffd,
+ 0x0405,
+ 0x0406,
+ 0x0407,
+ 0x0408,
+ 0x0409,
+ 0x00a6,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x040a,
+ 0x040b,
+ 0x040c,
+ 0xfffd,
+ 0xfffd,
+ 0x040f,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0xfffd,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0x0446,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0xfffd,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0xfffd,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x005c,
+ 0x00a4,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xd1\x92",
+ "\xd1\x93",
+ "\xd1\x91",
+ "\xef\xbf\xbd",
+ "\xd1\x95",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xd1\x98",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xd1\x99",
+ "\xd1\x9a",
+ "\xd1\x9b",
+ "\xd1\x9c",
+ "\xef\xbf\xbd",
+ "\xd1\x9f",
+ "\xd0\xaa",
+ "\xe2\x84\x96",
+ "\xd0\x82",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xd0\x83",
+ "\xd0\x81",
+ "\xef\xbf\xbd",
+ "\xd0\x85",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xd0\x88",
+ "\xd0\x89",
+ "\xc2\xa6",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xd0\x8a",
+ "\xd0\x8b",
+ "\xd0\x8c",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd0\x8f",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xef\xbf\xbd",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xd1\x86",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xef\xbf\xbd",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xef\xbf\xbd",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\x5c",
+ "\xc2\xa4",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a4 => "\xe1",
+ 0x000000a6 => "\x6a",
+ 0x00000401 => "\x63",
+ 0x00000402 => "\x59",
+ 0x00000403 => "\x62",
+ 0x00000405 => "\x65",
+ 0x00000406 => "\x66",
+ 0x00000407 => "\x67",
+ 0x00000408 => "\x68",
+ 0x00000409 => "\x69",
+ 0x0000040a => "\x70",
+ 0x0000040b => "\x71",
+ 0x0000040c => "\x72",
+ 0x0000040f => "\x75",
+ 0x00000410 => "\xb9",
+ 0x00000411 => "\xba",
+ 0x00000412 => "\xed",
+ 0x00000413 => "\xbf",
+ 0x00000414 => "\xbc",
+ 0x00000415 => "\xbd",
+ 0x00000416 => "\xec",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xcb",
+ 0x00000419 => "\xcc",
+ 0x0000041a => "\xcd",
+ 0x0000041b => "\xce",
+ 0x0000041c => "\xcf",
+ 0x0000041d => "\xda",
+ 0x0000041e => "\xdb",
+ 0x0000041f => "\xdc",
+ 0x00000420 => "\xde",
+ 0x00000421 => "\xdf",
+ 0x00000422 => "\xea",
+ 0x00000423 => "\xeb",
+ 0x00000424 => "\xbe",
+ 0x00000425 => "\xca",
+ 0x00000426 => "\xbb",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\x57",
+ 0x0000042b => "\xef",
+ 0x0000042c => "\xee",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xb8",
+ 0x0000042f => "\xdd",
+ 0x00000430 => "\x77",
+ 0x00000431 => "\x78",
+ 0x00000432 => "\xaf",
+ 0x00000433 => "\x8d",
+ 0x00000434 => "\x8a",
+ 0x00000435 => "\x8b",
+ 0x00000436 => "\xae",
+ 0x00000437 => "\xb2",
+ 0x00000438 => "\x8f",
+ 0x00000439 => "\x90",
+ 0x0000043a => "\x9a",
+ 0x0000043b => "\x9b",
+ 0x0000043c => "\x9c",
+ 0x0000043d => "\x9d",
+ 0x0000043e => "\x9e",
+ 0x0000043f => "\x9f",
+ 0x00000440 => "\xaa",
+ 0x00000441 => "\xab",
+ 0x00000442 => "\xac",
+ 0x00000443 => "\xad",
+ 0x00000444 => "\x8c",
+ 0x00000445 => "\x8e",
+ 0x00000446 => "\x80",
+ 0x00000447 => "\xb6",
+ 0x00000448 => "\xb3",
+ 0x00000449 => "\xb5",
+ 0x0000044a => "\xb7",
+ 0x0000044b => "\xb1",
+ 0x0000044c => "\xb0",
+ 0x0000044d => "\xb4",
+ 0x0000044e => "\x76",
+ 0x0000044f => "\xa0",
+ 0x00000451 => "\x44",
+ 0x00000452 => "\x42",
+ 0x00000453 => "\x43",
+ 0x00000455 => "\x46",
+ 0x00000456 => "\x47",
+ 0x00000457 => "\x48",
+ 0x00000458 => "\x49",
+ 0x00000459 => "\x51",
+ 0x0000045a => "\x52",
+ 0x0000045b => "\x53",
+ 0x0000045c => "\x54",
+ 0x0000045f => "\x56",
+ 0x00002116 => "\x58",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM880 - Conversion routines for IBM880
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM880.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP880
+ alias EBCDIC-CYRILLIC
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 42 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian)
+ 43 | 00000453 | CYRILLIC SMALL LETTER GJE
+ 44 | 00000451 | CYRILLIC SMALL LETTER IO
+ 46 | 00000455 | CYRILLIC SMALL LETTER DZE
+ 47 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 48 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ 49 | 00000458 | CYRILLIC SMALL LETTER JE
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 00000459 | CYRILLIC SMALL LETTER LJE
+ 52 | 0000045A | CYRILLIC SMALL LETTER NJE
+ 53 | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+ 54 | 0000045C | CYRILLIC SMALL LETTER KJE
+ 56 | 0000045F | CYRILLIC SMALL LETTER DZHE
+ 57 | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 58 | 00002116 | NUMERO SIGN
+ 59 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ 63 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ 65 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ 66 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ 67 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ 68 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ 69 | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ 6A | 000000A6 | BROKEN BAR
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ 71 | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+ 72 | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ 75 | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ 76 | 0000044E | CYRILLIC SMALL LETTER YU
+ 77 | 00000430 | CYRILLIC SMALL LETTER A
+ 78 | 00000431 | CYRILLIC SMALL LETTER BE
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 00000446 | CYRILLIC SMALL LETTER TSE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 00000434 | CYRILLIC SMALL LETTER DE
+ 8B | 00000435 | CYRILLIC SMALL LETTER IE
+ 8C | 00000444 | CYRILLIC SMALL LETTER EF
+ 8D | 00000433 | CYRILLIC SMALL LETTER GHE
+ 8E | 00000445 | CYRILLIC SMALL LETTER HA
+ 8F | 00000438 | CYRILLIC SMALL LETTER I
+ 90 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 0000043A | CYRILLIC SMALL LETTER KA
+ 9B | 0000043B | CYRILLIC SMALL LETTER EL
+ 9C | 0000043C | CYRILLIC SMALL LETTER EM
+ 9D | 0000043D | CYRILLIC SMALL LETTER EN
+ 9E | 0000043E | CYRILLIC SMALL LETTER O
+ 9F | 0000043F | CYRILLIC SMALL LETTER PE
+ A0 | 0000044F | CYRILLIC SMALL LETTER YA
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 00000440 | CYRILLIC SMALL LETTER ER
+ AB | 00000441 | CYRILLIC SMALL LETTER ES
+ AC | 00000442 | CYRILLIC SMALL LETTER TE
+ AD | 00000443 | CYRILLIC SMALL LETTER U
+ AE | 00000436 | CYRILLIC SMALL LETTER ZHE
+ AF | 00000432 | CYRILLIC SMALL LETTER VE
+ B0 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ B1 | 0000044B | CYRILLIC SMALL LETTER YERU
+ B2 | 00000437 | CYRILLIC SMALL LETTER ZE
+ B3 | 00000448 | CYRILLIC SMALL LETTER SHA
+ B4 | 0000044D | CYRILLIC SMALL LETTER E
+ B5 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ B6 | 00000447 | CYRILLIC SMALL LETTER CHE
+ B7 | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ B8 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ B9 | 00000410 | CYRILLIC CAPITAL LETTER A
+ BA | 00000411 | CYRILLIC CAPITAL LETTER BE
+ BB | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ BC | 00000414 | CYRILLIC CAPITAL LETTER DE
+ BD | 00000415 | CYRILLIC CAPITAL LETTER IE
+ BE | 00000424 | CYRILLIC CAPITAL LETTER EF
+ BF | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 00000425 | CYRILLIC CAPITAL LETTER HA
+ CB | 00000418 | CYRILLIC CAPITAL LETTER I
+ CC | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ CD | 0000041A | CYRILLIC CAPITAL LETTER KA
+ CE | 0000041B | CYRILLIC CAPITAL LETTER EL
+ CF | 0000041C | CYRILLIC CAPITAL LETTER EM
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 0000041D | CYRILLIC CAPITAL LETTER EN
+ DB | 0000041E | CYRILLIC CAPITAL LETTER O
+ DC | 0000041F | CYRILLIC CAPITAL LETTER PE
+ DD | 0000042F | CYRILLIC CAPITAL LETTER YA
+ DE | 00000420 | CYRILLIC CAPITAL LETTER ER
+ DF | 00000421 | CYRILLIC CAPITAL LETTER ES
+ E0 | 0000005C | REVERSE SOLIDUS
+ E1 | 000000A4 | CURRENCY SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 00000422 | CYRILLIC CAPITAL LETTER TE
+ EB | 00000423 | CYRILLIC CAPITAL LETTER U
+ EC | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ ED | 00000412 | CYRILLIC CAPITAL LETTER VE
+ EE | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ EF | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM891.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM891.pm
new file mode 100644
index 0000000..b93d443
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM891.pm
@@ -0,0 +1,890 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM891.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM891.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM891;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM891 - Conversion routines for IBM891
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM891.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP891
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM903.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM903.pm
new file mode 100644
index 0000000..a5126f6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM903.pm
@@ -0,0 +1,890 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM903.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM903.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM903;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM903 - Conversion routines for IBM903
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM903.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP903
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM904.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM904.pm
new file mode 100644
index 0000000..c7dd51e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM904.pm
@@ -0,0 +1,897 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM904.pm,v 1.1 2011-10-12 23:51:40 pertusus Exp $
+
+# Conversion routines for IBM904.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM904;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00a2,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ac,
+ 0x00a6,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\xa2",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xac",
+ "\xc2\xa6",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a2 => "\x80",
+ 0x000000a6 => "\xfe",
+ 0x000000ac => "\xfd",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM904 - Conversion routines for IBM904
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM904.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP904
+ alias 904
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000A2 | CENT SIGN
+ FD | 000000AC | NOT SIGN
+ FE | 000000A6 | BROKEN BAR
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM905.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM905.pm
new file mode 100644
index 0000000..f254dad
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM905.pm
@@ -0,0 +1,1129 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM905.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for IBM905.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM905;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0xfffd,
+ 0x00e2,
+ 0x00e4,
+ 0x00e0,
+ 0x00e1,
+ 0xfffd,
+ 0x010b,
+ 0x007b,
+ 0x00f1,
+ 0x00c7,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00e8,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00ec,
+ 0x00df,
+ 0x011e,
+ 0x0130,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0x00c2,
+ 0x00c4,
+ 0x00c0,
+ 0x00c1,
+ 0xfffd,
+ 0x010a,
+ 0x005b,
+ 0x00d1,
+ 0x015f,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0xfffd,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x0131,
+ 0x003a,
+ 0x00d6,
+ 0x015e,
+ 0x0027,
+ 0x003d,
+ 0x00dc,
+ 0x02d8,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x0127,
+ 0x0109,
+ 0x015d,
+ 0x016d,
+ 0xfffd,
+ 0x007c,
+ 0x00b0,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0125,
+ 0x011d,
+ 0x0135,
+ 0x02db,
+ 0xfffd,
+ 0x00a4,
+ 0x00b5,
+ 0x00f6,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x0126,
+ 0x0108,
+ 0x015c,
+ 0x016c,
+ 0xfffd,
+ 0x0040,
+ 0x00b7,
+ 0x00a3,
+ 0x017c,
+ 0x007d,
+ 0x017b,
+ 0x00a7,
+ 0x005d,
+ 0xfffd,
+ 0x00bd,
+ 0x0024,
+ 0x0124,
+ 0x011c,
+ 0x0134,
+ 0x00a8,
+ 0x00b4,
+ 0x00d7,
+ 0x00e7,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0x00f4,
+ 0x007e,
+ 0x00f2,
+ 0x00f3,
+ 0x0121,
+ 0x011f,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0060,
+ 0x00fb,
+ 0x005c,
+ 0x00f9,
+ 0x00fa,
+ 0xfffd,
+ 0x00fc,
+ 0x00f7,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00b2,
+ 0x00d4,
+ 0x0023,
+ 0x00d2,
+ 0x00d3,
+ 0x0120,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x00b3,
+ 0x00db,
+ 0x0022,
+ 0x00d9,
+ 0x00da,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xef\xbf\xbd",
+ "\xc4\x8b",
+ "\x7b",
+ "\xc3\xb1",
+ "\xc3\x87",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xa8",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xac",
+ "\xc3\x9f",
+ "\xc4\x9e",
+ "\xc4\xb0",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xc3\x82",
+ "\xc3\x84",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xef\xbf\xbd",
+ "\xc4\x8a",
+ "\x5b",
+ "\xc3\x91",
+ "\xc5\x9f",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xef\xbf\xbd",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc4\xb1",
+ "\x3a",
+ "\xc3\x96",
+ "\xc5\x9e",
+ "\x27",
+ "\x3d",
+ "\xc3\x9c",
+ "\xcb\x98",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xc4\xa7",
+ "\xc4\x89",
+ "\xc5\x9d",
+ "\xc5\xad",
+ "\xef\xbf\xbd",
+ "\x7c",
+ "\xc2\xb0",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xc4\xa5",
+ "\xc4\x9d",
+ "\xc4\xb5",
+ "\xcb\x9b",
+ "\xef\xbf\xbd",
+ "\xc2\xa4",
+ "\xc2\xb5",
+ "\xc3\xb6",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc4\xa6",
+ "\xc4\x88",
+ "\xc5\x9c",
+ "\xc5\xac",
+ "\xef\xbf\xbd",
+ "\x40",
+ "\xc2\xb7",
+ "\xc2\xa3",
+ "\xc5\xbc",
+ "\x7d",
+ "\xc5\xbb",
+ "\xc2\xa7",
+ "\x5d",
+ "\xef\xbf\xbd",
+ "\xc2\xbd",
+ "\x24",
+ "\xc4\xa4",
+ "\xc4\x9c",
+ "\xc4\xb4",
+ "\xc2\xa8",
+ "\xc2\xb4",
+ "\xc3\x97",
+ "\xc3\xa7",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xc3\xb4",
+ "\x7e",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc4\xa1",
+ "\xc4\x9f",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x60",
+ "\xc3\xbb",
+ "\x5c",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xef\xbf\xbd",
+ "\xc3\xbc",
+ "\xc3\xb7",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc2\xb2",
+ "\xc3\x94",
+ "\x23",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc4\xa0",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xc2\xb3",
+ "\xc3\x9b",
+ "\x22",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\xfc",
+ 0x00000023 => "\xec",
+ 0x00000024 => "\xb9",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\xaf",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x68",
+ 0x0000005c => "\xdc",
+ 0x0000005d => "\xb6",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\xda",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\x48",
+ 0x0000007c => "\x8f",
+ 0x0000007d => "\xb3",
+ 0x0000007e => "\xcc",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a3 => "\xb1",
+ 0x000000a4 => "\x9f",
+ 0x000000a7 => "\xb5",
+ 0x000000a8 => "\xbd",
+ 0x000000ad => "\xca",
+ 0x000000b0 => "\x90",
+ 0x000000b2 => "\xea",
+ 0x000000b3 => "\xfa",
+ 0x000000b4 => "\xbe",
+ 0x000000b5 => "\xa0",
+ 0x000000b7 => "\xb0",
+ 0x000000bd => "\xb8",
+ 0x000000c0 => "\x64",
+ 0x000000c1 => "\x65",
+ 0x000000c2 => "\x62",
+ 0x000000c4 => "\x63",
+ 0x000000c7 => "\x4a",
+ 0x000000c8 => "\x74",
+ 0x000000c9 => "\x71",
+ 0x000000ca => "\x72",
+ 0x000000cb => "\x73",
+ 0x000000cc => "\x78",
+ 0x000000cd => "\x75",
+ 0x000000ce => "\x76",
+ 0x000000cf => "\x77",
+ 0x000000d1 => "\x69",
+ 0x000000d2 => "\xed",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xeb",
+ 0x000000d6 => "\x7b",
+ 0x000000d7 => "\xbf",
+ 0x000000d9 => "\xfd",
+ 0x000000da => "\xfe",
+ 0x000000db => "\xfb",
+ 0x000000dc => "\x7f",
+ 0x000000df => "\x59",
+ 0x000000e0 => "\x44",
+ 0x000000e1 => "\x45",
+ 0x000000e2 => "\x42",
+ 0x000000e4 => "\x43",
+ 0x000000e7 => "\xc0",
+ 0x000000e8 => "\x54",
+ 0x000000e9 => "\x51",
+ 0x000000ea => "\x52",
+ 0x000000eb => "\x53",
+ 0x000000ec => "\x58",
+ 0x000000ed => "\x55",
+ 0x000000ee => "\x56",
+ 0x000000ef => "\x57",
+ 0x000000f1 => "\x49",
+ 0x000000f2 => "\xcd",
+ 0x000000f3 => "\xce",
+ 0x000000f4 => "\xcb",
+ 0x000000f6 => "\xa1",
+ 0x000000f7 => "\xe1",
+ 0x000000f9 => "\xdd",
+ 0x000000fa => "\xde",
+ 0x000000fb => "\xdb",
+ 0x000000fc => "\xe0",
+ 0x00000108 => "\xab",
+ 0x00000109 => "\x8b",
+ 0x0000010a => "\x67",
+ 0x0000010b => "\x47",
+ 0x0000011c => "\xbb",
+ 0x0000011d => "\x9b",
+ 0x0000011e => "\x5a",
+ 0x0000011f => "\xd0",
+ 0x00000120 => "\xef",
+ 0x00000121 => "\xcf",
+ 0x00000124 => "\xba",
+ 0x00000125 => "\x9a",
+ 0x00000126 => "\xaa",
+ 0x00000127 => "\x8a",
+ 0x00000130 => "\x5b",
+ 0x00000131 => "\x79",
+ 0x00000134 => "\xbc",
+ 0x00000135 => "\x9c",
+ 0x0000015c => "\xac",
+ 0x0000015d => "\x8c",
+ 0x0000015e => "\x7c",
+ 0x0000015f => "\x6a",
+ 0x0000016c => "\xad",
+ 0x0000016d => "\x8d",
+ 0x0000017b => "\xb4",
+ 0x0000017c => "\xb2",
+ 0x000002d8 => "\x80",
+ 0x000002db => "\x9d",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM905 - Conversion routines for IBM905
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM905.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ alias CP905
+ alias EBCDIC-CP-TR
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 47 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE
+ 48 | 0000007B | LEFT CURLY BRACKET
+ 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 4A | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ 5A | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ 5B | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 67 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE
+ 68 | 0000005B | LEFT SQUARE BRACKET
+ 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 6A | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 79 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ 7A | 0000003A | COLON
+ 7B | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 7C | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 80 | 000002D8 | BREVE
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 00000127 | LATIN SMALL LETTER H WITH STROKE
+ 8B | 00000109 | LATIN SMALL LETTER C WITH CIRCUMFLEX
+ 8C | 0000015D | LATIN SMALL LETTER S WITH CIRCUMFLEX
+ 8D | 0000016D | LATIN SMALL LETTER U WITH BREVE
+ 8F | 0000007C | VERTICAL LINE
+ 90 | 000000B0 | DEGREE SIGN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 00000125 | LATIN SMALL LETTER H WITH CIRCUMFLEX
+ 9B | 0000011D | LATIN SMALL LETTER G WITH CIRCUMFLEX
+ 9C | 00000135 | LATIN SMALL LETTER J WITH CIRCUMFLEX
+ 9D | 000002DB | OGONEK
+ 9F | 000000A4 | CURRENCY SIGN
+ A0 | 000000B5 | MICRO SIGN
+ A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 00000126 | LATIN CAPITAL LETTER H WITH STROKE
+ AB | 00000108 | LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+ AC | 0000015C | LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+ AD | 0000016C | LATIN CAPITAL LETTER U WITH BREVE
+ AF | 00000040 | COMMERCIAL AT
+ B0 | 000000B7 | MIDDLE DOT
+ B1 | 000000A3 | POUND SIGN
+ B2 | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ B3 | 0000007D | RIGHT CURLY BRACKET
+ B4 | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B5 | 000000A7 | SECTION SIGN
+ B6 | 0000005D | RIGHT SQUARE BRACKET
+ B8 | 000000BD | VULGAR FRACTION ONE HALF
+ B9 | 00000024 | DOLLAR SIGN
+ BA | 00000124 | LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+ BB | 0000011C | LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+ BC | 00000134 | LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+ BD | 000000A8 | DIAERESIS
+ BE | 000000B4 | ACUTE ACCENT
+ BF | 000000D7 | MULTIPLICATION SIGN
+ C0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ CC | 0000007E | TILDE
+ CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ CF | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE
+ D0 | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 00000060 | GRAVE ACCENT
+ DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ DC | 0000005C | REVERSE SOLIDUS
+ DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ E0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ E1 | 000000F7 | DIVISION SIGN
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 000000B2 | SUPERSCRIPT TWO
+ EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ EC | 00000023 | NUMBER SIGN
+ ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FA | 000000B3 | SUPERSCRIPT THREE
+ FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ FC | 00000022 | QUOTATION MARK
+ FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM918.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM918.pm
new file mode 100644
index 0000000..ef82ad9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IBM918.pm
@@ -0,0 +1,1095 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IBM918.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for IBM918.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IBM918;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x009c,
+ 0x0009,
+ 0x0086,
+ 0x007f,
+ 0x0097,
+ 0x008d,
+ 0x008e,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x009d,
+ 0x0085,
+ 0x0008,
+ 0x0087,
+ 0x0018,
+ 0x0019,
+ 0x0092,
+ 0x008f,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x000a,
+ 0x0017,
+ 0x001b,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0090,
+ 0x0091,
+ 0x0016,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0004,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x0014,
+ 0x0015,
+ 0x009e,
+ 0x001a,
+ 0x0020,
+ 0x00a0,
+ 0x060c,
+ 0x061b,
+ 0x061f,
+ 0x0623,
+ 0x0627,
+ 0xfe8e,
+ 0xfffd,
+ 0x0628,
+ 0x005b,
+ 0x002e,
+ 0x003c,
+ 0x0028,
+ 0x002b,
+ 0x0021,
+ 0x0026,
+ 0xfe91,
+ 0x067e,
+ 0xfffd,
+ 0x0629,
+ 0x062a,
+ 0xfe97,
+ 0xfffd,
+ 0xfffd,
+ 0x062b,
+ 0x005d,
+ 0x0024,
+ 0x002a,
+ 0x0029,
+ 0x003b,
+ 0x005e,
+ 0x002d,
+ 0x002f,
+ 0xfe9b,
+ 0x062c,
+ 0xfe9f,
+ 0xfffd,
+ 0xfffd,
+ 0x062d,
+ 0xfea3,
+ 0x062e,
+ 0x0060,
+ 0x002c,
+ 0x0025,
+ 0x005f,
+ 0x003e,
+ 0x003f,
+ 0x0660,
+ 0x0661,
+ 0x0662,
+ 0x0663,
+ 0x0664,
+ 0x0665,
+ 0x0666,
+ 0x0667,
+ 0x0668,
+ 0x0669,
+ 0x003a,
+ 0x0023,
+ 0x0040,
+ 0x0027,
+ 0x003d,
+ 0x0022,
+ 0xfea7,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x062f,
+ 0xfffd,
+ 0x0630,
+ 0x0631,
+ 0xfffd,
+ 0x0632,
+ 0xfffd,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0633,
+ 0xfeb3,
+ 0x0634,
+ 0xfeb7,
+ 0x0635,
+ 0xfebb,
+ 0x0636,
+ 0x007e,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfebf,
+ 0x0637,
+ 0x0638,
+ 0x0639,
+ 0xfeca,
+ 0xfecb,
+ 0xfecc,
+ 0x063a,
+ 0xfece,
+ 0xfecf,
+ 0xfed0,
+ 0x0641,
+ 0xfed3,
+ 0x0642,
+ 0xfed7,
+ 0x0643,
+ 0xfedb,
+ 0x007c,
+ 0xfffd,
+ 0xfffd,
+ 0x0644,
+ 0xfede,
+ 0x007b,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x00ad,
+ 0xfffd,
+ 0x0645,
+ 0xfee3,
+ 0xfffd,
+ 0x0646,
+ 0x007d,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0xfee7,
+ 0xfffd,
+ 0x0648,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005c,
+ 0xfffd,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x0621,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0651,
+ 0xfe7d,
+ 0x009f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\xc2\x9c",
+ "\x09",
+ "\xc2\x86",
+ "\x7f",
+ "\xc2\x97",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xc2\x9d",
+ "\xc2\x85",
+ "\x08",
+ "\xc2\x87",
+ "\x18",
+ "\x19",
+ "\xc2\x92",
+ "\xc2\x8f",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\x0a",
+ "\x17",
+ "\x1b",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\x16",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\x04",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\x14",
+ "\x15",
+ "\xc2\x9e",
+ "\x1a",
+ "\x20",
+ "\xc2\xa0",
+ "\xd8\x8c",
+ "\xd8\x9b",
+ "\xd8\x9f",
+ "\xd8\xa3",
+ "\xd8\xa7",
+ "\xef\xba\x8e",
+ "\xef\xbf\xbd",
+ "\xd8\xa8",
+ "\x5b",
+ "\x2e",
+ "\x3c",
+ "\x28",
+ "\x2b",
+ "\x21",
+ "\x26",
+ "\xef\xba\x91",
+ "\xd9\xbe",
+ "\xef\xbf\xbd",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xef\xba\x97",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xab",
+ "\x5d",
+ "\x24",
+ "\x2a",
+ "\x29",
+ "\x3b",
+ "\x5e",
+ "\x2d",
+ "\x2f",
+ "\xef\xba\x9b",
+ "\xd8\xac",
+ "\xef\xba\x9f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\xad",
+ "\xef\xba\xa3",
+ "\xd8\xae",
+ "\x60",
+ "\x2c",
+ "\x25",
+ "\x5f",
+ "\x3e",
+ "\x3f",
+ "\xd9\xa0",
+ "\xd9\xa1",
+ "\xd9\xa2",
+ "\xd9\xa3",
+ "\xd9\xa4",
+ "\xd9\xa5",
+ "\xd9\xa6",
+ "\xd9\xa7",
+ "\xd9\xa8",
+ "\xd9\xa9",
+ "\x3a",
+ "\x23",
+ "\x40",
+ "\x27",
+ "\x3d",
+ "\x22",
+ "\xef\xba\xa7",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\xd8\xaf",
+ "\xef\xbf\xbd",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xef\xbf\xbd",
+ "\xd8\xb2",
+ "\xef\xbf\xbd",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\xd8\xb3",
+ "\xef\xba\xb3",
+ "\xd8\xb4",
+ "\xef\xba\xb7",
+ "\xd8\xb5",
+ "\xef\xba\xbb",
+ "\xd8\xb6",
+ "\x7e",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xba\xbf",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xef\xbb\x8a",
+ "\xef\xbb\x8b",
+ "\xef\xbb\x8c",
+ "\xd8\xba",
+ "\xef\xbb\x8e",
+ "\xef\xbb\x8f",
+ "\xef\xbb\x90",
+ "\xd9\x81",
+ "\xef\xbb\x93",
+ "\xd9\x82",
+ "\xef\xbb\x97",
+ "\xd9\x83",
+ "\xef\xbb\x9b",
+ "\x7c",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\x84",
+ "\xef\xbb\x9e",
+ "\x7b",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xd9\x85",
+ "\xef\xbb\xa3",
+ "\xef\xbf\xbd",
+ "\xd9\x86",
+ "\x7d",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\xef\xbb\xa7",
+ "\xef\xbf\xbd",
+ "\xd9\x88",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5c",
+ "\xef\xbf\xbd",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xd8\xa1",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\x91",
+ "\xef\xb9\xbd",
+ "\xc2\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x37",
+ 0x00000005 => "\x2d",
+ 0x00000006 => "\x2e",
+ 0x00000007 => "\x2f",
+ 0x00000008 => "\x16",
+ 0x00000009 => "\x05",
+ 0x0000000a => "\x25",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x3c",
+ 0x00000015 => "\x3d",
+ 0x00000016 => "\x32",
+ 0x00000017 => "\x26",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x3f",
+ 0x0000001b => "\x27",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x40",
+ 0x00000021 => "\x4f",
+ 0x00000022 => "\x7f",
+ 0x00000023 => "\x7b",
+ 0x00000024 => "\x5b",
+ 0x00000025 => "\x6c",
+ 0x00000026 => "\x50",
+ 0x00000027 => "\x7d",
+ 0x00000028 => "\x4d",
+ 0x00000029 => "\x5d",
+ 0x0000002a => "\x5c",
+ 0x0000002b => "\x4e",
+ 0x0000002c => "\x6b",
+ 0x0000002d => "\x60",
+ 0x0000002e => "\x4b",
+ 0x0000002f => "\x61",
+ 0x00000030 => "\xf0",
+ 0x00000031 => "\xf1",
+ 0x00000032 => "\xf2",
+ 0x00000033 => "\xf3",
+ 0x00000034 => "\xf4",
+ 0x00000035 => "\xf5",
+ 0x00000036 => "\xf6",
+ 0x00000037 => "\xf7",
+ 0x00000038 => "\xf8",
+ 0x00000039 => "\xf9",
+ 0x0000003a => "\x7a",
+ 0x0000003b => "\x5e",
+ 0x0000003c => "\x4c",
+ 0x0000003d => "\x7e",
+ 0x0000003e => "\x6e",
+ 0x0000003f => "\x6f",
+ 0x00000040 => "\x7c",
+ 0x00000041 => "\xc1",
+ 0x00000042 => "\xc2",
+ 0x00000043 => "\xc3",
+ 0x00000044 => "\xc4",
+ 0x00000045 => "\xc5",
+ 0x00000046 => "\xc6",
+ 0x00000047 => "\xc7",
+ 0x00000048 => "\xc8",
+ 0x00000049 => "\xc9",
+ 0x0000004a => "\xd1",
+ 0x0000004b => "\xd2",
+ 0x0000004c => "\xd3",
+ 0x0000004d => "\xd4",
+ 0x0000004e => "\xd5",
+ 0x0000004f => "\xd6",
+ 0x00000050 => "\xd7",
+ 0x00000051 => "\xd8",
+ 0x00000052 => "\xd9",
+ 0x00000053 => "\xe2",
+ 0x00000054 => "\xe3",
+ 0x00000055 => "\xe4",
+ 0x00000056 => "\xe5",
+ 0x00000057 => "\xe6",
+ 0x00000058 => "\xe7",
+ 0x00000059 => "\xe8",
+ 0x0000005a => "\xe9",
+ 0x0000005b => "\x4a",
+ 0x0000005c => "\xe0",
+ 0x0000005d => "\x5a",
+ 0x0000005e => "\x5f",
+ 0x0000005f => "\x6d",
+ 0x00000060 => "\x6a",
+ 0x00000061 => "\x81",
+ 0x00000062 => "\x82",
+ 0x00000063 => "\x83",
+ 0x00000064 => "\x84",
+ 0x00000065 => "\x85",
+ 0x00000066 => "\x86",
+ 0x00000067 => "\x87",
+ 0x00000068 => "\x88",
+ 0x00000069 => "\x89",
+ 0x0000006a => "\x91",
+ 0x0000006b => "\x92",
+ 0x0000006c => "\x93",
+ 0x0000006d => "\x94",
+ 0x0000006e => "\x95",
+ 0x0000006f => "\x96",
+ 0x00000070 => "\x97",
+ 0x00000071 => "\x98",
+ 0x00000072 => "\x99",
+ 0x00000073 => "\xa2",
+ 0x00000074 => "\xa3",
+ 0x00000075 => "\xa4",
+ 0x00000076 => "\xa5",
+ 0x00000077 => "\xa6",
+ 0x00000078 => "\xa7",
+ 0x00000079 => "\xa8",
+ 0x0000007a => "\xa9",
+ 0x0000007b => "\xc0",
+ 0x0000007c => "\xbb",
+ 0x0000007d => "\xd0",
+ 0x0000007e => "\xa1",
+ 0x0000007f => "\x07",
+ 0x00000080 => "\x20",
+ 0x00000081 => "\x21",
+ 0x00000082 => "\x22",
+ 0x00000083 => "\x23",
+ 0x00000084 => "\x24",
+ 0x00000085 => "\x15",
+ 0x00000086 => "\x06",
+ 0x00000087 => "\x17",
+ 0x00000088 => "\x28",
+ 0x00000089 => "\x29",
+ 0x0000008a => "\x2a",
+ 0x0000008b => "\x2b",
+ 0x0000008c => "\x2c",
+ 0x0000008d => "\x09",
+ 0x0000008e => "\x0a",
+ 0x0000008f => "\x1b",
+ 0x00000090 => "\x30",
+ 0x00000091 => "\x31",
+ 0x00000092 => "\x1a",
+ 0x00000093 => "\x33",
+ 0x00000094 => "\x34",
+ 0x00000095 => "\x35",
+ 0x00000096 => "\x36",
+ 0x00000097 => "\x08",
+ 0x00000098 => "\x38",
+ 0x00000099 => "\x39",
+ 0x0000009a => "\x3a",
+ 0x0000009b => "\x3b",
+ 0x0000009c => "\x04",
+ 0x0000009d => "\x14",
+ 0x0000009e => "\x3e",
+ 0x0000009f => "\xff",
+ 0x000000a0 => "\x41",
+ 0x000000ad => "\xca",
+ 0x0000060c => "\x42",
+ 0x0000061b => "\x43",
+ 0x0000061f => "\x44",
+ 0x00000621 => "\xea",
+ 0x00000623 => "\x45",
+ 0x00000627 => "\x46",
+ 0x00000628 => "\x49",
+ 0x00000629 => "\x54",
+ 0x0000062a => "\x55",
+ 0x0000062b => "\x59",
+ 0x0000062c => "\x63",
+ 0x0000062d => "\x67",
+ 0x0000062e => "\x69",
+ 0x0000062f => "\x8a",
+ 0x00000630 => "\x8c",
+ 0x00000631 => "\x8d",
+ 0x00000632 => "\x8f",
+ 0x00000633 => "\x9a",
+ 0x00000634 => "\x9c",
+ 0x00000635 => "\x9e",
+ 0x00000636 => "\xa0",
+ 0x00000637 => "\xab",
+ 0x00000638 => "\xac",
+ 0x00000639 => "\xad",
+ 0x0000063a => "\xb1",
+ 0x00000641 => "\xb5",
+ 0x00000642 => "\xb7",
+ 0x00000643 => "\xb9",
+ 0x00000644 => "\xbe",
+ 0x00000645 => "\xcc",
+ 0x00000646 => "\xcf",
+ 0x00000648 => "\xdc",
+ 0x00000651 => "\xfd",
+ 0x00000660 => "\x70",
+ 0x00000661 => "\x71",
+ 0x00000662 => "\x72",
+ 0x00000663 => "\x73",
+ 0x00000664 => "\x74",
+ 0x00000665 => "\x75",
+ 0x00000666 => "\x76",
+ 0x00000667 => "\x77",
+ 0x00000668 => "\x78",
+ 0x00000669 => "\x79",
+ 0x0000067e => "\x52",
+ 0x0000fe7d => "\xfe",
+ 0x0000fe8e => "\x47",
+ 0x0000fe91 => "\x51",
+ 0x0000fe97 => "\x56",
+ 0x0000fe9b => "\x62",
+ 0x0000fe9f => "\x64",
+ 0x0000fea3 => "\x68",
+ 0x0000fea7 => "\x80",
+ 0x0000feb3 => "\x9b",
+ 0x0000feb7 => "\x9d",
+ 0x0000febb => "\x9f",
+ 0x0000febf => "\xaa",
+ 0x0000feca => "\xae",
+ 0x0000fecb => "\xaf",
+ 0x0000fecc => "\xb0",
+ 0x0000fece => "\xb2",
+ 0x0000fecf => "\xb3",
+ 0x0000fed0 => "\xb4",
+ 0x0000fed3 => "\xb6",
+ 0x0000fed7 => "\xb8",
+ 0x0000fedb => "\xba",
+ 0x0000fede => "\xbf",
+ 0x0000fee3 => "\xcd",
+ 0x0000fee7 => "\xda",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IBM918 - Conversion routines for IBM918
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IBM918.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+ alias CP918
+ alias EBCDIC-CP-AR2
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 0000009C | STRING TERMINATOR (ST)
+ 05 | 00000009 | CHARACTER TABULATION (HT)
+ 06 | 00000086 | START OF SELECTED AREA (SSA)
+ 07 | 0000007F | DELETE (DEL)
+ 08 | 00000097 | END OF GUARDED AREA (EPA)
+ 09 | 0000008D | REVERSE LINE FEED (RI)
+ 0A | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 15 | 00000085 | NEXT LINE (NEL)
+ 16 | 00000008 | BACKSPACE (BS)
+ 17 | 00000087 | END OF SELECTED AREA (ESA)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 00000092 | PRIVATE USE TWO (PU2)
+ 1B | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000080 | PADDING CHARACTER (PAD)
+ 21 | 00000081 | HIGH OCTET PRESET (HOP)
+ 22 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 23 | 00000083 | NO BREAK HERE (NBH)
+ 24 | 00000084 | INDEX (IND)
+ 25 | 0000000A | LINE FEED (LF)
+ 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 27 | 0000001B | ESCAPE (ESC)
+ 28 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 2A | 0000008A | LINE TABULATION SET (VTS)
+ 2B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 2D | 00000005 | ENQUIRY (ENQ)
+ 2E | 00000006 | ACKNOWLEDGE (ACK)
+ 2F | 00000007 | BELL (BEL)
+ 30 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 31 | 00000091 | PRIVATE USE ONE (PU1)
+ 32 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 33 | 00000093 | SET TRANSMIT STATE (STS)
+ 34 | 00000094 | CANCEL CHARACTER (CCH)
+ 35 | 00000095 | MESSAGE WAITING (MW)
+ 36 | 00000096 | START OF GUARDED AREA (SPA)
+ 37 | 00000004 | END OF TRANSMISSION (EOT)
+ 38 | 00000098 | START OF STRING (SOS)
+ 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 3C | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 3E | 0000009E | PRIVACY MESSAGE (PM)
+ 3F | 0000001A | SUBSTITUTE (SUB)
+ 40 | 00000020 | SPACE
+ 41 | 000000A0 | NO-BREAK SPACE
+ 42 | 0000060C | ARABIC COMMA
+ 43 | 0000061B | ARABIC SEMICOLON
+ 44 | 0000061F | ARABIC QUESTION MARK
+ 45 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ 46 | 00000627 | ARABIC LETTER ALEF
+ 47 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM
+ 49 | 00000628 | ARABIC LETTER BEH
+ 4A | 0000005B | LEFT SQUARE BRACKET
+ 4B | 0000002E | FULL STOP
+ 4C | 0000003C | LESS-THAN SIGN
+ 4D | 00000028 | LEFT PARENTHESIS
+ 4E | 0000002B | PLUS SIGN
+ 4F | 00000021 | EXCLAMATION MARK
+ 50 | 00000026 | AMPERSAND
+ 51 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM
+ 52 | 0000067E | ARABIC LETTER PEH
+ 54 | 00000629 | ARABIC LETTER TEH MARBUTA
+ 55 | 0000062A | ARABIC LETTER TEH
+ 56 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM
+ 59 | 0000062B | ARABIC LETTER THEH
+ 5A | 0000005D | RIGHT SQUARE BRACKET
+ 5B | 00000024 | DOLLAR SIGN
+ 5C | 0000002A | ASTERISK
+ 5D | 00000029 | RIGHT PARENTHESIS
+ 5E | 0000003B | SEMICOLON
+ 5F | 0000005E | CIRCUMFLEX ACCENT
+ 60 | 0000002D | HYPHEN-MINUS
+ 61 | 0000002F | SOLIDUS
+ 62 | 0000FE9B | ARABIC LETTER THEH INITIAL FORM
+ 63 | 0000062C | ARABIC LETTER JEEM
+ 64 | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM
+ 67 | 0000062D | ARABIC LETTER HAH
+ 68 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM
+ 69 | 0000062E | ARABIC LETTER KHAH
+ 6A | 00000060 | GRAVE ACCENT
+ 6B | 0000002C | COMMA
+ 6C | 00000025 | PERCENT SIGN
+ 6D | 0000005F | LOW LINE
+ 6E | 0000003E | GREATER-THAN SIGN
+ 6F | 0000003F | QUESTION MARK
+ 70 | 00000660 | ARABIC-INDIC DIGIT ZERO
+ 71 | 00000661 | ARABIC-INDIC DIGIT ONE
+ 72 | 00000662 | ARABIC-INDIC DIGIT TWO
+ 73 | 00000663 | ARABIC-INDIC DIGIT THREE
+ 74 | 00000664 | ARABIC-INDIC DIGIT FOUR
+ 75 | 00000665 | ARABIC-INDIC DIGIT FIVE
+ 76 | 00000666 | ARABIC-INDIC DIGIT SIX
+ 77 | 00000667 | ARABIC-INDIC DIGIT SEVEN
+ 78 | 00000668 | ARABIC-INDIC DIGIT EIGHT
+ 79 | 00000669 | ARABIC-INDIC DIGIT NINE
+ 7A | 0000003A | COLON
+ 7B | 00000023 | NUMBER SIGN
+ 7C | 00000040 | COMMERCIAL AT
+ 7D | 00000027 | APOSTROPHE
+ 7E | 0000003D | EQUALS SIGN
+ 7F | 00000022 | QUOTATION MARK
+ 80 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM
+ 81 | 00000061 | LATIN SMALL LETTER A
+ 82 | 00000062 | LATIN SMALL LETTER B
+ 83 | 00000063 | LATIN SMALL LETTER C
+ 84 | 00000064 | LATIN SMALL LETTER D
+ 85 | 00000065 | LATIN SMALL LETTER E
+ 86 | 00000066 | LATIN SMALL LETTER F
+ 87 | 00000067 | LATIN SMALL LETTER G
+ 88 | 00000068 | LATIN SMALL LETTER H
+ 89 | 00000069 | LATIN SMALL LETTER I
+ 8A | 0000062F | ARABIC LETTER DAL
+ 8C | 00000630 | ARABIC LETTER THAL
+ 8D | 00000631 | ARABIC LETTER REH
+ 8F | 00000632 | ARABIC LETTER ZAIN
+ 91 | 0000006A | LATIN SMALL LETTER J
+ 92 | 0000006B | LATIN SMALL LETTER K
+ 93 | 0000006C | LATIN SMALL LETTER L
+ 94 | 0000006D | LATIN SMALL LETTER M
+ 95 | 0000006E | LATIN SMALL LETTER N
+ 96 | 0000006F | LATIN SMALL LETTER O
+ 97 | 00000070 | LATIN SMALL LETTER P
+ 98 | 00000071 | LATIN SMALL LETTER Q
+ 99 | 00000072 | LATIN SMALL LETTER R
+ 9A | 00000633 | ARABIC LETTER SEEN
+ 9B | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM
+ 9C | 00000634 | ARABIC LETTER SHEEN
+ 9D | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM
+ 9E | 00000635 | ARABIC LETTER SAD
+ 9F | 0000FEBB | ARABIC LETTER SAD INITIAL FORM
+ A0 | 00000636 | ARABIC LETTER DAD
+ A1 | 0000007E | TILDE
+ A2 | 00000073 | LATIN SMALL LETTER S
+ A3 | 00000074 | LATIN SMALL LETTER T
+ A4 | 00000075 | LATIN SMALL LETTER U
+ A5 | 00000076 | LATIN SMALL LETTER V
+ A6 | 00000077 | LATIN SMALL LETTER W
+ A7 | 00000078 | LATIN SMALL LETTER X
+ A8 | 00000079 | LATIN SMALL LETTER Y
+ A9 | 0000007A | LATIN SMALL LETTER Z
+ AA | 0000FEBF | ARABIC LETTER DAD INITIAL FORM
+ AB | 00000637 | ARABIC LETTER TAH
+ AC | 00000638 | ARABIC LETTER ZAH
+ AD | 00000639 | ARABIC LETTER AIN
+ AE | 0000FECA | ARABIC LETTER AIN FINAL FORM
+ AF | 0000FECB | ARABIC LETTER AIN INITIAL FORM
+ B0 | 0000FECC | ARABIC LETTER AIN MEDIAL FORM
+ B1 | 0000063A | ARABIC LETTER GHAIN
+ B2 | 0000FECE | ARABIC LETTER GHAIN FINAL FORM
+ B3 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM
+ B4 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM
+ B5 | 00000641 | ARABIC LETTER FEH
+ B6 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM
+ B7 | 00000642 | ARABIC LETTER QAF
+ B8 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM
+ B9 | 00000643 | ARABIC LETTER KAF
+ BA | 0000FEDB | ARABIC LETTER KAF INITIAL FORM
+ BB | 0000007C | VERTICAL LINE
+ BE | 00000644 | ARABIC LETTER LAM
+ BF | 0000FEDE | ARABIC LETTER LAM FINAL FORM
+ C0 | 0000007B | LEFT CURLY BRACKET
+ C1 | 00000041 | LATIN CAPITAL LETTER A
+ C2 | 00000042 | LATIN CAPITAL LETTER B
+ C3 | 00000043 | LATIN CAPITAL LETTER C
+ C4 | 00000044 | LATIN CAPITAL LETTER D
+ C5 | 00000045 | LATIN CAPITAL LETTER E
+ C6 | 00000046 | LATIN CAPITAL LETTER F
+ C7 | 00000047 | LATIN CAPITAL LETTER G
+ C8 | 00000048 | LATIN CAPITAL LETTER H
+ C9 | 00000049 | LATIN CAPITAL LETTER I
+ CA | 000000AD | SOFT HYPHEN
+ CC | 00000645 | ARABIC LETTER MEEM
+ CD | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM
+ CF | 00000646 | ARABIC LETTER NOON
+ D0 | 0000007D | RIGHT CURLY BRACKET
+ D1 | 0000004A | LATIN CAPITAL LETTER J
+ D2 | 0000004B | LATIN CAPITAL LETTER K
+ D3 | 0000004C | LATIN CAPITAL LETTER L
+ D4 | 0000004D | LATIN CAPITAL LETTER M
+ D5 | 0000004E | LATIN CAPITAL LETTER N
+ D6 | 0000004F | LATIN CAPITAL LETTER O
+ D7 | 00000050 | LATIN CAPITAL LETTER P
+ D8 | 00000051 | LATIN CAPITAL LETTER Q
+ D9 | 00000052 | LATIN CAPITAL LETTER R
+ DA | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM
+ DC | 00000648 | ARABIC LETTER WAW
+ E0 | 0000005C | REVERSE SOLIDUS
+ E2 | 00000053 | LATIN CAPITAL LETTER S
+ E3 | 00000054 | LATIN CAPITAL LETTER T
+ E4 | 00000055 | LATIN CAPITAL LETTER U
+ E5 | 00000056 | LATIN CAPITAL LETTER V
+ E6 | 00000057 | LATIN CAPITAL LETTER W
+ E7 | 00000058 | LATIN CAPITAL LETTER X
+ E8 | 00000059 | LATIN CAPITAL LETTER Y
+ E9 | 0000005A | LATIN CAPITAL LETTER Z
+ EA | 00000621 | ARABIC LETTER HAMZA
+ F0 | 00000030 | DIGIT ZERO
+ F1 | 00000031 | DIGIT ONE
+ F2 | 00000032 | DIGIT TWO
+ F3 | 00000033 | DIGIT THREE
+ F4 | 00000034 | DIGIT FOUR
+ F5 | 00000035 | DIGIT FIVE
+ F6 | 00000036 | DIGIT SIX
+ F7 | 00000037 | DIGIT SEVEN
+ F8 | 00000038 | DIGIT EIGHT
+ F9 | 00000039 | DIGIT NINE
+ FD | 00000651 | ARABIC SHADDA
+ FE | 0000FE7D | ARABIC SHADDA MEDIAL FORM
+ FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IEC_P27_1.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IEC_P27_1.pm
new file mode 100644
index 0000000..5b7a9a8
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/IEC_P27_1.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: IEC_P27_1.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for IEC_P27-1.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::IEC_P27_1;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x02c7,
+ 0x2261,
+ 0x2227,
+ 0x2228,
+ 0x2229,
+ 0x222a,
+ 0x2282,
+ 0x2283,
+ 0x21d0,
+ 0x21d2,
+ 0x2234,
+ 0x2235,
+ 0x2208,
+ 0x220b,
+ 0x2286,
+ 0x2287,
+ 0x222b,
+ 0x222e,
+ 0x221e,
+ 0x2207,
+ 0x2202,
+ 0x223c,
+ 0x2248,
+ 0x2243,
+ 0x2245,
+ 0x2264,
+ 0x2260,
+ 0x2265,
+ 0x2194,
+ 0x00ac,
+ 0x2200,
+ 0x2203,
+ 0x05d0,
+ 0x25a1,
+ 0x2225,
+ 0x0393,
+ 0x0394,
+ 0x22a5,
+ 0x2220,
+ 0x221f,
+ 0x0398,
+ 0x2329,
+ 0x232a,
+ 0x039b,
+ 0x2032,
+ 0x2033,
+ 0x039e,
+ 0x2213,
+ 0x03a0,
+ 0x00b2,
+ 0x03a3,
+ 0x00d7,
+ 0x00b3,
+ 0x03a5,
+ 0x03a6,
+ 0x00b7,
+ 0x03a8,
+ 0x03a9,
+ 0x2205,
+ 0x21c0,
+ 0x221a,
+ 0x0192,
+ 0x221d,
+ 0x00b1,
+ 0x00b0,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x2030,
+ 0x03c0,
+ 0x03c1,
+ 0x03c3,
+ 0x00f7,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0x2020,
+ 0x2190,
+ 0x2191,
+ 0x2192,
+ 0x2193,
+ 0x203e,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xcb\x87",
+ "\xe2\x89\xa1",
+ "\xe2\x88\xa7",
+ "\xe2\x88\xa8",
+ "\xe2\x88\xa9",
+ "\xe2\x88\xaa",
+ "\xe2\x8a\x82",
+ "\xe2\x8a\x83",
+ "\xe2\x87\x90",
+ "\xe2\x87\x92",
+ "\xe2\x88\xb4",
+ "\xe2\x88\xb5",
+ "\xe2\x88\x88",
+ "\xe2\x88\x8b",
+ "\xe2\x8a\x86",
+ "\xe2\x8a\x87",
+ "\xe2\x88\xab",
+ "\xe2\x88\xae",
+ "\xe2\x88\x9e",
+ "\xe2\x88\x87",
+ "\xe2\x88\x82",
+ "\xe2\x88\xbc",
+ "\xe2\x89\x88",
+ "\xe2\x89\x83",
+ "\xe2\x89\x85",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa0",
+ "\xe2\x89\xa5",
+ "\xe2\x86\x94",
+ "\xc2\xac",
+ "\xe2\x88\x80",
+ "\xe2\x88\x83",
+ "\xd7\x90",
+ "\xe2\x96\xa1",
+ "\xe2\x88\xa5",
+ "\xce\x93",
+ "\xce\x94",
+ "\xe2\x8a\xa5",
+ "\xe2\x88\xa0",
+ "\xe2\x88\x9f",
+ "\xce\x98",
+ "\xe2\x8c\xa9",
+ "\xe2\x8c\xaa",
+ "\xce\x9b",
+ "\xe2\x80\xb2",
+ "\xe2\x80\xb3",
+ "\xce\x9e",
+ "\xe2\x88\x93",
+ "\xce\xa0",
+ "\xc2\xb2",
+ "\xce\xa3",
+ "\xc3\x97",
+ "\xc2\xb3",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xc2\xb7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xe2\x88\x85",
+ "\xe2\x87\x80",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x88\x9d",
+ "\xc2\xb1",
+ "\xc2\xb0",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xe2\x80\xb0",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xc3\xb7",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\xe2\x80\xa0",
+ "\xe2\x86\x90",
+ "\xe2\x86\x91",
+ "\xe2\x86\x92",
+ "\xe2\x86\x93",
+ "\xe2\x80\xbe",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000ac => "\xbd",
+ 0x000000b0 => "\xe0",
+ 0x000000b1 => "\xdf",
+ 0x000000b2 => "\xd1",
+ 0x000000b3 => "\xd4",
+ 0x000000b7 => "\xd7",
+ 0x000000d7 => "\xd3",
+ 0x000000f7 => "\xf3",
+ 0x00000192 => "\xdd",
+ 0x000002c7 => "\xa0",
+ 0x00000393 => "\xc3",
+ 0x00000394 => "\xc4",
+ 0x00000398 => "\xc8",
+ 0x0000039b => "\xcb",
+ 0x0000039e => "\xce",
+ 0x000003a0 => "\xd0",
+ 0x000003a3 => "\xd2",
+ 0x000003a5 => "\xd5",
+ 0x000003a6 => "\xd6",
+ 0x000003a8 => "\xd8",
+ 0x000003a9 => "\xd9",
+ 0x000003b1 => "\xe1",
+ 0x000003b2 => "\xe2",
+ 0x000003b3 => "\xe3",
+ 0x000003b4 => "\xe4",
+ 0x000003b5 => "\xe5",
+ 0x000003b6 => "\xe6",
+ 0x000003b7 => "\xe7",
+ 0x000003b8 => "\xe8",
+ 0x000003b9 => "\xe9",
+ 0x000003ba => "\xea",
+ 0x000003bb => "\xeb",
+ 0x000003bc => "\xec",
+ 0x000003bd => "\xed",
+ 0x000003be => "\xee",
+ 0x000003c0 => "\xf0",
+ 0x000003c1 => "\xf1",
+ 0x000003c3 => "\xf2",
+ 0x000003c4 => "\xf4",
+ 0x000003c5 => "\xf5",
+ 0x000003c6 => "\xf6",
+ 0x000003c7 => "\xf7",
+ 0x000003c8 => "\xf8",
+ 0x000003c9 => "\xf9",
+ 0x000005d0 => "\xc0",
+ 0x00002020 => "\xfa",
+ 0x00002030 => "\xef",
+ 0x00002032 => "\xcc",
+ 0x00002033 => "\xcd",
+ 0x0000203e => "\xff",
+ 0x00002190 => "\xfb",
+ 0x00002191 => "\xfc",
+ 0x00002192 => "\xfd",
+ 0x00002193 => "\xfe",
+ 0x00002194 => "\xbc",
+ 0x000021c0 => "\xdb",
+ 0x000021d0 => "\xa8",
+ 0x000021d2 => "\xa9",
+ 0x00002200 => "\xbe",
+ 0x00002202 => "\xb4",
+ 0x00002203 => "\xbf",
+ 0x00002205 => "\xda",
+ 0x00002207 => "\xb3",
+ 0x00002208 => "\xac",
+ 0x0000220b => "\xad",
+ 0x00002213 => "\xcf",
+ 0x0000221a => "\xdc",
+ 0x0000221d => "\xde",
+ 0x0000221e => "\xb2",
+ 0x0000221f => "\xc7",
+ 0x00002220 => "\xc6",
+ 0x00002225 => "\xc2",
+ 0x00002227 => "\xa2",
+ 0x00002228 => "\xa3",
+ 0x00002229 => "\xa4",
+ 0x0000222a => "\xa5",
+ 0x0000222b => "\xb0",
+ 0x0000222e => "\xb1",
+ 0x00002234 => "\xaa",
+ 0x00002235 => "\xab",
+ 0x0000223c => "\xb5",
+ 0x00002243 => "\xb7",
+ 0x00002245 => "\xb8",
+ 0x00002248 => "\xb6",
+ 0x00002260 => "\xba",
+ 0x00002261 => "\xa1",
+ 0x00002264 => "\xb9",
+ 0x00002265 => "\xbb",
+ 0x00002282 => "\xa6",
+ 0x00002283 => "\xa7",
+ 0x00002286 => "\xae",
+ 0x00002287 => "\xaf",
+ 0x000022a5 => "\xc5",
+ 0x00002329 => "\xc9",
+ 0x0000232a => "\xca",
+ 0x000025a1 => "\xc1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::IEC_P27_1 - Conversion routines for IEC_P27_1
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for IEC_P27-1.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-143
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000002C7 | CARON (Mandarin Chinese third tone)
+ A1 | 00002261 | IDENTICAL TO
+ A2 | 00002227 | LOGICAL AND
+ A3 | 00002228 | LOGICAL OR
+ A4 | 00002229 | INTERSECTION
+ A5 | 0000222A | UNION
+ A6 | 00002282 | SUBSET OF
+ A7 | 00002283 | SUPERSET OF
+ A8 | 000021D0 | LEFTWARDS DOUBLE ARROW
+ A9 | 000021D2 | RIGHTWARDS DOUBLE ARROW
+ AA | 00002234 | THEREFORE
+ AB | 00002235 | BECAUSE
+ AC | 00002208 | ELEMENT OF
+ AD | 0000220B | CONTAINS AS MEMBER
+ AE | 00002286 | SUBSET OF OR EQUAL TO
+ AF | 00002287 | SUPERSET OF OR EQUAL TO
+ B0 | 0000222B | INTEGRAL
+ B1 | 0000222E | CONTOUR INTEGRAL
+ B2 | 0000221E | INFINITY
+ B3 | 00002207 | NABLA
+ B4 | 00002202 | PARTIAL DIFFERENTIAL
+ B5 | 0000223C | TILDE OPERATOR
+ B6 | 00002248 | ALMOST EQUAL TO
+ B7 | 00002243 | ASYMPTOTICALLY EQUAL TO
+ B8 | 00002245 | APPROXIMATELY EQUAL TO
+ B9 | 00002264 | LESS-THAN OR EQUAL TO
+ BA | 00002260 | NOT EQUAL TO
+ BB | 00002265 | GREATER-THAN OR EQUAL TO
+ BC | 00002194 | LEFT RIGHT ARROW
+ BD | 000000AC | NOT SIGN
+ BE | 00002200 | FOR ALL
+ BF | 00002203 | THERE EXISTS
+ C0 | 000005D0 | HEBREW LETTER ALEF
+ C1 | 000025A1 | WHITE SQUARE
+ C2 | 00002225 | PARALLEL TO
+ C3 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ C4 | 00000394 | GREEK CAPITAL LETTER DELTA
+ C5 | 000022A5 | UP TACK
+ C6 | 00002220 | ANGLE
+ C7 | 0000221F | RIGHT ANGLE
+ C8 | 00000398 | GREEK CAPITAL LETTER THETA
+ C9 | 00002329 | LEFT-POINTING ANGLE BRACKET
+ CA | 0000232A | RIGHT-POINTING ANGLE BRACKET
+ CB | 0000039B | GREEK CAPITAL LETTER LAMDA
+ CC | 00002032 | PRIME
+ CD | 00002033 | DOUBLE PRIME
+ CE | 0000039E | GREEK CAPITAL LETTER XI
+ CF | 00002213 | MINUS-OR-PLUS SIGN
+ D0 | 000003A0 | GREEK CAPITAL LETTER PI
+ D1 | 000000B2 | SUPERSCRIPT TWO
+ D2 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ D3 | 000000D7 | MULTIPLICATION SIGN
+ D4 | 000000B3 | SUPERSCRIPT THREE
+ D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ D6 | 000003A6 | GREEK CAPITAL LETTER PHI
+ D7 | 000000B7 | MIDDLE DOT
+ D8 | 000003A8 | GREEK CAPITAL LETTER PSI
+ D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ DA | 00002205 | EMPTY SET
+ DB | 000021C0 | RIGHTWARDS HARPOON WITH BARB UPWARDS
+ DC | 0000221A | SQUARE ROOT
+ DD | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ DE | 0000221D | PROPORTIONAL TO
+ DF | 000000B1 | PLUS-MINUS SIGN
+ E0 | 000000B0 | DEGREE SIGN
+ E1 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E2 | 000003B2 | GREEK SMALL LETTER BETA
+ E3 | 000003B3 | GREEK SMALL LETTER GAMMA
+ E4 | 000003B4 | GREEK SMALL LETTER DELTA
+ E5 | 000003B5 | GREEK SMALL LETTER EPSILON
+ E6 | 000003B6 | GREEK SMALL LETTER ZETA
+ E7 | 000003B7 | GREEK SMALL LETTER ETA
+ E8 | 000003B8 | GREEK SMALL LETTER THETA
+ E9 | 000003B9 | GREEK SMALL LETTER IOTA
+ EA | 000003BA | GREEK SMALL LETTER KAPPA
+ EB | 000003BB | GREEK SMALL LETTER LAMDA
+ EC | 000003BC | GREEK SMALL LETTER MU
+ ED | 000003BD | GREEK SMALL LETTER NU
+ EE | 000003BE | GREEK SMALL LETTER XI
+ EF | 00002030 | PER MILLE SIGN
+ F0 | 000003C0 | GREEK SMALL LETTER PI
+ F1 | 000003C1 | GREEK SMALL LETTER RHO
+ F2 | 000003C3 | GREEK SMALL LETTER SIGMA
+ F3 | 000000F7 | DIVISION SIGN
+ F4 | 000003C4 | GREEK SMALL LETTER TAU
+ F5 | 000003C5 | GREEK SMALL LETTER UPSILON
+ F6 | 000003C6 | GREEK SMALL LETTER PHI
+ F7 | 000003C7 | GREEK SMALL LETTER CHI
+ F8 | 000003C8 | GREEK SMALL LETTER PSI
+ F9 | 000003C9 | GREEK SMALL LETTER OMEGA
+ FA | 00002020 | DAGGER
+ FB | 00002190 | LEFTWARDS ARROW
+ FC | 00002191 | UPWARDS ARROW
+ FD | 00002192 | RIGHTWARDS ARROW
+ FE | 00002193 | DOWNWARDS ARROW
+ FF | 0000203E | OVERLINE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS.pm
new file mode 100644
index 0000000..e3887e3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS.pm
@@ -0,0 +1,864 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: INIS.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for INIS.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::INIS;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0024,
+ 0x0025,
+ 0xfffd,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0xfffd,
+ 0xfffd,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0xfffd,
+ 0x005d,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0xfffd,
+ 0x007c,
+ 0xfffd,
+ 0xfffd,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x24",
+ "\x25",
+ "\xef\xbf\xbd",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xef\xbf\xbd",
+ "\x7c",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005d => "\x5d",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007c => "\x7c",
+ 0x0000007f => "\x7f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::INIS - Conversion routines for INIS
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for INIS.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-49
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7C | 0000007C | VERTICAL LINE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_8.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_8.pm
new file mode 100644
index 0000000..4199492
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_8.pm
@@ -0,0 +1,779 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: INIS_8.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for INIS-8.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::INIS_8;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x039e,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2192,
+ 0x222b,
+ 0x2070,
+ 0x00b9,
+ 0x00b2,
+ 0x00b3,
+ 0x2074,
+ 0x2075,
+ 0x2076,
+ 0x2077,
+ 0x2078,
+ 0x2079,
+ 0x207a,
+ 0x207b,
+ 0x30eb,
+ 0x0394,
+ 0x039b,
+ 0x03a9,
+ 0x2080,
+ 0x2081,
+ 0x2082,
+ 0x2083,
+ 0x2084,
+ 0x2085,
+ 0x2086,
+ 0x2087,
+ 0x2088,
+ 0x2089,
+ 0x03a3,
+ 0x03bc,
+ 0x03bd,
+ 0x03c9,
+ 0x03c0,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\x9e",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x86\x92",
+ "\xe2\x88\xab",
+ "\xe2\x81\xb0",
+ "\xc2\xb9",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xe2\x81\xb4",
+ "\xe2\x81\xb5",
+ "\xe2\x81\xb6",
+ "\xe2\x81\xb7",
+ "\xe2\x81\xb8",
+ "\xe2\x81\xb9",
+ "\xe2\x81\xba",
+ "\xe2\x81\xbb",
+ "\xe3\x83\xab",
+ "\xce\x94",
+ "\xce\x9b",
+ "\xce\xa9",
+ "\xe2\x82\x80",
+ "\xe2\x82\x81",
+ "\xe2\x82\x82",
+ "\xe2\x82\x83",
+ "\xe2\x82\x84",
+ "\xe2\x82\x85",
+ "\xe2\x82\x86",
+ "\xe2\x82\x87",
+ "\xe2\x82\x88",
+ "\xe2\x82\x89",
+ "\xce\xa3",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xcf\x89",
+ "\xcf\x80",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x0000007f => "\x7f",
+ 0x000000b2 => "\x62",
+ 0x000000b3 => "\x63",
+ 0x000000b9 => "\x61",
+ 0x00000394 => "\x6d",
+ 0x0000039b => "\x6e",
+ 0x0000039e => "\x3e",
+ 0x000003a3 => "\x7a",
+ 0x000003a9 => "\x6f",
+ 0x000003b1 => "\x3a",
+ 0x000003b2 => "\x3b",
+ 0x000003b3 => "\x3c",
+ 0x000003b4 => "\x3d",
+ 0x000003bc => "\x7b",
+ 0x000003bd => "\x7c",
+ 0x000003c0 => "\x7e",
+ 0x000003c9 => "\x7d",
+ 0x00002070 => "\x60",
+ 0x00002074 => "\x64",
+ 0x00002075 => "\x65",
+ 0x00002076 => "\x66",
+ 0x00002077 => "\x67",
+ 0x00002078 => "\x68",
+ 0x00002079 => "\x69",
+ 0x0000207a => "\x6a",
+ 0x0000207b => "\x6b",
+ 0x00002080 => "\x70",
+ 0x00002081 => "\x71",
+ 0x00002082 => "\x72",
+ 0x00002083 => "\x73",
+ 0x00002084 => "\x74",
+ 0x00002085 => "\x75",
+ 0x00002086 => "\x76",
+ 0x00002087 => "\x77",
+ 0x00002088 => "\x78",
+ 0x00002089 => "\x79",
+ 0x00002192 => "\x5e",
+ 0x0000222b => "\x5f",
+ 0x000030eb => "\x6c",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::INIS_8 - Conversion routines for INIS_8
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for INIS-8.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-50
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 3A | 000003B1 | GREEK SMALL LETTER ALPHA
+ 3B | 000003B2 | GREEK SMALL LETTER BETA
+ 3C | 000003B3 | GREEK SMALL LETTER GAMMA
+ 3D | 000003B4 | GREEK SMALL LETTER DELTA
+ 3E | 0000039E | GREEK CAPITAL LETTER XI
+ 5E | 00002192 | RIGHTWARDS ARROW
+ 5F | 0000222B | INTEGRAL
+ 60 | 00002070 | SUPERSCRIPT ZERO
+ 61 | 000000B9 | SUPERSCRIPT ONE
+ 62 | 000000B2 | SUPERSCRIPT TWO
+ 63 | 000000B3 | SUPERSCRIPT THREE
+ 64 | 00002074 | SUPERSCRIPT FOUR
+ 65 | 00002075 | SUPERSCRIPT FIVE
+ 66 | 00002076 | SUPERSCRIPT SIX
+ 67 | 00002077 | SUPERSCRIPT SEVEN
+ 68 | 00002078 | SUPERSCRIPT EIGHT
+ 69 | 00002079 | SUPERSCRIPT NINE
+ 6A | 0000207A | SUPERSCRIPT PLUS SIGN
+ 6B | 0000207B | SUPERSCRIPT MINUS
+ 6C | 000030EB | KATAKANA LETTER RU
+ 6D | 00000394 | GREEK CAPITAL LETTER DELTA
+ 6E | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 6F | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 70 | 00002080 | SUBSCRIPT ZERO
+ 71 | 00002081 | SUBSCRIPT ONE
+ 72 | 00002082 | SUBSCRIPT TWO
+ 73 | 00002083 | SUBSCRIPT THREE
+ 74 | 00002084 | SUBSCRIPT FOUR
+ 75 | 00002085 | SUBSCRIPT FIVE
+ 76 | 00002086 | SUBSCRIPT SIX
+ 77 | 00002087 | SUBSCRIPT SEVEN
+ 78 | 00002088 | SUBSCRIPT EIGHT
+ 79 | 00002089 | SUBSCRIPT NINE
+ 7A | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 7B | 000003BC | GREEK SMALL LETTER MU
+ 7C | 000003BD | GREEK SMALL LETTER NU
+ 7D | 000003C9 | GREEK SMALL LETTER OMEGA
+ 7E | 000003C0 | GREEK SMALL LETTER PI
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_CYRILLIC.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_CYRILLIC.pm
new file mode 100644
index 0000000..e33863e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/INIS_CYRILLIC.pm
@@ -0,0 +1,866 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: INIS_CYRILLIC.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for INIS-CYRILLIC.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::INIS_CYRILLIC;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x221a,
+ 0xfffd,
+ 0x2192,
+ 0x222b,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03a3,
+ 0x03bc,
+ 0x03bd,
+ 0x03c9,
+ 0x03c0,
+ 0x039e,
+ 0x0394,
+ 0x039b,
+ 0x03a9,
+ 0x042a,
+ 0x207b,
+ 0x207a,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x88\x9a",
+ "\xef\xbf\xbd",
+ "\xe2\x86\x92",
+ "\xe2\x88\xab",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xa3",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xcf\x89",
+ "\xcf\x80",
+ "\xce\x9e",
+ "\xce\x94",
+ "\xce\x9b",
+ "\xce\xa9",
+ "\xd0\xaa",
+ "\xe2\x81\xbb",
+ "\xe2\x81\xba",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x0000007f => "\x7f",
+ 0x00000394 => "\x3a",
+ 0x0000039b => "\x3b",
+ 0x0000039e => "\x39",
+ 0x000003a3 => "\x34",
+ 0x000003a9 => "\x3c",
+ 0x000003b1 => "\x30",
+ 0x000003b2 => "\x31",
+ 0x000003b3 => "\x32",
+ 0x000003b4 => "\x33",
+ 0x000003bc => "\x35",
+ 0x000003bd => "\x36",
+ 0x000003c0 => "\x38",
+ 0x000003c9 => "\x37",
+ 0x00000410 => "\x61",
+ 0x00000411 => "\x62",
+ 0x00000412 => "\x77",
+ 0x00000413 => "\x67",
+ 0x00000414 => "\x64",
+ 0x00000415 => "\x65",
+ 0x00000416 => "\x76",
+ 0x00000417 => "\x7a",
+ 0x00000418 => "\x69",
+ 0x00000419 => "\x6a",
+ 0x0000041a => "\x6b",
+ 0x0000041b => "\x6c",
+ 0x0000041c => "\x6d",
+ 0x0000041d => "\x6e",
+ 0x0000041e => "\x6f",
+ 0x0000041f => "\x70",
+ 0x00000420 => "\x72",
+ 0x00000421 => "\x73",
+ 0x00000422 => "\x74",
+ 0x00000423 => "\x75",
+ 0x00000424 => "\x66",
+ 0x00000425 => "\x68",
+ 0x00000426 => "\x63",
+ 0x00000427 => "\x7e",
+ 0x00000428 => "\x7b",
+ 0x00000429 => "\x7d",
+ 0x0000042a => "\x3d",
+ 0x0000042b => "\x79",
+ 0x0000042c => "\x78",
+ 0x0000042d => "\x7c",
+ 0x0000042e => "\x60",
+ 0x0000042f => "\x71",
+ 0x00000430 => "\x41",
+ 0x00000431 => "\x42",
+ 0x00000432 => "\x57",
+ 0x00000433 => "\x47",
+ 0x00000434 => "\x44",
+ 0x00000435 => "\x45",
+ 0x00000436 => "\x56",
+ 0x00000437 => "\x5a",
+ 0x00000438 => "\x49",
+ 0x00000439 => "\x4a",
+ 0x0000043a => "\x4b",
+ 0x0000043b => "\x4c",
+ 0x0000043c => "\x4d",
+ 0x0000043d => "\x4e",
+ 0x0000043e => "\x4f",
+ 0x0000043f => "\x50",
+ 0x00000440 => "\x52",
+ 0x00000441 => "\x53",
+ 0x00000442 => "\x54",
+ 0x00000443 => "\x55",
+ 0x00000444 => "\x46",
+ 0x00000445 => "\x48",
+ 0x00000446 => "\x43",
+ 0x00000447 => "\x5e",
+ 0x00000448 => "\x5b",
+ 0x00000449 => "\x5d",
+ 0x0000044a => "\x5f",
+ 0x0000044b => "\x59",
+ 0x0000044c => "\x58",
+ 0x0000044d => "\x5c",
+ 0x0000044e => "\x40",
+ 0x0000044f => "\x51",
+ 0x0000207a => "\x3f",
+ 0x0000207b => "\x3e",
+ 0x00002192 => "\x2e",
+ 0x0000221a => "\x2c",
+ 0x0000222b => "\x2f",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::INIS_CYRILLIC - Conversion routines for INIS_CYRILLIC
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for INIS-CYRILLIC.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-51
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 2C | 0000221A | SQUARE ROOT
+ 2E | 00002192 | RIGHTWARDS ARROW
+ 2F | 0000222B | INTEGRAL
+ 30 | 000003B1 | GREEK SMALL LETTER ALPHA
+ 31 | 000003B2 | GREEK SMALL LETTER BETA
+ 32 | 000003B3 | GREEK SMALL LETTER GAMMA
+ 33 | 000003B4 | GREEK SMALL LETTER DELTA
+ 34 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 35 | 000003BC | GREEK SMALL LETTER MU
+ 36 | 000003BD | GREEK SMALL LETTER NU
+ 37 | 000003C9 | GREEK SMALL LETTER OMEGA
+ 38 | 000003C0 | GREEK SMALL LETTER PI
+ 39 | 0000039E | GREEK CAPITAL LETTER XI
+ 3A | 00000394 | GREEK CAPITAL LETTER DELTA
+ 3B | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 3C | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 3D | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 3E | 0000207B | SUPERSCRIPT MINUS
+ 3F | 0000207A | SUPERSCRIPT PLUS SIGN
+ 40 | 0000044E | CYRILLIC SMALL LETTER YU
+ 41 | 00000430 | CYRILLIC SMALL LETTER A
+ 42 | 00000431 | CYRILLIC SMALL LETTER BE
+ 43 | 00000446 | CYRILLIC SMALL LETTER TSE
+ 44 | 00000434 | CYRILLIC SMALL LETTER DE
+ 45 | 00000435 | CYRILLIC SMALL LETTER IE
+ 46 | 00000444 | CYRILLIC SMALL LETTER EF
+ 47 | 00000433 | CYRILLIC SMALL LETTER GHE
+ 48 | 00000445 | CYRILLIC SMALL LETTER HA
+ 49 | 00000438 | CYRILLIC SMALL LETTER I
+ 4A | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ 4B | 0000043A | CYRILLIC SMALL LETTER KA
+ 4C | 0000043B | CYRILLIC SMALL LETTER EL
+ 4D | 0000043C | CYRILLIC SMALL LETTER EM
+ 4E | 0000043D | CYRILLIC SMALL LETTER EN
+ 4F | 0000043E | CYRILLIC SMALL LETTER O
+ 50 | 0000043F | CYRILLIC SMALL LETTER PE
+ 51 | 0000044F | CYRILLIC SMALL LETTER YA
+ 52 | 00000440 | CYRILLIC SMALL LETTER ER
+ 53 | 00000441 | CYRILLIC SMALL LETTER ES
+ 54 | 00000442 | CYRILLIC SMALL LETTER TE
+ 55 | 00000443 | CYRILLIC SMALL LETTER U
+ 56 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ 57 | 00000432 | CYRILLIC SMALL LETTER VE
+ 58 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ 59 | 0000044B | CYRILLIC SMALL LETTER YERU
+ 5A | 00000437 | CYRILLIC SMALL LETTER ZE
+ 5B | 00000448 | CYRILLIC SMALL LETTER SHA
+ 5C | 0000044D | CYRILLIC SMALL LETTER E
+ 5D | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ 5E | 00000447 | CYRILLIC SMALL LETTER CHE
+ 5F | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ 60 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 61 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 62 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 63 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 64 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 65 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 66 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 67 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 68 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 69 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 6A | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 6B | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 6C | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 6D | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 6E | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 6F | 0000041E | CYRILLIC CAPITAL LETTER O
+ 70 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 71 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ 72 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 73 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 74 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 75 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 76 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 77 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 78 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 79 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 7A | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 7B | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 7C | 0000042D | CYRILLIC CAPITAL LETTER E
+ 7D | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 7E | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_10367_BOX.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_10367_BOX.pm
new file mode 100644
index 0000000..e2f3cf5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_10367_BOX.pm
@@ -0,0 +1,1012 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_10367_BOX.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for ISO_10367-BOX.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_10367_BOX;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2551,
+ 0x2550,
+ 0x2554,
+ 0x2557,
+ 0x255a,
+ 0x255d,
+ 0x2560,
+ 0x2563,
+ 0x2566,
+ 0x2569,
+ 0x256c,
+ 0xe019,
+ 0x2584,
+ 0x2588,
+ 0x25aa,
+ 0xfffd,
+ 0x2502,
+ 0x2500,
+ 0x250c,
+ 0x2510,
+ 0x2514,
+ 0x2518,
+ 0x251c,
+ 0x2524,
+ 0x252c,
+ 0x2534,
+ 0x253c,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x95\x91",
+ "\xe2\x95\x90",
+ "\xe2\x95\x94",
+ "\xe2\x95\x97",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x9d",
+ "\xe2\x95\xa0",
+ "\xe2\x95\xa3",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xac",
+ "\xee\x80\x99",
+ "\xe2\x96\x84",
+ "\xe2\x96\x88",
+ "\xe2\x96\xaa",
+ "\xef\xbf\xbd",
+ "\xe2\x94\x82",
+ "\xe2\x94\x80",
+ "\xe2\x94\x8c",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\x98",
+ "\xe2\x94\x9c",
+ "\xe2\x94\xa4",
+ "\xe2\x94\xac",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xbc",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x00002500 => "\xd1",
+ 0x00002502 => "\xd0",
+ 0x0000250c => "\xd2",
+ 0x00002510 => "\xd3",
+ 0x00002514 => "\xd4",
+ 0x00002518 => "\xd5",
+ 0x0000251c => "\xd6",
+ 0x00002524 => "\xd7",
+ 0x0000252c => "\xd8",
+ 0x00002534 => "\xd9",
+ 0x0000253c => "\xda",
+ 0x00002550 => "\xc1",
+ 0x00002551 => "\xc0",
+ 0x00002554 => "\xc2",
+ 0x00002557 => "\xc3",
+ 0x0000255a => "\xc4",
+ 0x0000255d => "\xc5",
+ 0x00002560 => "\xc6",
+ 0x00002563 => "\xc7",
+ 0x00002566 => "\xc8",
+ 0x00002569 => "\xc9",
+ 0x0000256c => "\xca",
+ 0x00002584 => "\xcc",
+ 0x00002588 => "\xcd",
+ 0x00002591 => "\xdb",
+ 0x00002592 => "\xdc",
+ 0x00002593 => "\xdd",
+ 0x000025aa => "\xce",
+ 0x0000e019 => "\xcb",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_10367_BOX - Conversion routines for ISO_10367_BOX
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO_10367-BOX.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-155
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ C0 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ C1 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ C2 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ C3 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ C4 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ C5 | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ C6 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ C7 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ C8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ C9 | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ CA | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ CB | 0000E019 | Unit space B E<lt>ISO-IR-8-1_60E<gt>
+ CC | 00002584 | LOWER HALF BLOCK
+ CD | 00002588 | FULL BLOCK
+ CE | 000025AA | BLACK SMALL SQUARE
+ D0 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ D1 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ D2 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ D3 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ D4 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ D5 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ D6 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ D7 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ D8 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ D9 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ DA | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ DB | 00002591 | LIGHT SHADE
+ DC | 00002592 | MEDIUM SHADE
+ DD | 00002593 | DARK SHADE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_2033_1983.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_2033_1983.pm
new file mode 100644
index 0000000..f70aa90
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_2033_1983.pm
@@ -0,0 +1,732 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_2033_1983.pm,v 1.1 2011-10-12 23:51:41 pertusus Exp $
+
+# Conversion routines for ISO_2033-1983.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_2033_1983;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x2446,
+ 0x2447,
+ 0x2448,
+ 0x2449,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xe2\x91\x86",
+ "\xe2\x91\x87",
+ "\xe2\x91\x88",
+ "\xe2\x91\x89",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000007f => "\x7f",
+ 0x00002446 => "\x3a",
+ 0x00002447 => "\x3b",
+ 0x00002448 => "\x3c",
+ 0x00002449 => "\x3d",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_2033_1983 - Conversion routines for ISO_2033_1983
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO_2033-1983.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-98
+ alias E13B
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 00002446 | OCR BRANCH BANK IDENTIFICATION
+ 3B | 00002447 | OCR AMOUNT OF CHECK
+ 3C | 00002448 | OCR DASH
+ 3D | 00002449 | OCR CUSTOMER ACCOUNT NUMBER
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427.pm
new file mode 100644
index 0000000..52b7e4f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427.pm
@@ -0,0 +1,891 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_5427.pm,v 1.1 2011-10-12 23:51:42 pertusus Exp $
+
+# Conversion routines for ISO_5427.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_5427;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\x24",
+ 0x00000410 => "\x61",
+ 0x00000411 => "\x62",
+ 0x00000412 => "\x77",
+ 0x00000413 => "\x67",
+ 0x00000414 => "\x64",
+ 0x00000415 => "\x65",
+ 0x00000416 => "\x76",
+ 0x00000417 => "\x7a",
+ 0x00000418 => "\x69",
+ 0x00000419 => "\x6a",
+ 0x0000041a => "\x6b",
+ 0x0000041b => "\x6c",
+ 0x0000041c => "\x6d",
+ 0x0000041d => "\x6e",
+ 0x0000041e => "\x6f",
+ 0x0000041f => "\x70",
+ 0x00000420 => "\x72",
+ 0x00000421 => "\x73",
+ 0x00000422 => "\x74",
+ 0x00000423 => "\x75",
+ 0x00000424 => "\x66",
+ 0x00000425 => "\x68",
+ 0x00000426 => "\x63",
+ 0x00000427 => "\x7e",
+ 0x00000428 => "\x7b",
+ 0x00000429 => "\x7d",
+ 0x0000042b => "\x79",
+ 0x0000042c => "\x78",
+ 0x0000042d => "\x7c",
+ 0x0000042e => "\x60",
+ 0x0000042f => "\x71",
+ 0x00000430 => "\x41",
+ 0x00000431 => "\x42",
+ 0x00000432 => "\x57",
+ 0x00000433 => "\x47",
+ 0x00000434 => "\x44",
+ 0x00000435 => "\x45",
+ 0x00000436 => "\x56",
+ 0x00000437 => "\x5a",
+ 0x00000438 => "\x49",
+ 0x00000439 => "\x4a",
+ 0x0000043a => "\x4b",
+ 0x0000043b => "\x4c",
+ 0x0000043c => "\x4d",
+ 0x0000043d => "\x4e",
+ 0x0000043e => "\x4f",
+ 0x0000043f => "\x50",
+ 0x00000440 => "\x52",
+ 0x00000441 => "\x53",
+ 0x00000442 => "\x54",
+ 0x00000443 => "\x55",
+ 0x00000444 => "\x46",
+ 0x00000445 => "\x48",
+ 0x00000446 => "\x43",
+ 0x00000447 => "\x5e",
+ 0x00000448 => "\x5b",
+ 0x00000449 => "\x5d",
+ 0x0000044a => "\x5f",
+ 0x0000044b => "\x59",
+ 0x0000044c => "\x58",
+ 0x0000044d => "\x5c",
+ 0x0000044e => "\x40",
+ 0x0000044f => "\x51",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_5427 - Conversion routines for ISO_5427
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO_5427.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-37
+ alias KOI-7
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 0000044E | CYRILLIC SMALL LETTER YU
+ 41 | 00000430 | CYRILLIC SMALL LETTER A
+ 42 | 00000431 | CYRILLIC SMALL LETTER BE
+ 43 | 00000446 | CYRILLIC SMALL LETTER TSE
+ 44 | 00000434 | CYRILLIC SMALL LETTER DE
+ 45 | 00000435 | CYRILLIC SMALL LETTER IE
+ 46 | 00000444 | CYRILLIC SMALL LETTER EF
+ 47 | 00000433 | CYRILLIC SMALL LETTER GHE
+ 48 | 00000445 | CYRILLIC SMALL LETTER HA
+ 49 | 00000438 | CYRILLIC SMALL LETTER I
+ 4A | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ 4B | 0000043A | CYRILLIC SMALL LETTER KA
+ 4C | 0000043B | CYRILLIC SMALL LETTER EL
+ 4D | 0000043C | CYRILLIC SMALL LETTER EM
+ 4E | 0000043D | CYRILLIC SMALL LETTER EN
+ 4F | 0000043E | CYRILLIC SMALL LETTER O
+ 50 | 0000043F | CYRILLIC SMALL LETTER PE
+ 51 | 0000044F | CYRILLIC SMALL LETTER YA
+ 52 | 00000440 | CYRILLIC SMALL LETTER ER
+ 53 | 00000441 | CYRILLIC SMALL LETTER ES
+ 54 | 00000442 | CYRILLIC SMALL LETTER TE
+ 55 | 00000443 | CYRILLIC SMALL LETTER U
+ 56 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ 57 | 00000432 | CYRILLIC SMALL LETTER VE
+ 58 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ 59 | 0000044B | CYRILLIC SMALL LETTER YERU
+ 5A | 00000437 | CYRILLIC SMALL LETTER ZE
+ 5B | 00000448 | CYRILLIC SMALL LETTER SHA
+ 5C | 0000044D | CYRILLIC SMALL LETTER E
+ 5D | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ 5E | 00000447 | CYRILLIC SMALL LETTER CHE
+ 5F | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ 60 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 61 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 62 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 63 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 64 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 65 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 66 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 67 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 68 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 69 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 6A | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 6B | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 6C | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 6D | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 6E | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 6F | 0000041E | CYRILLIC CAPITAL LETTER O
+ 70 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 71 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ 72 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 73 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 74 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 75 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 76 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 77 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 78 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 79 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 7A | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 7B | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 7C | 0000042D | CYRILLIC CAPITAL LETTER E
+ 7D | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 7E | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427_EXT.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427_EXT.pm
new file mode 100644
index 0000000..d9cd2ee
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5427_EXT.pm
@@ -0,0 +1,788 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_5427_EXT.pm,v 1.1 2011-10-12 23:51:42 pertusus Exp $
+
+# Conversion routines for ISO_5427-EXT.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_5427_EXT;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0491,
+ 0x0452,
+ 0x0453,
+ 0x0454,
+ 0x0451,
+ 0x0455,
+ 0x0456,
+ 0x0457,
+ 0x0458,
+ 0x0459,
+ 0x045a,
+ 0x045b,
+ 0x045c,
+ 0x045e,
+ 0x045f,
+ 0xfffd,
+ 0x0463,
+ 0x0473,
+ 0x0475,
+ 0x046b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x005b,
+ 0xfffd,
+ 0x005d,
+ 0xfffd,
+ 0x005f,
+ 0x0490,
+ 0x0402,
+ 0x0403,
+ 0x0404,
+ 0x0401,
+ 0x0405,
+ 0x0406,
+ 0x0407,
+ 0x0408,
+ 0x0409,
+ 0x040a,
+ 0x040b,
+ 0x040c,
+ 0x040e,
+ 0x040f,
+ 0x042a,
+ 0x0462,
+ 0x0472,
+ 0x0474,
+ 0x046a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd2\x91",
+ "\xd1\x92",
+ "\xd1\x93",
+ "\xd1\x94",
+ "\xd1\x91",
+ "\xd1\x95",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xd1\x98",
+ "\xd1\x99",
+ "\xd1\x9a",
+ "\xd1\x9b",
+ "\xd1\x9c",
+ "\xd1\x9e",
+ "\xd1\x9f",
+ "\xef\xbf\xbd",
+ "\xd1\xa3",
+ "\xd1\xb3",
+ "\xd1\xb5",
+ "\xd1\xab",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x5b",
+ "\xef\xbf\xbd",
+ "\x5d",
+ "\xef\xbf\xbd",
+ "\x5f",
+ "\xd2\x90",
+ "\xd0\x82",
+ "\xd0\x83",
+ "\xd0\x84",
+ "\xd0\x81",
+ "\xd0\x85",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xd0\x88",
+ "\xd0\x89",
+ "\xd0\x8a",
+ "\xd0\x8b",
+ "\xd0\x8c",
+ "\xd0\x8e",
+ "\xd0\x8f",
+ "\xd0\xaa",
+ "\xd1\xa2",
+ "\xd1\xb2",
+ "\xd1\xb4",
+ "\xd1\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x0000005b => "\x5b",
+ 0x0000005d => "\x5d",
+ 0x0000005f => "\x5f",
+ 0x0000007f => "\x7f",
+ 0x00000401 => "\x64",
+ 0x00000402 => "\x61",
+ 0x00000403 => "\x62",
+ 0x00000404 => "\x63",
+ 0x00000405 => "\x65",
+ 0x00000406 => "\x66",
+ 0x00000407 => "\x67",
+ 0x00000408 => "\x68",
+ 0x00000409 => "\x69",
+ 0x0000040a => "\x6a",
+ 0x0000040b => "\x6b",
+ 0x0000040c => "\x6c",
+ 0x0000040e => "\x6d",
+ 0x0000040f => "\x6e",
+ 0x0000042a => "\x6f",
+ 0x00000451 => "\x44",
+ 0x00000452 => "\x41",
+ 0x00000453 => "\x42",
+ 0x00000454 => "\x43",
+ 0x00000455 => "\x45",
+ 0x00000456 => "\x46",
+ 0x00000457 => "\x47",
+ 0x00000458 => "\x48",
+ 0x00000459 => "\x49",
+ 0x0000045a => "\x4a",
+ 0x0000045b => "\x4b",
+ 0x0000045c => "\x4c",
+ 0x0000045e => "\x4d",
+ 0x0000045f => "\x4e",
+ 0x00000462 => "\x70",
+ 0x00000463 => "\x50",
+ 0x0000046a => "\x73",
+ 0x0000046b => "\x53",
+ 0x00000472 => "\x71",
+ 0x00000473 => "\x51",
+ 0x00000474 => "\x72",
+ 0x00000475 => "\x52",
+ 0x00000490 => "\x60",
+ 0x00000491 => "\x40",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_5427_EXT - Conversion routines for ISO_5427_EXT
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO_5427-EXT.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ repertoiremap: mnemonic,ds
+ source: ECMA registry
+ alias ISO-IR-54
+ alias ISO_5427:1981
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 40 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ 41 | 00000452 | CYRILLIC SMALL LETTER DJE
+ 42 | 00000453 | CYRILLIC SMALL LETTER GJE
+ 43 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ 44 | 00000451 | CYRILLIC SMALL LETTER IO
+ 45 | 00000455 | CYRILLIC SMALL LETTER DZE
+ 46 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 47 | 00000457 | CYRILLIC SMALL LETTER YI
+ 48 | 00000458 | CYRILLIC SMALL LETTER JE
+ 49 | 00000459 | CYRILLIC SMALL LETTER LJE
+ 4A | 0000045A | CYRILLIC SMALL LETTER NJE
+ 4B | 0000045B | CYRILLIC SMALL LETTER TSHE
+ 4C | 0000045C | CYRILLIC SMALL LETTER KJE
+ 4D | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ 4E | 0000045F | CYRILLIC SMALL LETTER DZHE
+ 50 | 00000463 | CYRILLIC SMALL LETTER YAT
+ 51 | 00000473 | CYRILLIC SMALL LETTER FITA
+ 52 | 00000475 | CYRILLIC SMALL LETTER IZHITSA
+ 53 | 0000046B | CYRILLIC SMALL LETTER BIG YUS
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5F | 0000005F | LOW LINE
+ 60 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ 61 | 00000402 | CYRILLIC CAPITAL LETTER DJE
+ 62 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ 63 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ 64 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ 65 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ 66 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ 67 | 00000407 | CYRILLIC CAPITAL LETTER YI
+ 68 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ 69 | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ 6A | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ 6B | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ 6C | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ 6D | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ 6E | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ 6F | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 70 | 00000462 | CYRILLIC CAPITAL LETTER YAT
+ 71 | 00000472 | CYRILLIC CAPITAL LETTER FITA
+ 72 | 00000474 | CYRILLIC CAPITAL LETTER IZHITSA
+ 73 | 0000046A | CYRILLIC CAPITAL LETTER BIG YUS
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5428.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5428.pm
new file mode 100644
index 0000000..0bd7da0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_5428.pm
@@ -0,0 +1,849 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_5428.pm,v 1.1 2011-10-12 23:51:42 pertusus Exp $
+
+# Conversion routines for ISO_5428.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_5428;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0xe002,
+ 0xe003,
+ 0xe009,
+ 0xe005,
+ 0xe012,
+ 0xe013,
+ 0xe014,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ab,
+ 0x00bb,
+ 0x201d,
+ 0x201c,
+ 0x0374,
+ 0x0375,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00b7,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x003b,
+ 0xfffd,
+ 0x0391,
+ 0x0392,
+ 0xfffd,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x03da,
+ 0x03dc,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03de,
+ 0x03a1,
+ 0x03a3,
+ 0xfffd,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03e0,
+ 0xfffd,
+ 0xfffd,
+ 0x03b1,
+ 0x03b2,
+ 0x03d0,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0xe01a,
+ 0xe01b,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0xe01c,
+ 0x03c1,
+ 0x03c3,
+ 0x03c2,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0xe01d,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xee\x80\x82",
+ "\xee\x80\x83",
+ "\xee\x80\x89",
+ "\xee\x80\x85",
+ "\xee\x80\x92",
+ "\xee\x80\x93",
+ "\xee\x80\x94",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x9c",
+ "\xcd\xb4",
+ "\xcd\xb5",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xb7",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\x3b",
+ "\xef\xbf\xbd",
+ "\xce\x91",
+ "\xce\x92",
+ "\xef\xbf\xbd",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xcf\x9a",
+ "\xcf\x9c",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xcf\x9e",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\xef\xbf\xbd",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xcf\xa0",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xcf\x90",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xee\x80\x9a",
+ "\xee\x80\x9b",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xee\x80\x9c",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x82",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\xee\x80\x9d",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x0000003b => "\x3f",
+ 0x0000007f => "\x7f",
+ 0x000000ab => "\x30",
+ 0x000000b7 => "\x3b",
+ 0x000000bb => "\x31",
+ 0x00000374 => "\x34",
+ 0x00000375 => "\x35",
+ 0x00000391 => "\x41",
+ 0x00000392 => "\x42",
+ 0x00000393 => "\x44",
+ 0x00000394 => "\x45",
+ 0x00000395 => "\x46",
+ 0x00000396 => "\x49",
+ 0x00000397 => "\x4a",
+ 0x00000398 => "\x4b",
+ 0x00000399 => "\x4c",
+ 0x0000039a => "\x4d",
+ 0x0000039b => "\x4e",
+ 0x0000039c => "\x4f",
+ 0x0000039d => "\x50",
+ 0x0000039e => "\x51",
+ 0x0000039f => "\x52",
+ 0x000003a0 => "\x53",
+ 0x000003a1 => "\x55",
+ 0x000003a3 => "\x56",
+ 0x000003a4 => "\x58",
+ 0x000003a5 => "\x59",
+ 0x000003a6 => "\x5a",
+ 0x000003a7 => "\x5b",
+ 0x000003a8 => "\x5c",
+ 0x000003a9 => "\x5d",
+ 0x000003b1 => "\x61",
+ 0x000003b2 => "\x62",
+ 0x000003b3 => "\x64",
+ 0x000003b4 => "\x65",
+ 0x000003b5 => "\x66",
+ 0x000003b6 => "\x69",
+ 0x000003b7 => "\x6a",
+ 0x000003b8 => "\x6b",
+ 0x000003b9 => "\x6c",
+ 0x000003ba => "\x6d",
+ 0x000003bb => "\x6e",
+ 0x000003bc => "\x6f",
+ 0x000003bd => "\x70",
+ 0x000003be => "\x71",
+ 0x000003bf => "\x72",
+ 0x000003c0 => "\x73",
+ 0x000003c1 => "\x75",
+ 0x000003c2 => "\x77",
+ 0x000003c3 => "\x76",
+ 0x000003c4 => "\x78",
+ 0x000003c5 => "\x79",
+ 0x000003c6 => "\x7a",
+ 0x000003c7 => "\x7b",
+ 0x000003c8 => "\x7c",
+ 0x000003c9 => "\x7d",
+ 0x000003d0 => "\x63",
+ 0x000003da => "\x47",
+ 0x000003dc => "\x48",
+ 0x000003de => "\x54",
+ 0x000003e0 => "\x5e",
+ 0x0000201c => "\x33",
+ 0x0000201d => "\x32",
+ 0x0000e002 => "\x21",
+ 0x0000e003 => "\x22",
+ 0x0000e005 => "\x24",
+ 0x0000e009 => "\x23",
+ 0x0000e012 => "\x25",
+ 0x0000e013 => "\x26",
+ 0x0000e014 => "\x27",
+ 0x0000e01a => "\x67",
+ 0x0000e01b => "\x68",
+ 0x0000e01c => "\x74",
+ 0x0000e01d => "\x7e",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_5428 - Conversion routines for ISO_5428
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO_5428.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-55
+ alias ISO_5428:1980
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 0000E002 | NON-SPACING GRAVE ACCENT E<lt>ISO-IR-103_C1E<gt> (not a real character)
+ 22 | 0000E003 | NON-SPACING ACUTE ACCENT E<lt>ISO-IR-103_C2E<gt> (not a real character)
+ 23 | 0000E009 | NON-SPACING DIAERESIS E<lt>ISO-IR-103_C8E<gt> (not a real character)
+ 24 | 0000E005 | NON-SPACING TILDE E<lt>ISO-IR-103_C4E<gt> (not a real character)
+ 25 | 0000E012 | GREEK NON-SPACING PSILI PNEUMATA E<lt>ISO-IR-55_25E<gt> (not a real character)
+ 26 | 0000E013 | GREEK NON-SPACING DASIA PNEUMATA E<lt>ISO-IR-55_26E<gt> (not a real character)
+ 27 | 0000E014 | GREEK NON-SPACING IOTA BELOW E<lt>ISO-IR-55_27E<gt> (not a real character)
+ 30 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 31 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 32 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 33 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 34 | 00000374 | GREEK NUMERAL SIGN (Dexia keraia)
+ 35 | 00000375 | GREEK LOWER NUMERAL SIGN (Aristeri keraia)
+ 3B | 000000B7 | MIDDLE DOT
+ 3F | 0000003B | SEMICOLON
+ 41 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 42 | 00000392 | GREEK CAPITAL LETTER BETA
+ 44 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 45 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 46 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 47 | 000003DA | GREEK LETTER STIGMA
+ 48 | 000003DC | GREEK LETTER DIGAMMA
+ 49 | 00000396 | GREEK CAPITAL LETTER ZETA
+ 4A | 00000397 | GREEK CAPITAL LETTER ETA
+ 4B | 00000398 | GREEK CAPITAL LETTER THETA
+ 4C | 00000399 | GREEK CAPITAL LETTER IOTA
+ 4D | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 4E | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 4F | 0000039C | GREEK CAPITAL LETTER MU
+ 50 | 0000039D | GREEK CAPITAL LETTER NU
+ 51 | 0000039E | GREEK CAPITAL LETTER XI
+ 52 | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 53 | 000003A0 | GREEK CAPITAL LETTER PI
+ 54 | 000003DE | GREEK LETTER KOPPA
+ 55 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 56 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 58 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 59 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 5A | 000003A6 | GREEK CAPITAL LETTER PHI
+ 5B | 000003A7 | GREEK CAPITAL LETTER CHI
+ 5C | 000003A8 | GREEK CAPITAL LETTER PSI
+ 5D | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 5E | 000003E0 | GREEK LETTER SAMPI
+ 61 | 000003B1 | GREEK SMALL LETTER ALPHA
+ 62 | 000003B2 | GREEK SMALL LETTER BETA
+ 63 | 000003D0 | GREEK BETA SYMBOL
+ 64 | 000003B3 | GREEK SMALL LETTER GAMMA
+ 65 | 000003B4 | GREEK SMALL LETTER DELTA
+ 66 | 000003B5 | GREEK SMALL LETTER EPSILON
+ 67 | 0000E01A | GREEK SMALL LETTER STIGMA E<lt>ISO-IR-55_47E<gt>
+ 68 | 0000E01B | GREEK SMALL LETTER DIGAMMA E<lt>ISO-IR-55_48E<gt>
+ 69 | 000003B6 | GREEK SMALL LETTER ZETA
+ 6A | 000003B7 | GREEK SMALL LETTER ETA
+ 6B | 000003B8 | GREEK SMALL LETTER THETA
+ 6C | 000003B9 | GREEK SMALL LETTER IOTA
+ 6D | 000003BA | GREEK SMALL LETTER KAPPA
+ 6E | 000003BB | GREEK SMALL LETTER LAMDA
+ 6F | 000003BC | GREEK SMALL LETTER MU
+ 70 | 000003BD | GREEK SMALL LETTER NU
+ 71 | 000003BE | GREEK SMALL LETTER XI
+ 72 | 000003BF | GREEK SMALL LETTER OMICRON
+ 73 | 000003C0 | GREEK SMALL LETTER PI
+ 74 | 0000E01C | GREEK SMALL LETTER KOPPA E<lt>ISO-IR-55_54E<gt>
+ 75 | 000003C1 | GREEK SMALL LETTER RHO
+ 76 | 000003C3 | GREEK SMALL LETTER SIGMA
+ 77 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ 78 | 000003C4 | GREEK SMALL LETTER TAU
+ 79 | 000003C5 | GREEK SMALL LETTER UPSILON
+ 7A | 000003C6 | GREEK SMALL LETTER PHI
+ 7B | 000003C7 | GREEK SMALL LETTER CHI
+ 7C | 000003C8 | GREEK SMALL LETTER PSI
+ 7D | 000003C9 | GREEK SMALL LETTER OMEGA
+ 7E | 0000E01D | GREEK SMALL LETTER SAMPI E<lt>ISO-IR-55_5EE<gt>
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_1.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_1.pm
new file mode 100644
index 0000000..1f0e253
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_1.pm
@@ -0,0 +1,612 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+
+# Conversion routines for ISO-8859-1.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_1;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+use constant TO_UTF8 => [
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+];
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ # FIXME: Maybe the lookup is cheaper than the call to chr().
+ $_[1] = join '',
+ map $_ > 255 ? "\x3f" : chr $_,
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8') {
+ $_[1] = join '', map TO_UTF8->[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ unpack 'C*', $_[1] ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_1 - Conversion routines for ISO-8859-1
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module contains the conversion tables and routines for ISO-8859-1.
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN
+ DF | 000000DF | LATIN SMALL LETTER SHARP S
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_10.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_10.pm
new file mode 100644
index 0000000..9e7fb92
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_10.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_10.pm,v 1.1 2011-10-12 23:51:43 pertusus Exp $
+
+# Conversion routines for ISO-8859-10.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_10;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0104,
+ 0x0112,
+ 0x0122,
+ 0x012a,
+ 0x0128,
+ 0x0136,
+ 0x00a7,
+ 0x013b,
+ 0x0110,
+ 0x0160,
+ 0x0166,
+ 0x017d,
+ 0x00ad,
+ 0x016a,
+ 0x014a,
+ 0x00b0,
+ 0x0105,
+ 0x0113,
+ 0x0123,
+ 0x012b,
+ 0x0129,
+ 0x0137,
+ 0x00b7,
+ 0x013c,
+ 0x0111,
+ 0x0161,
+ 0x0167,
+ 0x017e,
+ 0x2015,
+ 0x016b,
+ 0x014b,
+ 0x0100,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x012e,
+ 0x010c,
+ 0x00c9,
+ 0x0118,
+ 0x00cb,
+ 0x0116,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x0145,
+ 0x014c,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x0168,
+ 0x00d8,
+ 0x0172,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00df,
+ 0x0101,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x012f,
+ 0x010d,
+ 0x00e9,
+ 0x0119,
+ 0x00eb,
+ 0x0117,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x0146,
+ 0x014d,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x0169,
+ 0x00f8,
+ 0x0173,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x0138,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\x84",
+ "\xc4\x92",
+ "\xc4\xa2",
+ "\xc4\xaa",
+ "\xc4\xa8",
+ "\xc4\xb6",
+ "\xc2\xa7",
+ "\xc4\xbb",
+ "\xc4\x90",
+ "\xc5\xa0",
+ "\xc5\xa6",
+ "\xc5\xbd",
+ "\xc2\xad",
+ "\xc5\xaa",
+ "\xc5\x8a",
+ "\xc2\xb0",
+ "\xc4\x85",
+ "\xc4\x93",
+ "\xc4\xa3",
+ "\xc4\xab",
+ "\xc4\xa9",
+ "\xc4\xb7",
+ "\xc2\xb7",
+ "\xc4\xbc",
+ "\xc4\x91",
+ "\xc5\xa1",
+ "\xc5\xa7",
+ "\xc5\xbe",
+ "\xe2\x80\x95",
+ "\xc5\xab",
+ "\xc5\x8b",
+ "\xc4\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc4\xae",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc4\x98",
+ "\xc3\x8b",
+ "\xc4\x96",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc5\x85",
+ "\xc5\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc5\xa8",
+ "\xc3\x98",
+ "\xc5\xb2",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc4\x81",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc4\xaf",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc4\x99",
+ "\xc3\xab",
+ "\xc4\x97",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc5\x86",
+ "\xc5\x8d",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc5\xa9",
+ "\xc3\xb8",
+ "\xc5\xb3",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc4\xb8",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a7 => "\xa7",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b7 => "\xb7",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c9 => "\xc9",
+ 0x000000cb => "\xcb",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d0 => "\xd0",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d8 => "\xd8",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000de => "\xde",
+ 0x000000df => "\xdf",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e9 => "\xe9",
+ 0x000000eb => "\xeb",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f8 => "\xf8",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x00000100 => "\xc0",
+ 0x00000101 => "\xe0",
+ 0x00000104 => "\xa1",
+ 0x00000105 => "\xb1",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x00000110 => "\xa9",
+ 0x00000111 => "\xb9",
+ 0x00000112 => "\xa2",
+ 0x00000113 => "\xb2",
+ 0x00000116 => "\xcc",
+ 0x00000117 => "\xec",
+ 0x00000118 => "\xca",
+ 0x00000119 => "\xea",
+ 0x00000122 => "\xa3",
+ 0x00000123 => "\xb3",
+ 0x00000128 => "\xa5",
+ 0x00000129 => "\xb5",
+ 0x0000012a => "\xa4",
+ 0x0000012b => "\xb4",
+ 0x0000012e => "\xc7",
+ 0x0000012f => "\xe7",
+ 0x00000136 => "\xa6",
+ 0x00000137 => "\xb6",
+ 0x00000138 => "\xff",
+ 0x0000013b => "\xa8",
+ 0x0000013c => "\xb8",
+ 0x00000145 => "\xd1",
+ 0x00000146 => "\xf1",
+ 0x0000014a => "\xaf",
+ 0x0000014b => "\xbf",
+ 0x0000014c => "\xd2",
+ 0x0000014d => "\xf2",
+ 0x00000160 => "\xaa",
+ 0x00000161 => "\xba",
+ 0x00000166 => "\xab",
+ 0x00000167 => "\xbb",
+ 0x00000168 => "\xd7",
+ 0x00000169 => "\xf7",
+ 0x0000016a => "\xae",
+ 0x0000016b => "\xbe",
+ 0x00000172 => "\xd9",
+ 0x00000173 => "\xf9",
+ 0x0000017d => "\xac",
+ 0x0000017e => "\xbc",
+ 0x00002015 => "\xbd",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_10 - Conversion routines for ISO-8859-10
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-10.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-157
+ alias ISO_8859-10:1992
+ alias ISO_8859-10
+ alias L6
+ alias LATIN6
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A2 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON
+ A3 | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA
+ A4 | 0000012A | LATIN CAPITAL LETTER I WITH MACRON
+ A5 | 00000128 | LATIN CAPITAL LETTER I WITH TILDE
+ A6 | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA
+ A9 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ AA | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ AB | 00000166 | LATIN CAPITAL LETTER T WITH STROKE
+ AC | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000016A | LATIN CAPITAL LETTER U WITH MACRON
+ AF | 0000014A | LATIN CAPITAL LETTER ENG (Sami)
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ B2 | 00000113 | LATIN SMALL LETTER E WITH MACRON
+ B3 | 00000123 | LATIN SMALL LETTER G WITH CEDILLA
+ B4 | 0000012B | LATIN SMALL LETTER I WITH MACRON
+ B5 | 00000129 | LATIN SMALL LETTER I WITH TILDE
+ B6 | 00000137 | LATIN SMALL LETTER K WITH CEDILLA
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 0000013C | LATIN SMALL LETTER L WITH CEDILLA
+ B9 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ BA | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BB | 00000167 | LATIN SMALL LETTER T WITH STROKE
+ BC | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BD | 00002015 | HORIZONTAL BAR
+ BE | 0000016B | LATIN SMALL LETTER U WITH MACRON
+ BF | 0000014B | LATIN SMALL LETTER ENG (Sami)
+ C0 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ D1 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA
+ D2 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 00000168 | LATIN CAPITAL LETTER U WITH TILDE
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000101 | LATIN SMALL LETTER A WITH MACRON
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 0000012F | LATIN SMALL LETTER I WITH OGONEK
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA
+ F2 | 0000014D | LATIN SMALL LETTER O WITH MACRON
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 00000169 | LATIN SMALL LETTER U WITH TILDE
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 00000173 | LATIN SMALL LETTER U WITH OGONEK
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 00000138 | LATIN SMALL LETTER KRA (Greenlandic)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_11.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_11.pm
new file mode 100644
index 0000000..654bbee
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_11.pm
@@ -0,0 +1,1070 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_11.pm,v 1.1 2011-10-12 23:51:43 pertusus Exp $
+
+# Conversion routines for ISO-8859-11.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_11;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a0,
+ 0x0e01,
+ 0x0e02,
+ 0x0e03,
+ 0x0e04,
+ 0x0e05,
+ 0x0e06,
+ 0x0e07,
+ 0x0e08,
+ 0x0e09,
+ 0x0e0a,
+ 0x0e0b,
+ 0x0e0c,
+ 0x0e0d,
+ 0x0e0e,
+ 0x0e0f,
+ 0x0e10,
+ 0x0e11,
+ 0x0e12,
+ 0x0e13,
+ 0x0e14,
+ 0x0e15,
+ 0x0e16,
+ 0x0e17,
+ 0x0e18,
+ 0x0e19,
+ 0x0e1a,
+ 0x0e1b,
+ 0x0e1c,
+ 0x0e1d,
+ 0x0e1e,
+ 0x0e1f,
+ 0x0e20,
+ 0x0e21,
+ 0x0e22,
+ 0x0e23,
+ 0x0e24,
+ 0x0e25,
+ 0x0e26,
+ 0x0e27,
+ 0x0e28,
+ 0x0e29,
+ 0x0e2a,
+ 0x0e2b,
+ 0x0e2c,
+ 0x0e2d,
+ 0x0e2e,
+ 0x0e2f,
+ 0x0e30,
+ 0x0e31,
+ 0x0e32,
+ 0x0e33,
+ 0x0e34,
+ 0x0e35,
+ 0x0e36,
+ 0x0e37,
+ 0x0e38,
+ 0x0e39,
+ 0x0e3a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0e3f,
+ 0x0e40,
+ 0x0e41,
+ 0x0e42,
+ 0x0e43,
+ 0x0e44,
+ 0x0e45,
+ 0x0e46,
+ 0x0e47,
+ 0x0e48,
+ 0x0e49,
+ 0x0e4a,
+ 0x0e4b,
+ 0x0e4c,
+ 0x0e4d,
+ 0x0e4e,
+ 0x0e4f,
+ 0x0e50,
+ 0x0e51,
+ 0x0e52,
+ 0x0e53,
+ 0x0e54,
+ 0x0e55,
+ 0x0e56,
+ 0x0e57,
+ 0x0e58,
+ 0x0e59,
+ 0x0e5a,
+ 0x0e5b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xe0\xb8\x81",
+ "\xe0\xb8\x82",
+ "\xe0\xb8\x83",
+ "\xe0\xb8\x84",
+ "\xe0\xb8\x85",
+ "\xe0\xb8\x86",
+ "\xe0\xb8\x87",
+ "\xe0\xb8\x88",
+ "\xe0\xb8\x89",
+ "\xe0\xb8\x8a",
+ "\xe0\xb8\x8b",
+ "\xe0\xb8\x8c",
+ "\xe0\xb8\x8d",
+ "\xe0\xb8\x8e",
+ "\xe0\xb8\x8f",
+ "\xe0\xb8\x90",
+ "\xe0\xb8\x91",
+ "\xe0\xb8\x92",
+ "\xe0\xb8\x93",
+ "\xe0\xb8\x94",
+ "\xe0\xb8\x95",
+ "\xe0\xb8\x96",
+ "\xe0\xb8\x97",
+ "\xe0\xb8\x98",
+ "\xe0\xb8\x99",
+ "\xe0\xb8\x9a",
+ "\xe0\xb8\x9b",
+ "\xe0\xb8\x9c",
+ "\xe0\xb8\x9d",
+ "\xe0\xb8\x9e",
+ "\xe0\xb8\x9f",
+ "\xe0\xb8\xa0",
+ "\xe0\xb8\xa1",
+ "\xe0\xb8\xa2",
+ "\xe0\xb8\xa3",
+ "\xe0\xb8\xa4",
+ "\xe0\xb8\xa5",
+ "\xe0\xb8\xa6",
+ "\xe0\xb8\xa7",
+ "\xe0\xb8\xa8",
+ "\xe0\xb8\xa9",
+ "\xe0\xb8\xaa",
+ "\xe0\xb8\xab",
+ "\xe0\xb8\xac",
+ "\xe0\xb8\xad",
+ "\xe0\xb8\xae",
+ "\xe0\xb8\xaf",
+ "\xe0\xb8\xb0",
+ "\xe0\xb8\xb1",
+ "\xe0\xb8\xb2",
+ "\xe0\xb8\xb3",
+ "\xe0\xb8\xb4",
+ "\xe0\xb8\xb5",
+ "\xe0\xb8\xb6",
+ "\xe0\xb8\xb7",
+ "\xe0\xb8\xb8",
+ "\xe0\xb8\xb9",
+ "\xe0\xb8\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe0\xb8\xbf",
+ "\xe0\xb9\x80",
+ "\xe0\xb9\x81",
+ "\xe0\xb9\x82",
+ "\xe0\xb9\x83",
+ "\xe0\xb9\x84",
+ "\xe0\xb9\x85",
+ "\xe0\xb9\x86",
+ "\xe0\xb9\x87",
+ "\xe0\xb9\x88",
+ "\xe0\xb9\x89",
+ "\xe0\xb9\x8a",
+ "\xe0\xb9\x8b",
+ "\xe0\xb9\x8c",
+ "\xe0\xb9\x8d",
+ "\xe0\xb9\x8e",
+ "\xe0\xb9\x8f",
+ "\xe0\xb9\x90",
+ "\xe0\xb9\x91",
+ "\xe0\xb9\x92",
+ "\xe0\xb9\x93",
+ "\xe0\xb9\x94",
+ "\xe0\xb9\x95",
+ "\xe0\xb9\x96",
+ "\xe0\xb9\x97",
+ "\xe0\xb9\x98",
+ "\xe0\xb9\x99",
+ "\xe0\xb9\x9a",
+ "\xe0\xb9\x9b",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x00000e01 => "\xa1",
+ 0x00000e02 => "\xa2",
+ 0x00000e03 => "\xa3",
+ 0x00000e04 => "\xa4",
+ 0x00000e05 => "\xa5",
+ 0x00000e06 => "\xa6",
+ 0x00000e07 => "\xa7",
+ 0x00000e08 => "\xa8",
+ 0x00000e09 => "\xa9",
+ 0x00000e0a => "\xaa",
+ 0x00000e0b => "\xab",
+ 0x00000e0c => "\xac",
+ 0x00000e0d => "\xad",
+ 0x00000e0e => "\xae",
+ 0x00000e0f => "\xaf",
+ 0x00000e10 => "\xb0",
+ 0x00000e11 => "\xb1",
+ 0x00000e12 => "\xb2",
+ 0x00000e13 => "\xb3",
+ 0x00000e14 => "\xb4",
+ 0x00000e15 => "\xb5",
+ 0x00000e16 => "\xb6",
+ 0x00000e17 => "\xb7",
+ 0x00000e18 => "\xb8",
+ 0x00000e19 => "\xb9",
+ 0x00000e1a => "\xba",
+ 0x00000e1b => "\xbb",
+ 0x00000e1c => "\xbc",
+ 0x00000e1d => "\xbd",
+ 0x00000e1e => "\xbe",
+ 0x00000e1f => "\xbf",
+ 0x00000e20 => "\xc0",
+ 0x00000e21 => "\xc1",
+ 0x00000e22 => "\xc2",
+ 0x00000e23 => "\xc3",
+ 0x00000e24 => "\xc4",
+ 0x00000e25 => "\xc5",
+ 0x00000e26 => "\xc6",
+ 0x00000e27 => "\xc7",
+ 0x00000e28 => "\xc8",
+ 0x00000e29 => "\xc9",
+ 0x00000e2a => "\xca",
+ 0x00000e2b => "\xcb",
+ 0x00000e2c => "\xcc",
+ 0x00000e2d => "\xcd",
+ 0x00000e2e => "\xce",
+ 0x00000e2f => "\xcf",
+ 0x00000e30 => "\xd0",
+ 0x00000e31 => "\xd1",
+ 0x00000e32 => "\xd2",
+ 0x00000e33 => "\xd3",
+ 0x00000e34 => "\xd4",
+ 0x00000e35 => "\xd5",
+ 0x00000e36 => "\xd6",
+ 0x00000e37 => "\xd7",
+ 0x00000e38 => "\xd8",
+ 0x00000e39 => "\xd9",
+ 0x00000e3a => "\xda",
+ 0x00000e3f => "\xdf",
+ 0x00000e40 => "\xe0",
+ 0x00000e41 => "\xe1",
+ 0x00000e42 => "\xe2",
+ 0x00000e43 => "\xe3",
+ 0x00000e44 => "\xe4",
+ 0x00000e45 => "\xe5",
+ 0x00000e46 => "\xe6",
+ 0x00000e47 => "\xe7",
+ 0x00000e48 => "\xe8",
+ 0x00000e49 => "\xe9",
+ 0x00000e4a => "\xea",
+ 0x00000e4b => "\xeb",
+ 0x00000e4c => "\xec",
+ 0x00000e4d => "\xed",
+ 0x00000e4e => "\xee",
+ 0x00000e4f => "\xef",
+ 0x00000e50 => "\xf0",
+ 0x00000e51 => "\xf1",
+ 0x00000e52 => "\xf2",
+ 0x00000e53 => "\xf3",
+ 0x00000e54 => "\xf4",
+ 0x00000e55 => "\xf5",
+ 0x00000e56 => "\xf6",
+ 0x00000e57 => "\xf7",
+ 0x00000e58 => "\xf8",
+ 0x00000e59 => "\xf9",
+ 0x00000e5a => "\xfa",
+ 0x00000e5b => "\xfb",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_11 - Conversion routines for ISO-8859-11
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-11.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ source: Guido Flohr E<lt>guido@imperia.netE<gt>
+
+ The encoding ISO-8859-11 is not yet official at the time of this writing.
+ It is based on TIS-620, but with the addition of the non-breaking space.
+
+ The mapping of 0xfc-0xff is identical to Latin-1 but this should be
+ checked.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000E01 | THAI CHARACTER KO KAI
+ A2 | 00000E02 | THAI CHARACTER KHO KHAI
+ A3 | 00000E03 | THAI CHARACTER KHO KHUAT
+ A4 | 00000E04 | THAI CHARACTER KHO KHWAI
+ A5 | 00000E05 | THAI CHARACTER KHO KHON
+ A6 | 00000E06 | THAI CHARACTER KHO RAKHANG
+ A7 | 00000E07 | THAI CHARACTER NGO NGU
+ A8 | 00000E08 | THAI CHARACTER CHO CHAN
+ A9 | 00000E09 | THAI CHARACTER CHO CHING
+ AA | 00000E0A | THAI CHARACTER CHO CHANG
+ AB | 00000E0B | THAI CHARACTER SO SO
+ AC | 00000E0C | THAI CHARACTER CHO CHOE
+ AD | 00000E0D | THAI CHARACTER YO YING
+ AE | 00000E0E | THAI CHARACTER DO CHADA
+ AF | 00000E0F | THAI CHARACTER TO PATAK
+ B0 | 00000E10 | THAI CHARACTER THO THAN
+ B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO
+ B2 | 00000E12 | THAI CHARACTER THO PHUTHAO
+ B3 | 00000E13 | THAI CHARACTER NO NEN
+ B4 | 00000E14 | THAI CHARACTER DO DEK
+ B5 | 00000E15 | THAI CHARACTER TO TAO
+ B6 | 00000E16 | THAI CHARACTER THO THUNG
+ B7 | 00000E17 | THAI CHARACTER THO THAHAN
+ B8 | 00000E18 | THAI CHARACTER THO THONG
+ B9 | 00000E19 | THAI CHARACTER NO NU
+ BA | 00000E1A | THAI CHARACTER BO BAIMAI
+ BB | 00000E1B | THAI CHARACTER PO PLA
+ BC | 00000E1C | THAI CHARACTER PHO PHUNG
+ BD | 00000E1D | THAI CHARACTER FO FA
+ BE | 00000E1E | THAI CHARACTER PHO PHAN
+ BF | 00000E1F | THAI CHARACTER FO FAN
+ C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO
+ C1 | 00000E21 | THAI CHARACTER MO MA
+ C2 | 00000E22 | THAI CHARACTER YO YAK
+ C3 | 00000E23 | THAI CHARACTER RO RUA
+ C4 | 00000E24 | THAI CHARACTER RU
+ C5 | 00000E25 | THAI CHARACTER LO LING
+ C6 | 00000E26 | THAI CHARACTER LU
+ C7 | 00000E27 | THAI CHARACTER WO WAEN
+ C8 | 00000E28 | THAI CHARACTER SO SALA
+ C9 | 00000E29 | THAI CHARACTER SO RUSI
+ CA | 00000E2A | THAI CHARACTER SO SUA
+ CB | 00000E2B | THAI CHARACTER HO HIP
+ CC | 00000E2C | THAI CHARACTER LO CHULA
+ CD | 00000E2D | THAI CHARACTER O ANG
+ CE | 00000E2E | THAI CHARACTER HO NOKHUK
+ CF | 00000E2F | THAI CHARACTER PAIYANNOI
+ D0 | 00000E30 | THAI CHARACTER SARA A
+ D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT
+ D2 | 00000E32 | THAI CHARACTER SARA AA
+ D3 | 00000E33 | THAI CHARACTER SARA AM
+ D4 | 00000E34 | THAI CHARACTER SARA I
+ D5 | 00000E35 | THAI CHARACTER SARA II
+ D6 | 00000E36 | THAI CHARACTER SARA UE
+ D7 | 00000E37 | THAI CHARACTER SARA UEE
+ D8 | 00000E38 | THAI CHARACTER SARA U
+ D9 | 00000E39 | THAI CHARACTER SARA UU
+ DA | 00000E3A | THAI CHARACTER PHINTHU
+ DF | 00000E3F | THAI CHARACTER SYMBOL BAHT
+ E0 | 00000E40 | THAI CHARACTER SARA E
+ E1 | 00000E41 | THAI CHARACTER SARA AE
+ E2 | 00000E42 | THAI CHARACTER SARA O
+ E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN
+ E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI
+ E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO
+ E6 | 00000E46 | THAI CHARACTER MAIYAMOK
+ E7 | 00000E47 | THAI CHARACTER MAITAIKHU
+ E8 | 00000E48 | THAI CHARACTER MAI EK
+ E9 | 00000E49 | THAI CHARACTER MAI THO
+ EA | 00000E4A | THAI CHARACTER MAI TRI
+ EB | 00000E4B | THAI CHARACTER MAI CHATTAWA
+ EC | 00000E4C | THAI CHARACTER THANTHAKHAT
+ ED | 00000E4D | THAI CHARACTER NIKHAHIT
+ EE | 00000E4E | THAI CHARACTER YAMAKKAN
+ EF | 00000E4F | THAI CHARACTER FONGMAN
+ F0 | 00000E50 | THAI DIGIT ZERO
+ F1 | 00000E51 | THAI DIGIT ONE
+ F2 | 00000E52 | THAI DIGIT TWO
+ F3 | 00000E53 | THAI DIGIT THREE
+ F4 | 00000E54 | THAI DIGIT FOUR
+ F5 | 00000E55 | THAI DIGIT FIVE
+ F6 | 00000E56 | THAI DIGIT SIX
+ F7 | 00000E57 | THAI DIGIT SEVEN
+ F8 | 00000E58 | THAI DIGIT EIGHT
+ F9 | 00000E59 | THAI DIGIT NINE
+ FA | 00000E5A | THAI CHARACTER ANGKHANKHU
+ FB | 00000E5B | THAI CHARACTER KHOMUT
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_13.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_13.pm
new file mode 100644
index 0000000..f47506f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_13.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_13.pm,v 1.1 2011-10-12 23:51:43 pertusus Exp $
+
+# Conversion routines for ISO-8859-13.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_13;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x201d,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x201e,
+ 0x00a6,
+ 0x00a7,
+ 0x00d8,
+ 0x00a9,
+ 0x0156,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00c6,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x201c,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00f8,
+ 0x00b9,
+ 0x0157,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00e6,
+ 0x0104,
+ 0x012e,
+ 0x0100,
+ 0x0106,
+ 0x00c4,
+ 0x00c5,
+ 0x0118,
+ 0x0112,
+ 0x010c,
+ 0x00c9,
+ 0x0179,
+ 0x0116,
+ 0x0122,
+ 0x0136,
+ 0x012a,
+ 0x013b,
+ 0x0160,
+ 0x0143,
+ 0x0145,
+ 0x00d3,
+ 0x014c,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x0172,
+ 0x0141,
+ 0x015a,
+ 0x016a,
+ 0x00dc,
+ 0x017b,
+ 0x017d,
+ 0x00df,
+ 0x0105,
+ 0x012f,
+ 0x0101,
+ 0x0107,
+ 0x00e4,
+ 0x00e5,
+ 0x0119,
+ 0x0113,
+ 0x010d,
+ 0x00e9,
+ 0x017a,
+ 0x0117,
+ 0x0123,
+ 0x0137,
+ 0x012b,
+ 0x013c,
+ 0x0161,
+ 0x0144,
+ 0x0146,
+ 0x00f3,
+ 0x014d,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x0173,
+ 0x0142,
+ 0x015b,
+ 0x016b,
+ 0x00fc,
+ 0x017c,
+ 0x017e,
+ 0x2019,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xe2\x80\x9d",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xe2\x80\x9e",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc3\x98",
+ "\xc2\xa9",
+ "\xc5\x96",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc3\x86",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xe2\x80\x9c",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc3\xb8",
+ "\xc2\xb9",
+ "\xc5\x97",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc3\xa6",
+ "\xc4\x84",
+ "\xc4\xae",
+ "\xc4\x80",
+ "\xc4\x86",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc4\x98",
+ "\xc4\x92",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc5\xb9",
+ "\xc4\x96",
+ "\xc4\xa2",
+ "\xc4\xb6",
+ "\xc4\xaa",
+ "\xc4\xbb",
+ "\xc5\xa0",
+ "\xc5\x83",
+ "\xc5\x85",
+ "\xc3\x93",
+ "\xc5\x8c",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc5\xb2",
+ "\xc5\x81",
+ "\xc5\x9a",
+ "\xc5\xaa",
+ "\xc3\x9c",
+ "\xc5\xbb",
+ "\xc5\xbd",
+ "\xc3\x9f",
+ "\xc4\x85",
+ "\xc4\xaf",
+ "\xc4\x81",
+ "\xc4\x87",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc4\x99",
+ "\xc4\x93",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc5\xba",
+ "\xc4\x97",
+ "\xc4\xa3",
+ "\xc4\xb7",
+ "\xc4\xab",
+ "\xc4\xbc",
+ "\xc5\xa1",
+ "\xc5\x84",
+ "\xc5\x86",
+ "\xc3\xb3",
+ "\xc5\x8d",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc5\xb3",
+ "\xc5\x82",
+ "\xc5\x9b",
+ "\xc5\xab",
+ "\xc3\xbc",
+ "\xc5\xbc",
+ "\xc5\xbe",
+ "\xe2\x80\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b9 => "\xb9",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xaf",
+ 0x000000c9 => "\xc9",
+ 0x000000d3 => "\xd3",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xa8",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xbf",
+ 0x000000e9 => "\xe9",
+ 0x000000f3 => "\xf3",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xb8",
+ 0x000000fc => "\xfc",
+ 0x00000100 => "\xc2",
+ 0x00000101 => "\xe2",
+ 0x00000104 => "\xc0",
+ 0x00000105 => "\xe0",
+ 0x00000106 => "\xc3",
+ 0x00000107 => "\xe3",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x00000112 => "\xc7",
+ 0x00000113 => "\xe7",
+ 0x00000116 => "\xcb",
+ 0x00000117 => "\xeb",
+ 0x00000118 => "\xc6",
+ 0x00000119 => "\xe6",
+ 0x00000122 => "\xcc",
+ 0x00000123 => "\xec",
+ 0x0000012a => "\xce",
+ 0x0000012b => "\xee",
+ 0x0000012e => "\xc1",
+ 0x0000012f => "\xe1",
+ 0x00000136 => "\xcd",
+ 0x00000137 => "\xed",
+ 0x0000013b => "\xcf",
+ 0x0000013c => "\xef",
+ 0x00000141 => "\xd9",
+ 0x00000142 => "\xf9",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000145 => "\xd2",
+ 0x00000146 => "\xf2",
+ 0x0000014c => "\xd4",
+ 0x0000014d => "\xf4",
+ 0x00000156 => "\xaa",
+ 0x00000157 => "\xba",
+ 0x0000015a => "\xda",
+ 0x0000015b => "\xfa",
+ 0x00000160 => "\xd0",
+ 0x00000161 => "\xf0",
+ 0x0000016a => "\xdb",
+ 0x0000016b => "\xfb",
+ 0x00000172 => "\xd8",
+ 0x00000173 => "\xf8",
+ 0x00000179 => "\xca",
+ 0x0000017a => "\xea",
+ 0x0000017b => "\xdd",
+ 0x0000017c => "\xfd",
+ 0x0000017d => "\xde",
+ 0x0000017e => "\xfe",
+ 0x00002019 => "\xff",
+ 0x0000201c => "\xb4",
+ 0x0000201d => "\xa1",
+ 0x0000201e => "\xa5",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_13 - Conversion routines for ISO-8859-13
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-13.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias ISO-IR-179
+ alias LATIN7
+ alias L7
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000C6 | LATIN CAPITAL LETTER AE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 00000157 | LATIN SMALL LETTER R WITH CEDILLA
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000E6 | LATIN SMALL LETTER AE
+ C0 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ C1 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK
+ C2 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON
+ C3 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ C7 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ CB | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE
+ CC | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA
+ CD | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA
+ CE | 0000012A | LATIN CAPITAL LETTER I WITH MACRON
+ CF | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA
+ D0 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK
+ D9 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ DA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ DB | 0000016A | LATIN CAPITAL LETTER U WITH MACRON
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ DE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ DF | 000000DF | LATIN SMALL LETTER SHARP S
+ E0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ E1 | 0000012F | LATIN SMALL LETTER I WITH OGONEK
+ E2 | 00000101 | LATIN SMALL LETTER A WITH MACRON
+ E3 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ E7 | 00000113 | LATIN SMALL LETTER E WITH MACRON
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ EB | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE
+ EC | 00000123 | LATIN SMALL LETTER G WITH CEDILLA
+ ED | 00000137 | LATIN SMALL LETTER K WITH CEDILLA
+ EE | 0000012B | LATIN SMALL LETTER I WITH MACRON
+ EF | 0000013C | LATIN SMALL LETTER L WITH CEDILLA
+ F0 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 0000014D | LATIN SMALL LETTER O WITH MACRON
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000173 | LATIN SMALL LETTER U WITH OGONEK
+ F9 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ FA | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ FB | 0000016B | LATIN SMALL LETTER U WITH MACRON
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ FE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ FF | 00002019 | RIGHT SINGLE QUOTATION MARK
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_14.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_14.pm
new file mode 100644
index 0000000..e21cc3a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_14.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_14.pm,v 1.1 2011-10-12 23:51:43 pertusus Exp $
+
+# Conversion routines for ISO-8859-14.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_14;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x1e02,
+ 0x1e03,
+ 0x00a3,
+ 0x010a,
+ 0x010b,
+ 0x1e0a,
+ 0x00a7,
+ 0x1e80,
+ 0x00a9,
+ 0x1e82,
+ 0x1e0b,
+ 0x1ef2,
+ 0x00ad,
+ 0x00ae,
+ 0x0178,
+ 0x1e1e,
+ 0x1e1f,
+ 0x0120,
+ 0x0121,
+ 0x1e40,
+ 0x1e41,
+ 0x00b6,
+ 0x1e56,
+ 0x1e81,
+ 0x1e57,
+ 0x1e83,
+ 0x1e60,
+ 0x1ef3,
+ 0x1e84,
+ 0x1e85,
+ 0x1e61,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x0174,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x1e6a,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x0176,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x0175,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x1e6b,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x0177,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xe1\xb8\x82",
+ "\xe1\xb8\x83",
+ "\xc2\xa3",
+ "\xc4\x8a",
+ "\xc4\x8b",
+ "\xe1\xb8\x8a",
+ "\xc2\xa7",
+ "\xe1\xba\x80",
+ "\xc2\xa9",
+ "\xe1\xba\x82",
+ "\xe1\xb8\x8b",
+ "\xe1\xbb\xb2",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc5\xb8",
+ "\xe1\xb8\x9e",
+ "\xe1\xb8\x9f",
+ "\xc4\xa0",
+ "\xc4\xa1",
+ "\xe1\xb9\x80",
+ "\xe1\xb9\x81",
+ "\xc2\xb6",
+ "\xe1\xb9\x96",
+ "\xe1\xba\x81",
+ "\xe1\xb9\x97",
+ "\xe1\xba\x83",
+ "\xe1\xb9\xa0",
+ "\xe1\xbb\xb3",
+ "\xe1\xba\x84",
+ "\xe1\xba\x85",
+ "\xe1\xb9\xa1",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc5\xb4",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xe1\xb9\xaa",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc5\xb6",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc5\xb5",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xe1\xb9\xab",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc5\xb7",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a3 => "\xa3",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b6 => "\xb6",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000ff => "\xff",
+ 0x0000010a => "\xa4",
+ 0x0000010b => "\xa5",
+ 0x00000120 => "\xb2",
+ 0x00000121 => "\xb3",
+ 0x00000174 => "\xd0",
+ 0x00000175 => "\xf0",
+ 0x00000176 => "\xde",
+ 0x00000177 => "\xfe",
+ 0x00000178 => "\xaf",
+ 0x00001e02 => "\xa1",
+ 0x00001e03 => "\xa2",
+ 0x00001e0a => "\xa6",
+ 0x00001e0b => "\xab",
+ 0x00001e1e => "\xb0",
+ 0x00001e1f => "\xb1",
+ 0x00001e40 => "\xb4",
+ 0x00001e41 => "\xb5",
+ 0x00001e56 => "\xb7",
+ 0x00001e57 => "\xb9",
+ 0x00001e60 => "\xbb",
+ 0x00001e61 => "\xbf",
+ 0x00001e6a => "\xd7",
+ 0x00001e6b => "\xf7",
+ 0x00001e80 => "\xa8",
+ 0x00001e81 => "\xb8",
+ 0x00001e82 => "\xaa",
+ 0x00001e83 => "\xba",
+ 0x00001e84 => "\xbd",
+ 0x00001e85 => "\xbe",
+ 0x00001ef2 => "\xac",
+ 0x00001ef3 => "\xbc",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_14 - Conversion routines for ISO-8859-14
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-14.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias LATIN8
+ alias L8
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00001E02 | LATIN CAPITAL LETTER B WITH DOT ABOVE
+ A2 | 00001E03 | LATIN SMALL LETTER B WITH DOT ABOVE
+ A3 | 000000A3 | POUND SIGN
+ A4 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE
+ A5 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE
+ A6 | 00001E0A | LATIN CAPITAL LETTER D WITH DOT ABOVE
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 00001E80 | LATIN CAPITAL LETTER W WITH GRAVE
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00001E82 | LATIN CAPITAL LETTER W WITH ACUTE
+ AB | 00001E0B | LATIN SMALL LETTER D WITH DOT ABOVE
+ AC | 00001EF2 | LATIN CAPITAL LETTER Y WITH GRAVE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ B0 | 00001E1E | LATIN CAPITAL LETTER F WITH DOT ABOVE
+ B1 | 00001E1F | LATIN SMALL LETTER F WITH DOT ABOVE
+ B2 | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE
+ B3 | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE
+ B4 | 00001E40 | LATIN CAPITAL LETTER M WITH DOT ABOVE
+ B5 | 00001E41 | LATIN SMALL LETTER M WITH DOT ABOVE
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 00001E56 | LATIN CAPITAL LETTER P WITH DOT ABOVE
+ B8 | 00001E81 | LATIN SMALL LETTER W WITH GRAVE
+ B9 | 00001E57 | LATIN SMALL LETTER P WITH DOT ABOVE
+ BA | 00001E83 | LATIN SMALL LETTER W WITH ACUTE
+ BB | 00001E60 | LATIN CAPITAL LETTER S WITH DOT ABOVE
+ BC | 00001EF3 | LATIN SMALL LETTER Y WITH GRAVE
+ BD | 00001E84 | LATIN CAPITAL LETTER W WITH DIAERESIS
+ BE | 00001E85 | LATIN SMALL LETTER W WITH DIAERESIS
+ BF | 00001E61 | LATIN SMALL LETTER S WITH DOT ABOVE
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 00000174 | LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 00001E6A | LATIN CAPITAL LETTER T WITH DOT ABOVE
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 00000176 | LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+ DF | 000000DF | LATIN SMALL LETTER SHARP S
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 00000175 | LATIN SMALL LETTER W WITH CIRCUMFLEX
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 00001E6B | LATIN SMALL LETTER T WITH DOT ABOVE
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 00000177 | LATIN SMALL LETTER Y WITH CIRCUMFLEX
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_15.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_15.pm
new file mode 100644
index 0000000..bdd2709
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_15.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_15.pm,v 1.1 2011-10-12 23:51:43 pertusus Exp $
+
+# Conversion routines for ISO-8859-15.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_15;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x20ac,
+ 0x00a5,
+ 0x0160,
+ 0x00a7,
+ 0x0161,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x017d,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x017e,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x0152,
+ 0x0153,
+ 0x0178,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xe2\x82\xac",
+ "\xc2\xa5",
+ "\xc5\xa0",
+ "\xc2\xa7",
+ "\xc5\xa1",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc5\xbd",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc5\xbe",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xc5\xb8",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a5 => "\xa5",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d0 => "\xd0",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000de => "\xde",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x00000152 => "\xbc",
+ 0x00000153 => "\xbd",
+ 0x00000160 => "\xa6",
+ 0x00000161 => "\xa8",
+ 0x00000178 => "\xbe",
+ 0x0000017d => "\xb4",
+ 0x0000017e => "\xb8",
+ 0x000020ac => "\xa4",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_15 - Conversion routines for ISO-8859-15
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-15.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000020AC | EURO SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 00000152 | LATIN CAPITAL LIGATURE OE
+ BD | 00000153 | LATIN SMALL LIGATURE OE
+ BE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN
+ DF | 000000DF | LATIN SMALL LETTER SHARP S
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_16.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_16.pm
new file mode 100644
index 0000000..c61d43f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_16.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_16.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-16.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_16;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0104,
+ 0x0105,
+ 0x0141,
+ 0x20ac,
+ 0x201e,
+ 0x0160,
+ 0x00a7,
+ 0x0161,
+ 0x00a9,
+ 0x0218,
+ 0x00ab,
+ 0x0179,
+ 0x00ad,
+ 0x017a,
+ 0x017b,
+ 0x00b0,
+ 0x00b1,
+ 0x010c,
+ 0x0142,
+ 0x017d,
+ 0x201d,
+ 0x00b6,
+ 0x00b7,
+ 0x017e,
+ 0x010d,
+ 0x0219,
+ 0x00bb,
+ 0x0152,
+ 0x0153,
+ 0x0178,
+ 0x017c,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x0102,
+ 0x00c4,
+ 0x0106,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x0110,
+ 0x0143,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x0150,
+ 0x00d6,
+ 0x015a,
+ 0x0170,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x0118,
+ 0x021a,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x0103,
+ 0x00e4,
+ 0x0107,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x0111,
+ 0x0144,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x0151,
+ 0x00f6,
+ 0x015b,
+ 0x0171,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x0119,
+ 0x021b,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\x84",
+ "\xc4\x85",
+ "\xc5\x81",
+ "\xe2\x82\xac",
+ "\xe2\x80\x9e",
+ "\xc5\xa0",
+ "\xc2\xa7",
+ "\xc5\xa1",
+ "\xc2\xa9",
+ "\xc8\x98",
+ "\xc2\xab",
+ "\xc5\xb9",
+ "\xc2\xad",
+ "\xc5\xba",
+ "\xc5\xbb",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc4\x8c",
+ "\xc5\x82",
+ "\xc5\xbd",
+ "\xe2\x80\x9d",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc5\xbe",
+ "\xc4\x8d",
+ "\xc8\x99",
+ "\xc2\xbb",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xc5\xb8",
+ "\xc5\xbc",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc4\x82",
+ "\xc3\x84",
+ "\xc4\x86",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc4\x90",
+ "\xc5\x83",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc5\x90",
+ "\xc3\x96",
+ "\xc5\x9a",
+ "\xc5\xb0",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc4\x98",
+ "\xc8\x9a",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc4\x83",
+ "\xc3\xa4",
+ "\xc4\x87",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc4\x91",
+ "\xc5\x84",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc5\x91",
+ "\xc3\xb6",
+ "\xc5\x9b",
+ "\xc5\xb1",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc4\x99",
+ "\xc8\x9b",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c4 => "\xc4",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d6 => "\xd6",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e4 => "\xe4",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f6 => "\xf6",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000ff => "\xff",
+ 0x00000102 => "\xc3",
+ 0x00000103 => "\xe3",
+ 0x00000104 => "\xa1",
+ 0x00000105 => "\xa2",
+ 0x00000106 => "\xc5",
+ 0x00000107 => "\xe5",
+ 0x0000010c => "\xb2",
+ 0x0000010d => "\xb9",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000118 => "\xdd",
+ 0x00000119 => "\xfd",
+ 0x00000141 => "\xa3",
+ 0x00000142 => "\xb3",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000150 => "\xd5",
+ 0x00000151 => "\xf5",
+ 0x00000152 => "\xbc",
+ 0x00000153 => "\xbd",
+ 0x0000015a => "\xd7",
+ 0x0000015b => "\xf7",
+ 0x00000160 => "\xa6",
+ 0x00000161 => "\xa8",
+ 0x00000170 => "\xd8",
+ 0x00000171 => "\xf8",
+ 0x00000178 => "\xbe",
+ 0x00000179 => "\xac",
+ 0x0000017a => "\xae",
+ 0x0000017b => "\xaf",
+ 0x0000017c => "\xbf",
+ 0x0000017d => "\xb4",
+ 0x0000017e => "\xb8",
+ 0x00000218 => "\xaa",
+ 0x00000219 => "\xba",
+ 0x0000021a => "\xde",
+ 0x0000021b => "\xfe",
+ 0x0000201d => "\xb5",
+ 0x0000201e => "\xa5",
+ 0x000020ac => "\xa4",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_16 - Conversion routines for ISO-8859-16
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-16.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+ alias ISO-IR-226
+ alias LATIN10
+ alias L10
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A2 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ A4 | 000020AC | EURO SIGN
+ A5 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ A6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00000218 | LATIN CAPITAL LETTER S WITH COMMA BELOW
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ B4 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ B5 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ B9 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ BA | 00000219 | LATIN SMALL LETTER S WITH COMMA BELOW
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 00000152 | LATIN CAPITAL LIGATURE OE
+ BD | 00000153 | LATIN SMALL LIGATURE OE
+ BE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ D8 | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ DE | 0000021A | LATIN CAPITAL LETTER T WITH COMMA BELOW
+ DF | 000000DF | LATIN SMALL LETTER SHARP S
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ F8 | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ FE | 0000021B | LATIN SMALL LETTER T WITH COMMA BELOW
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_2.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_2.pm
new file mode 100644
index 0000000..d531f20
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_2.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_2.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-2.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_2;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0104,
+ 0x02d8,
+ 0x0141,
+ 0x00a4,
+ 0x013d,
+ 0x015a,
+ 0x00a7,
+ 0x00a8,
+ 0x0160,
+ 0x015e,
+ 0x0164,
+ 0x0179,
+ 0x00ad,
+ 0x017d,
+ 0x017b,
+ 0x00b0,
+ 0x0105,
+ 0x02db,
+ 0x0142,
+ 0x00b4,
+ 0x013e,
+ 0x015b,
+ 0x02c7,
+ 0x00b8,
+ 0x0161,
+ 0x015f,
+ 0x0165,
+ 0x017a,
+ 0x02dd,
+ 0x017e,
+ 0x017c,
+ 0x0154,
+ 0x00c1,
+ 0x00c2,
+ 0x0102,
+ 0x00c4,
+ 0x0139,
+ 0x0106,
+ 0x00c7,
+ 0x010c,
+ 0x00c9,
+ 0x0118,
+ 0x00cb,
+ 0x011a,
+ 0x00cd,
+ 0x00ce,
+ 0x010e,
+ 0x0110,
+ 0x0143,
+ 0x0147,
+ 0x00d3,
+ 0x00d4,
+ 0x0150,
+ 0x00d6,
+ 0x00d7,
+ 0x0158,
+ 0x016e,
+ 0x00da,
+ 0x0170,
+ 0x00dc,
+ 0x00dd,
+ 0x0162,
+ 0x00df,
+ 0x0155,
+ 0x00e1,
+ 0x00e2,
+ 0x0103,
+ 0x00e4,
+ 0x013a,
+ 0x0107,
+ 0x00e7,
+ 0x010d,
+ 0x00e9,
+ 0x0119,
+ 0x00eb,
+ 0x011b,
+ 0x00ed,
+ 0x00ee,
+ 0x010f,
+ 0x0111,
+ 0x0144,
+ 0x0148,
+ 0x00f3,
+ 0x00f4,
+ 0x0151,
+ 0x00f6,
+ 0x00f7,
+ 0x0159,
+ 0x016f,
+ 0x00fa,
+ 0x0171,
+ 0x00fc,
+ 0x00fd,
+ 0x0163,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\x84",
+ "\xcb\x98",
+ "\xc5\x81",
+ "\xc2\xa4",
+ "\xc4\xbd",
+ "\xc5\x9a",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc5\xa0",
+ "\xc5\x9e",
+ "\xc5\xa4",
+ "\xc5\xb9",
+ "\xc2\xad",
+ "\xc5\xbd",
+ "\xc5\xbb",
+ "\xc2\xb0",
+ "\xc4\x85",
+ "\xcb\x9b",
+ "\xc5\x82",
+ "\xc2\xb4",
+ "\xc4\xbe",
+ "\xc5\x9b",
+ "\xcb\x87",
+ "\xc2\xb8",
+ "\xc5\xa1",
+ "\xc5\x9f",
+ "\xc5\xa5",
+ "\xc5\xba",
+ "\xcb\x9d",
+ "\xc5\xbe",
+ "\xc5\xbc",
+ "\xc5\x94",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc4\x82",
+ "\xc3\x84",
+ "\xc4\xb9",
+ "\xc4\x86",
+ "\xc3\x87",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc4\x98",
+ "\xc3\x8b",
+ "\xc4\x9a",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc4\x8e",
+ "\xc4\x90",
+ "\xc5\x83",
+ "\xc5\x87",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc5\x90",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc5\x98",
+ "\xc5\xae",
+ "\xc3\x9a",
+ "\xc5\xb0",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc5\xa2",
+ "\xc3\x9f",
+ "\xc5\x95",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc4\x83",
+ "\xc3\xa4",
+ "\xc4\xba",
+ "\xc4\x87",
+ "\xc3\xa7",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc4\x99",
+ "\xc3\xab",
+ "\xc4\x9b",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc4\x8f",
+ "\xc4\x91",
+ "\xc5\x84",
+ "\xc5\x88",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc5\x91",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc5\x99",
+ "\xc5\xaf",
+ "\xc3\xba",
+ "\xc5\xb1",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc5\xa3",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xa4",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b4 => "\xb4",
+ 0x000000b8 => "\xb8",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c4 => "\xc4",
+ 0x000000c7 => "\xc7",
+ 0x000000c9 => "\xc9",
+ 0x000000cb => "\xcb",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000da => "\xda",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000df => "\xdf",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e4 => "\xe4",
+ 0x000000e7 => "\xe7",
+ 0x000000e9 => "\xe9",
+ 0x000000eb => "\xeb",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000fa => "\xfa",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x00000102 => "\xc3",
+ 0x00000103 => "\xe3",
+ 0x00000104 => "\xa1",
+ 0x00000105 => "\xb1",
+ 0x00000106 => "\xc6",
+ 0x00000107 => "\xe6",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x0000010e => "\xcf",
+ 0x0000010f => "\xef",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000118 => "\xca",
+ 0x00000119 => "\xea",
+ 0x0000011a => "\xcc",
+ 0x0000011b => "\xec",
+ 0x00000139 => "\xc5",
+ 0x0000013a => "\xe5",
+ 0x0000013d => "\xa5",
+ 0x0000013e => "\xb5",
+ 0x00000141 => "\xa3",
+ 0x00000142 => "\xb3",
+ 0x00000143 => "\xd1",
+ 0x00000144 => "\xf1",
+ 0x00000147 => "\xd2",
+ 0x00000148 => "\xf2",
+ 0x00000150 => "\xd5",
+ 0x00000151 => "\xf5",
+ 0x00000154 => "\xc0",
+ 0x00000155 => "\xe0",
+ 0x00000158 => "\xd8",
+ 0x00000159 => "\xf8",
+ 0x0000015a => "\xa6",
+ 0x0000015b => "\xb6",
+ 0x0000015e => "\xaa",
+ 0x0000015f => "\xba",
+ 0x00000160 => "\xa9",
+ 0x00000161 => "\xb9",
+ 0x00000162 => "\xde",
+ 0x00000163 => "\xfe",
+ 0x00000164 => "\xab",
+ 0x00000165 => "\xbb",
+ 0x0000016e => "\xd9",
+ 0x0000016f => "\xf9",
+ 0x00000170 => "\xdb",
+ 0x00000171 => "\xfb",
+ 0x00000179 => "\xac",
+ 0x0000017a => "\xbc",
+ 0x0000017b => "\xaf",
+ 0x0000017c => "\xbf",
+ 0x0000017d => "\xae",
+ 0x0000017e => "\xbe",
+ 0x000002c7 => "\xb7",
+ 0x000002d8 => "\xa2",
+ 0x000002d9 => "\xff",
+ 0x000002db => "\xb2",
+ 0x000002dd => "\xbd",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_2 - Conversion routines for ISO-8859-2
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-2.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-101
+ alias ISO_8859-2:1987
+ alias ISO_8859-2
+ alias LATIN2
+ alias L2
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A2 | 000002D8 | BREVE
+ A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 0000013D | LATIN CAPITAL LETTER L WITH CARON
+ A6 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ AB | 00000164 | LATIN CAPITAL LETTER T WITH CARON
+ AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ B2 | 000002DB | OGONEK
+ B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 0000013E | LATIN SMALL LETTER L WITH CARON
+ B6 | 0000015B | LATIN SMALL LETTER S WITH ACUTE
+ B7 | 000002C7 | CARON (Mandarin Chinese third tone)
+ B8 | 000000B8 | CEDILLA
+ B9 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ BB | 00000165 | LATIN SMALL LETTER T WITH CARON
+ BC | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
+ BD | 000002DD | DOUBLE ACUTE ACCENT
+ BE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
+ C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
+ D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON
+ D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
+ E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 0000011B | LATIN SMALL LETTER E WITH CARON
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 0000010F | LATIN SMALL LETTER D WITH CARON
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
+ F2 | 00000148 | LATIN SMALL LETTER N WITH CARON
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 00000159 | LATIN SMALL LETTER R WITH CARON
+ F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_3.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_3.pm
new file mode 100644
index 0000000..bae0481
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_3.pm
@@ -0,0 +1,1136 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_3.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-3.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_3;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0126,
+ 0x02d8,
+ 0x00a3,
+ 0x00a4,
+ 0xfffd,
+ 0x0124,
+ 0x00a7,
+ 0x00a8,
+ 0x0130,
+ 0x015e,
+ 0x011e,
+ 0x0134,
+ 0x00ad,
+ 0xfffd,
+ 0x017b,
+ 0x00b0,
+ 0x0127,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x0125,
+ 0x00b7,
+ 0x00b8,
+ 0x0131,
+ 0x015f,
+ 0x011f,
+ 0x0135,
+ 0x00bd,
+ 0xfffd,
+ 0x017c,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0xfffd,
+ 0x00c4,
+ 0x010a,
+ 0x0108,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0xfffd,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x0120,
+ 0x00d6,
+ 0x00d7,
+ 0x011c,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x016c,
+ 0x015c,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0xfffd,
+ 0x00e4,
+ 0x010b,
+ 0x0109,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0xfffd,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x0121,
+ 0x00f6,
+ 0x00f7,
+ 0x011d,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x016d,
+ 0x015d,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\xa6",
+ "\xcb\x98",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xef\xbf\xbd",
+ "\xc4\xa4",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc4\xb0",
+ "\xc5\x9e",
+ "\xc4\x9e",
+ "\xc4\xb4",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xc5\xbb",
+ "\xc2\xb0",
+ "\xc4\xa7",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc4\xa5",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc4\xb1",
+ "\xc5\x9f",
+ "\xc4\x9f",
+ "\xc4\xb5",
+ "\xc2\xbd",
+ "\xef\xbf\xbd",
+ "\xc5\xbc",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xef\xbf\xbd",
+ "\xc3\x84",
+ "\xc4\x8a",
+ "\xc4\x88",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xef\xbf\xbd",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc4\xa0",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc4\x9c",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc5\xac",
+ "\xc5\x9c",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xef\xbf\xbd",
+ "\xc3\xa4",
+ "\xc4\x8b",
+ "\xc4\x89",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xef\xbf\xbd",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc4\xa1",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc4\x9d",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc5\xad",
+ "\xc5\x9d",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000bd => "\xbd",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c4 => "\xc4",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e4 => "\xe4",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x00000108 => "\xc6",
+ 0x00000109 => "\xe6",
+ 0x0000010a => "\xc5",
+ 0x0000010b => "\xe5",
+ 0x0000011c => "\xd8",
+ 0x0000011d => "\xf8",
+ 0x0000011e => "\xab",
+ 0x0000011f => "\xbb",
+ 0x00000120 => "\xd5",
+ 0x00000121 => "\xf5",
+ 0x00000124 => "\xa6",
+ 0x00000125 => "\xb6",
+ 0x00000126 => "\xa1",
+ 0x00000127 => "\xb1",
+ 0x00000130 => "\xa9",
+ 0x00000131 => "\xb9",
+ 0x00000134 => "\xac",
+ 0x00000135 => "\xbc",
+ 0x0000015c => "\xde",
+ 0x0000015d => "\xfe",
+ 0x0000015e => "\xaa",
+ 0x0000015f => "\xba",
+ 0x0000016c => "\xdd",
+ 0x0000016d => "\xfd",
+ 0x0000017b => "\xaf",
+ 0x0000017c => "\xbf",
+ 0x000002d8 => "\xa2",
+ 0x000002d9 => "\xff",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_3 - Conversion routines for ISO-8859-3
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-3.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-109
+ alias ISO_8859-3:1988
+ alias ISO_8859-3
+ alias LATIN3
+ alias L3
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000126 | LATIN CAPITAL LETTER H WITH STROKE
+ A2 | 000002D8 | BREVE
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A6 | 00000124 | LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ AB | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ AC | 00000134 | LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+ AD | 000000AD | SOFT HYPHEN
+ AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 00000127 | LATIN SMALL LETTER H WITH STROKE
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00000125 | LATIN SMALL LETTER H WITH CIRCUMFLEX
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ BB | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ BC | 00000135 | LATIN SMALL LETTER J WITH CIRCUMFLEX
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE
+ C6 | 00000108 | LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 0000011C | LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 0000016C | LATIN CAPITAL LETTER U WITH BREVE
+ DE | 0000015C | LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE
+ E6 | 00000109 | LATIN SMALL LETTER C WITH CIRCUMFLEX
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 0000011D | LATIN SMALL LETTER G WITH CIRCUMFLEX
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 0000016D | LATIN SMALL LETTER U WITH BREVE
+ FE | 0000015D | LATIN SMALL LETTER S WITH CIRCUMFLEX
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_4.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_4.pm
new file mode 100644
index 0000000..a6b6720
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_4.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_4.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-4.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_4;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0104,
+ 0x0138,
+ 0x0156,
+ 0x00a4,
+ 0x0128,
+ 0x013b,
+ 0x00a7,
+ 0x00a8,
+ 0x0160,
+ 0x0112,
+ 0x0122,
+ 0x0166,
+ 0x00ad,
+ 0x017d,
+ 0x00af,
+ 0x00b0,
+ 0x0105,
+ 0x02db,
+ 0x0157,
+ 0x00b4,
+ 0x0129,
+ 0x013c,
+ 0x02c7,
+ 0x00b8,
+ 0x0161,
+ 0x0113,
+ 0x0123,
+ 0x0167,
+ 0x014a,
+ 0x017e,
+ 0x014b,
+ 0x0100,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x012e,
+ 0x010c,
+ 0x00c9,
+ 0x0118,
+ 0x00cb,
+ 0x0116,
+ 0x00cd,
+ 0x00ce,
+ 0x012a,
+ 0x0110,
+ 0x0145,
+ 0x014c,
+ 0x0136,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x0172,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x0168,
+ 0x016a,
+ 0x00df,
+ 0x0101,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x012f,
+ 0x010d,
+ 0x00e9,
+ 0x0119,
+ 0x00eb,
+ 0x0117,
+ 0x00ed,
+ 0x00ee,
+ 0x012b,
+ 0x0111,
+ 0x0146,
+ 0x014d,
+ 0x0137,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x0173,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x0169,
+ 0x016b,
+ 0x02d9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc4\x84",
+ "\xc4\xb8",
+ "\xc5\x96",
+ "\xc2\xa4",
+ "\xc4\xa8",
+ "\xc4\xbb",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc5\xa0",
+ "\xc4\x92",
+ "\xc4\xa2",
+ "\xc5\xa6",
+ "\xc2\xad",
+ "\xc5\xbd",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc4\x85",
+ "\xcb\x9b",
+ "\xc5\x97",
+ "\xc2\xb4",
+ "\xc4\xa9",
+ "\xc4\xbc",
+ "\xcb\x87",
+ "\xc2\xb8",
+ "\xc5\xa1",
+ "\xc4\x93",
+ "\xc4\xa3",
+ "\xc5\xa7",
+ "\xc5\x8a",
+ "\xc5\xbe",
+ "\xc5\x8b",
+ "\xc4\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc4\xae",
+ "\xc4\x8c",
+ "\xc3\x89",
+ "\xc4\x98",
+ "\xc3\x8b",
+ "\xc4\x96",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc4\xaa",
+ "\xc4\x90",
+ "\xc5\x85",
+ "\xc5\x8c",
+ "\xc4\xb6",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc5\xb2",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc5\xa8",
+ "\xc5\xaa",
+ "\xc3\x9f",
+ "\xc4\x81",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc4\xaf",
+ "\xc4\x8d",
+ "\xc3\xa9",
+ "\xc4\x99",
+ "\xc3\xab",
+ "\xc4\x97",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc4\xab",
+ "\xc4\x91",
+ "\xc5\x86",
+ "\xc5\x8d",
+ "\xc4\xb7",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc5\xb3",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc5\xa9",
+ "\xc5\xab",
+ "\xcb\x99",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xa4",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000ad => "\xad",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b4 => "\xb4",
+ 0x000000b8 => "\xb8",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c9 => "\xc9",
+ 0x000000cb => "\xcb",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e9 => "\xe9",
+ 0x000000eb => "\xeb",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x00000100 => "\xc0",
+ 0x00000101 => "\xe0",
+ 0x00000104 => "\xa1",
+ 0x00000105 => "\xb1",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000112 => "\xaa",
+ 0x00000113 => "\xba",
+ 0x00000116 => "\xcc",
+ 0x00000117 => "\xec",
+ 0x00000118 => "\xca",
+ 0x00000119 => "\xea",
+ 0x00000122 => "\xab",
+ 0x00000123 => "\xbb",
+ 0x00000128 => "\xa5",
+ 0x00000129 => "\xb5",
+ 0x0000012a => "\xcf",
+ 0x0000012b => "\xef",
+ 0x0000012e => "\xc7",
+ 0x0000012f => "\xe7",
+ 0x00000136 => "\xd3",
+ 0x00000137 => "\xf3",
+ 0x00000138 => "\xa2",
+ 0x0000013b => "\xa6",
+ 0x0000013c => "\xb6",
+ 0x00000145 => "\xd1",
+ 0x00000146 => "\xf1",
+ 0x0000014a => "\xbd",
+ 0x0000014b => "\xbf",
+ 0x0000014c => "\xd2",
+ 0x0000014d => "\xf2",
+ 0x00000156 => "\xa3",
+ 0x00000157 => "\xb3",
+ 0x00000160 => "\xa9",
+ 0x00000161 => "\xb9",
+ 0x00000166 => "\xac",
+ 0x00000167 => "\xbc",
+ 0x00000168 => "\xdd",
+ 0x00000169 => "\xfd",
+ 0x0000016a => "\xde",
+ 0x0000016b => "\xfe",
+ 0x00000172 => "\xd9",
+ 0x00000173 => "\xf9",
+ 0x0000017d => "\xae",
+ 0x0000017e => "\xbe",
+ 0x000002c7 => "\xb7",
+ 0x000002d9 => "\xff",
+ 0x000002db => "\xb2",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_4 - Conversion routines for ISO-8859-4
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-4.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-110
+ alias ISO_8859-4:1988
+ alias ISO_8859-4
+ alias LATIN4
+ alias L4
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
+ A2 | 00000138 | LATIN SMALL LETTER KRA (Greenlandic)
+ A3 | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 00000128 | LATIN CAPITAL LETTER I WITH TILDE
+ A6 | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ AA | 00000112 | LATIN CAPITAL LETTER E WITH MACRON
+ AB | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA
+ AC | 00000166 | LATIN CAPITAL LETTER T WITH STROKE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
+ B2 | 000002DB | OGONEK
+ B3 | 00000157 | LATIN SMALL LETTER R WITH CEDILLA
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 00000129 | LATIN SMALL LETTER I WITH TILDE
+ B6 | 0000013C | LATIN SMALL LETTER L WITH CEDILLA
+ B7 | 000002C7 | CARON (Mandarin Chinese third tone)
+ B8 | 000000B8 | CEDILLA
+ B9 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BA | 00000113 | LATIN SMALL LETTER E WITH MACRON
+ BB | 00000123 | LATIN SMALL LETTER G WITH CEDILLA
+ BC | 00000167 | LATIN SMALL LETTER T WITH STROKE
+ BD | 0000014A | LATIN CAPITAL LETTER ENG (Sami)
+ BE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BF | 0000014B | LATIN SMALL LETTER ENG (Sami)
+ C0 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 0000012A | LATIN CAPITAL LETTER I WITH MACRON
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA
+ D2 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON
+ D3 | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 00000168 | LATIN CAPITAL LETTER U WITH TILDE
+ DE | 0000016A | LATIN CAPITAL LETTER U WITH MACRON
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 00000101 | LATIN SMALL LETTER A WITH MACRON
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 0000012F | LATIN SMALL LETTER I WITH OGONEK
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 0000012B | LATIN SMALL LETTER I WITH MACRON
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA
+ F2 | 0000014D | LATIN SMALL LETTER O WITH MACRON
+ F3 | 00000137 | LATIN SMALL LETTER K WITH CEDILLA
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 00000173 | LATIN SMALL LETTER U WITH OGONEK
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 00000169 | LATIN SMALL LETTER U WITH TILDE
+ FE | 0000016B | LATIN SMALL LETTER U WITH MACRON
+ FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_5.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_5.pm
new file mode 100644
index 0000000..6e1f7a0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_5.pm
@@ -0,0 +1,1149 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_5.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-5.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_5;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x0401,
+ 0x0402,
+ 0x0403,
+ 0x0404,
+ 0x0405,
+ 0x0406,
+ 0x0407,
+ 0x0408,
+ 0x0409,
+ 0x040a,
+ 0x040b,
+ 0x040c,
+ 0x00ad,
+ 0x040e,
+ 0x040f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x044f,
+ 0x2116,
+ 0x0451,
+ 0x0452,
+ 0x0453,
+ 0x0454,
+ 0x0455,
+ 0x0456,
+ 0x0457,
+ 0x0458,
+ 0x0459,
+ 0x045a,
+ 0x045b,
+ 0x045c,
+ 0x00a7,
+ 0x045e,
+ 0x045f,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xd0\x81",
+ "\xd0\x82",
+ "\xd0\x83",
+ "\xd0\x84",
+ "\xd0\x85",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xd0\x88",
+ "\xd0\x89",
+ "\xd0\x8a",
+ "\xd0\x8b",
+ "\xd0\x8c",
+ "\xc2\xad",
+ "\xd0\x8e",
+ "\xd0\x8f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xd1\x8f",
+ "\xe2\x84\x96",
+ "\xd1\x91",
+ "\xd1\x92",
+ "\xd1\x93",
+ "\xd1\x94",
+ "\xd1\x95",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xd1\x98",
+ "\xd1\x99",
+ "\xd1\x9a",
+ "\xd1\x9b",
+ "\xd1\x9c",
+ "\xc2\xa7",
+ "\xd1\x9e",
+ "\xd1\x9f",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a7 => "\xfd",
+ 0x000000ad => "\xad",
+ 0x00000401 => "\xa1",
+ 0x00000402 => "\xa2",
+ 0x00000403 => "\xa3",
+ 0x00000404 => "\xa4",
+ 0x00000405 => "\xa5",
+ 0x00000406 => "\xa6",
+ 0x00000407 => "\xa7",
+ 0x00000408 => "\xa8",
+ 0x00000409 => "\xa9",
+ 0x0000040a => "\xaa",
+ 0x0000040b => "\xab",
+ 0x0000040c => "\xac",
+ 0x0000040e => "\xae",
+ 0x0000040f => "\xaf",
+ 0x00000410 => "\xb0",
+ 0x00000411 => "\xb1",
+ 0x00000412 => "\xb2",
+ 0x00000413 => "\xb3",
+ 0x00000414 => "\xb4",
+ 0x00000415 => "\xb5",
+ 0x00000416 => "\xb6",
+ 0x00000417 => "\xb7",
+ 0x00000418 => "\xb8",
+ 0x00000419 => "\xb9",
+ 0x0000041a => "\xba",
+ 0x0000041b => "\xbb",
+ 0x0000041c => "\xbc",
+ 0x0000041d => "\xbd",
+ 0x0000041e => "\xbe",
+ 0x0000041f => "\xbf",
+ 0x00000420 => "\xc0",
+ 0x00000421 => "\xc1",
+ 0x00000422 => "\xc2",
+ 0x00000423 => "\xc3",
+ 0x00000424 => "\xc4",
+ 0x00000425 => "\xc5",
+ 0x00000426 => "\xc6",
+ 0x00000427 => "\xc7",
+ 0x00000428 => "\xc8",
+ 0x00000429 => "\xc9",
+ 0x0000042a => "\xca",
+ 0x0000042b => "\xcb",
+ 0x0000042c => "\xcc",
+ 0x0000042d => "\xcd",
+ 0x0000042e => "\xce",
+ 0x0000042f => "\xcf",
+ 0x00000430 => "\xd0",
+ 0x00000431 => "\xd1",
+ 0x00000432 => "\xd2",
+ 0x00000433 => "\xd3",
+ 0x00000434 => "\xd4",
+ 0x00000435 => "\xd5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xd7",
+ 0x00000438 => "\xd8",
+ 0x00000439 => "\xd9",
+ 0x0000043a => "\xda",
+ 0x0000043b => "\xdb",
+ 0x0000043c => "\xdc",
+ 0x0000043d => "\xdd",
+ 0x0000043e => "\xde",
+ 0x0000043f => "\xdf",
+ 0x00000440 => "\xe0",
+ 0x00000441 => "\xe1",
+ 0x00000442 => "\xe2",
+ 0x00000443 => "\xe3",
+ 0x00000444 => "\xe4",
+ 0x00000445 => "\xe5",
+ 0x00000446 => "\xe6",
+ 0x00000447 => "\xe7",
+ 0x00000448 => "\xe8",
+ 0x00000449 => "\xe9",
+ 0x0000044a => "\xea",
+ 0x0000044b => "\xeb",
+ 0x0000044c => "\xec",
+ 0x0000044d => "\xed",
+ 0x0000044e => "\xee",
+ 0x0000044f => "\xef",
+ 0x00000451 => "\xf1",
+ 0x00000452 => "\xf2",
+ 0x00000453 => "\xf3",
+ 0x00000454 => "\xf4",
+ 0x00000455 => "\xf5",
+ 0x00000456 => "\xf6",
+ 0x00000457 => "\xf7",
+ 0x00000458 => "\xf8",
+ 0x00000459 => "\xf9",
+ 0x0000045a => "\xfa",
+ 0x0000045b => "\xfb",
+ 0x0000045c => "\xfc",
+ 0x0000045e => "\xfe",
+ 0x0000045f => "\xff",
+ 0x00002116 => "\xf0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_5 - Conversion routines for ISO-8859-5
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-5.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-144
+ alias ISO_8859-5:1988
+ alias ISO_8859-5
+ alias CYRILLIC
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ A2 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+ A3 | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ A4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ A5 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ A6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ A7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ A8 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ A9 | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ AA | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ AB | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+ AC | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ AD | 000000AD | SOFT HYPHEN
+ AE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+ AF | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ B0 | 00000410 | CYRILLIC CAPITAL LETTER A
+ B1 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ B2 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ B3 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ B4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ B5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ B6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ B7 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ B8 | 00000418 | CYRILLIC CAPITAL LETTER I
+ B9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ BA | 0000041A | CYRILLIC CAPITAL LETTER KA
+ BB | 0000041B | CYRILLIC CAPITAL LETTER EL
+ BC | 0000041C | CYRILLIC CAPITAL LETTER EM
+ BD | 0000041D | CYRILLIC CAPITAL LETTER EN
+ BE | 0000041E | CYRILLIC CAPITAL LETTER O
+ BF | 0000041F | CYRILLIC CAPITAL LETTER PE
+ C0 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ C1 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ C2 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ C3 | 00000423 | CYRILLIC CAPITAL LETTER U
+ C4 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ C5 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ C6 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ C7 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ C8 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ C9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ CA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ CB | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ CC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ CD | 0000042D | CYRILLIC CAPITAL LETTER E
+ CE | 0000042E | CYRILLIC CAPITAL LETTER YU
+ CF | 0000042F | CYRILLIC CAPITAL LETTER YA
+ D0 | 00000430 | CYRILLIC SMALL LETTER A
+ D1 | 00000431 | CYRILLIC SMALL LETTER BE
+ D2 | 00000432 | CYRILLIC SMALL LETTER VE
+ D3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ D4 | 00000434 | CYRILLIC SMALL LETTER DE
+ D5 | 00000435 | CYRILLIC SMALL LETTER IE
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ D8 | 00000438 | CYRILLIC SMALL LETTER I
+ D9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ DA | 0000043A | CYRILLIC SMALL LETTER KA
+ DB | 0000043B | CYRILLIC SMALL LETTER EL
+ DC | 0000043C | CYRILLIC SMALL LETTER EM
+ DD | 0000043D | CYRILLIC SMALL LETTER EN
+ DE | 0000043E | CYRILLIC SMALL LETTER O
+ DF | 0000043F | CYRILLIC SMALL LETTER PE
+ E0 | 00000440 | CYRILLIC SMALL LETTER ER
+ E1 | 00000441 | CYRILLIC SMALL LETTER ES
+ E2 | 00000442 | CYRILLIC SMALL LETTER TE
+ E3 | 00000443 | CYRILLIC SMALL LETTER U
+ E4 | 00000444 | CYRILLIC SMALL LETTER EF
+ E5 | 00000445 | CYRILLIC SMALL LETTER HA
+ E6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ E7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ E8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ EB | 0000044B | CYRILLIC SMALL LETTER YERU
+ EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ ED | 0000044D | CYRILLIC SMALL LETTER E
+ EE | 0000044E | CYRILLIC SMALL LETTER YU
+ EF | 0000044F | CYRILLIC SMALL LETTER YA
+ F0 | 00002116 | NUMERO SIGN
+ F1 | 00000451 | CYRILLIC SMALL LETTER IO
+ F2 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian)
+ F3 | 00000453 | CYRILLIC SMALL LETTER GJE
+ F4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ F5 | 00000455 | CYRILLIC SMALL LETTER DZE
+ F6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ F7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ F8 | 00000458 | CYRILLIC SMALL LETTER JE
+ F9 | 00000459 | CYRILLIC SMALL LETTER LJE
+ FA | 0000045A | CYRILLIC SMALL LETTER NJE
+ FB | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+ FC | 0000045C | CYRILLIC SMALL LETTER KJE
+ FD | 000000A7 | SECTION SIGN
+ FE | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+ FF | 0000045F | CYRILLIC SMALL LETTER DZHE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_6.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_6.pm
new file mode 100644
index 0000000..c77e7a0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_6.pm
@@ -0,0 +1,1061 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_6.pm,v 1.1 2011-10-12 23:51:44 pertusus Exp $
+
+# Conversion routines for ISO-8859-6.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_6;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a4,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x060c,
+ 0x00ad,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x061b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x061f,
+ 0xfffd,
+ 0x0621,
+ 0x0622,
+ 0x0623,
+ 0x0624,
+ 0x0625,
+ 0x0626,
+ 0x0627,
+ 0x0628,
+ 0x0629,
+ 0x062a,
+ 0x062b,
+ 0x062c,
+ 0x062d,
+ 0x062e,
+ 0x062f,
+ 0x0630,
+ 0x0631,
+ 0x0632,
+ 0x0633,
+ 0x0634,
+ 0x0635,
+ 0x0636,
+ 0x0637,
+ 0x0638,
+ 0x0639,
+ 0x063a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0640,
+ 0x0641,
+ 0x0642,
+ 0x0643,
+ 0x0644,
+ 0x0645,
+ 0x0646,
+ 0x0647,
+ 0x0648,
+ 0x0649,
+ 0x064a,
+ 0x064b,
+ 0x064c,
+ 0x064d,
+ 0x064e,
+ 0x064f,
+ 0x0650,
+ 0x0651,
+ 0x0652,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa4",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\x8c",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\x9b",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\x9f",
+ "\xef\xbf\xbd",
+ "\xd8\xa1",
+ "\xd8\xa2",
+ "\xd8\xa3",
+ "\xd8\xa4",
+ "\xd8\xa5",
+ "\xd8\xa6",
+ "\xd8\xa7",
+ "\xd8\xa8",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xd8\xab",
+ "\xd8\xac",
+ "\xd8\xad",
+ "\xd8\xae",
+ "\xd8\xaf",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xd8\xb2",
+ "\xd8\xb3",
+ "\xd8\xb4",
+ "\xd8\xb5",
+ "\xd8\xb6",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xd8\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\x80",
+ "\xd9\x81",
+ "\xd9\x82",
+ "\xd9\x83",
+ "\xd9\x84",
+ "\xd9\x85",
+ "\xd9\x86",
+ "\xd9\x87",
+ "\xd9\x88",
+ "\xd9\x89",
+ "\xd9\x8a",
+ "\xd9\x8b",
+ "\xd9\x8c",
+ "\xd9\x8d",
+ "\xd9\x8e",
+ "\xd9\x8f",
+ "\xd9\x90",
+ "\xd9\x91",
+ "\xd9\x92",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a4 => "\xa4",
+ 0x000000ad => "\xad",
+ 0x0000060c => "\xac",
+ 0x0000061b => "\xbb",
+ 0x0000061f => "\xbf",
+ 0x00000621 => "\xc1",
+ 0x00000622 => "\xc2",
+ 0x00000623 => "\xc3",
+ 0x00000624 => "\xc4",
+ 0x00000625 => "\xc5",
+ 0x00000626 => "\xc6",
+ 0x00000627 => "\xc7",
+ 0x00000628 => "\xc8",
+ 0x00000629 => "\xc9",
+ 0x0000062a => "\xca",
+ 0x0000062b => "\xcb",
+ 0x0000062c => "\xcc",
+ 0x0000062d => "\xcd",
+ 0x0000062e => "\xce",
+ 0x0000062f => "\xcf",
+ 0x00000630 => "\xd0",
+ 0x00000631 => "\xd1",
+ 0x00000632 => "\xd2",
+ 0x00000633 => "\xd3",
+ 0x00000634 => "\xd4",
+ 0x00000635 => "\xd5",
+ 0x00000636 => "\xd6",
+ 0x00000637 => "\xd7",
+ 0x00000638 => "\xd8",
+ 0x00000639 => "\xd9",
+ 0x0000063a => "\xda",
+ 0x00000640 => "\xe0",
+ 0x00000641 => "\xe1",
+ 0x00000642 => "\xe2",
+ 0x00000643 => "\xe3",
+ 0x00000644 => "\xe4",
+ 0x00000645 => "\xe5",
+ 0x00000646 => "\xe6",
+ 0x00000647 => "\xe7",
+ 0x00000648 => "\xe8",
+ 0x00000649 => "\xe9",
+ 0x0000064a => "\xea",
+ 0x0000064b => "\xeb",
+ 0x0000064c => "\xec",
+ 0x0000064d => "\xed",
+ 0x0000064e => "\xee",
+ 0x0000064f => "\xef",
+ 0x00000650 => "\xf0",
+ 0x00000651 => "\xf1",
+ 0x00000652 => "\xf2",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_6 - Conversion routines for ISO-8859-6
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-6.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-127
+ alias ISO_8859-6:1987
+ alias ISO_8859-6
+ alias ECMA-114
+ alias ASMO-708
+ alias ARABIC
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A4 | 000000A4 | CURRENCY SIGN
+ AC | 0000060C | ARABIC COMMA
+ AD | 000000AD | SOFT HYPHEN
+ BB | 0000061B | ARABIC SEMICOLON
+ BF | 0000061F | ARABIC QUESTION MARK
+ C1 | 00000621 | ARABIC LETTER HAMZA
+ C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
+ C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW
+ C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
+ C7 | 00000627 | ARABIC LETTER ALEF
+ C8 | 00000628 | ARABIC LETTER BEH
+ C9 | 00000629 | ARABIC LETTER TEH MARBUTA
+ CA | 0000062A | ARABIC LETTER TEH
+ CB | 0000062B | ARABIC LETTER THEH
+ CC | 0000062C | ARABIC LETTER JEEM
+ CD | 0000062D | ARABIC LETTER HAH
+ CE | 0000062E | ARABIC LETTER KHAH
+ CF | 0000062F | ARABIC LETTER DAL
+ D0 | 00000630 | ARABIC LETTER THAL
+ D1 | 00000631 | ARABIC LETTER REH
+ D2 | 00000632 | ARABIC LETTER ZAIN
+ D3 | 00000633 | ARABIC LETTER SEEN
+ D4 | 00000634 | ARABIC LETTER SHEEN
+ D5 | 00000635 | ARABIC LETTER SAD
+ D6 | 00000636 | ARABIC LETTER DAD
+ D7 | 00000637 | ARABIC LETTER TAH
+ D8 | 00000638 | ARABIC LETTER ZAH
+ D9 | 00000639 | ARABIC LETTER AIN
+ DA | 0000063A | ARABIC LETTER GHAIN
+ E0 | 00000640 | ARABIC TATWEEL
+ E1 | 00000641 | ARABIC LETTER FEH
+ E2 | 00000642 | ARABIC LETTER QAF
+ E3 | 00000643 | ARABIC LETTER KAF
+ E4 | 00000644 | ARABIC LETTER LAM
+ E5 | 00000645 | ARABIC LETTER MEEM
+ E6 | 00000646 | ARABIC LETTER NOON
+ E7 | 00000647 | ARABIC LETTER HEH
+ E8 | 00000648 | ARABIC LETTER WAW
+ E9 | 00000649 | ARABIC LETTER ALEF MAKSURA
+ EA | 0000064A | ARABIC LETTER YEH
+ EB | 0000064B | ARABIC FATHATAN
+ EC | 0000064C | ARABIC DAMMATAN
+ ED | 0000064D | ARABIC KASRATAN
+ EE | 0000064E | ARABIC FATHA
+ EF | 0000064F | ARABIC DAMMA
+ F0 | 00000650 | ARABIC KASRA
+ F1 | 00000651 | ARABIC SHADDA
+ F2 | 00000652 | ARABIC SUKUN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_7.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_7.pm
new file mode 100644
index 0000000..8e84c27
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_7.pm
@@ -0,0 +1,1140 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_7.pm,v 1.1 2011-10-12 23:51:45 pertusus Exp $
+
+# Conversion routines for ISO-8859-7.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_7;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x2018,
+ 0x2019,
+ 0x00a3,
+ 0xfffd,
+ 0xfffd,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0xfffd,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0xfffd,
+ 0x2015,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x0384,
+ 0x0385,
+ 0x0386,
+ 0x00b7,
+ 0x0388,
+ 0x0389,
+ 0x038a,
+ 0x00bb,
+ 0x038c,
+ 0x00bd,
+ 0x038e,
+ 0x038f,
+ 0x0390,
+ 0x0391,
+ 0x0392,
+ 0x0393,
+ 0x0394,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0398,
+ 0x0399,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039e,
+ 0x039f,
+ 0x03a0,
+ 0x03a1,
+ 0xfffd,
+ 0x03a3,
+ 0x03a4,
+ 0x03a5,
+ 0x03a6,
+ 0x03a7,
+ 0x03a8,
+ 0x03a9,
+ 0x03aa,
+ 0x03ab,
+ 0x03ac,
+ 0x03ad,
+ 0x03ae,
+ 0x03af,
+ 0x03b0,
+ 0x03b1,
+ 0x03b2,
+ 0x03b3,
+ 0x03b4,
+ 0x03b5,
+ 0x03b6,
+ 0x03b7,
+ 0x03b8,
+ 0x03b9,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03be,
+ 0x03bf,
+ 0x03c0,
+ 0x03c1,
+ 0x03c2,
+ 0x03c3,
+ 0x03c4,
+ 0x03c5,
+ 0x03c6,
+ 0x03c7,
+ 0x03c8,
+ 0x03c9,
+ 0x03ca,
+ 0x03cb,
+ 0x03cc,
+ 0x03cd,
+ 0x03ce,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc2\xa3",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xef\xbf\xbd",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x95",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xce\x84",
+ "\xce\x85",
+ "\xce\x86",
+ "\xc2\xb7",
+ "\xce\x88",
+ "\xce\x89",
+ "\xce\x8a",
+ "\xc2\xbb",
+ "\xce\x8c",
+ "\xc2\xbd",
+ "\xce\x8e",
+ "\xce\x8f",
+ "\xce\x90",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x98",
+ "\xce\x99",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9e",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xce\xa1",
+ "\xef\xbf\xbd",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\xa5",
+ "\xce\xa6",
+ "\xce\xa7",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xaa",
+ "\xce\xab",
+ "\xce\xac",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\xaf",
+ "\xce\xb0",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xce\xb3",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xce\xb6",
+ "\xce\xb7",
+ "\xce\xb8",
+ "\xce\xb9",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbe",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x81",
+ "\xcf\x82",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xcf\x85",
+ "\xcf\x86",
+ "\xcf\x87",
+ "\xcf\x88",
+ "\xcf\x89",
+ "\xcf\x8a",
+ "\xcf\x8b",
+ "\xcf\x8c",
+ "\xcf\x8d",
+ "\xcf\x8e",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a3 => "\xa3",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x000000bd => "\xbd",
+ 0x00000384 => "\xb4",
+ 0x00000385 => "\xb5",
+ 0x00000386 => "\xb6",
+ 0x00000388 => "\xb8",
+ 0x00000389 => "\xb9",
+ 0x0000038a => "\xba",
+ 0x0000038c => "\xbc",
+ 0x0000038e => "\xbe",
+ 0x0000038f => "\xbf",
+ 0x00000390 => "\xc0",
+ 0x00000391 => "\xc1",
+ 0x00000392 => "\xc2",
+ 0x00000393 => "\xc3",
+ 0x00000394 => "\xc4",
+ 0x00000395 => "\xc5",
+ 0x00000396 => "\xc6",
+ 0x00000397 => "\xc7",
+ 0x00000398 => "\xc8",
+ 0x00000399 => "\xc9",
+ 0x0000039a => "\xca",
+ 0x0000039b => "\xcb",
+ 0x0000039c => "\xcc",
+ 0x0000039d => "\xcd",
+ 0x0000039e => "\xce",
+ 0x0000039f => "\xcf",
+ 0x000003a0 => "\xd0",
+ 0x000003a1 => "\xd1",
+ 0x000003a3 => "\xd3",
+ 0x000003a4 => "\xd4",
+ 0x000003a5 => "\xd5",
+ 0x000003a6 => "\xd6",
+ 0x000003a7 => "\xd7",
+ 0x000003a8 => "\xd8",
+ 0x000003a9 => "\xd9",
+ 0x000003aa => "\xda",
+ 0x000003ab => "\xdb",
+ 0x000003ac => "\xdc",
+ 0x000003ad => "\xdd",
+ 0x000003ae => "\xde",
+ 0x000003af => "\xdf",
+ 0x000003b0 => "\xe0",
+ 0x000003b1 => "\xe1",
+ 0x000003b2 => "\xe2",
+ 0x000003b3 => "\xe3",
+ 0x000003b4 => "\xe4",
+ 0x000003b5 => "\xe5",
+ 0x000003b6 => "\xe6",
+ 0x000003b7 => "\xe7",
+ 0x000003b8 => "\xe8",
+ 0x000003b9 => "\xe9",
+ 0x000003ba => "\xea",
+ 0x000003bb => "\xeb",
+ 0x000003bc => "\xec",
+ 0x000003bd => "\xed",
+ 0x000003be => "\xee",
+ 0x000003bf => "\xef",
+ 0x000003c0 => "\xf0",
+ 0x000003c1 => "\xf1",
+ 0x000003c2 => "\xf2",
+ 0x000003c3 => "\xf3",
+ 0x000003c4 => "\xf4",
+ 0x000003c5 => "\xf5",
+ 0x000003c6 => "\xf6",
+ 0x000003c7 => "\xf7",
+ 0x000003c8 => "\xf8",
+ 0x000003c9 => "\xf9",
+ 0x000003ca => "\xfa",
+ 0x000003cb => "\xfb",
+ 0x000003cc => "\xfc",
+ 0x000003cd => "\xfd",
+ 0x000003ce => "\xfe",
+ 0x00002015 => "\xaf",
+ 0x00002018 => "\xa1",
+ 0x00002019 => "\xa2",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_7 - Conversion routines for ISO-8859-7
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-7.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-126
+ alias ISO_8859-7:1987
+ alias ISO_8859-7
+ alias ELOT_928
+ alias ECMA-118
+ alias GREEK
+ alias GREEK8
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00002018 | LEFT SINGLE QUOTATION MARK
+ A2 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ A3 | 000000A3 | POUND SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AF | 00002015 | HORIZONTAL BAR
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 00000384 | GREEK TONOS
+ B5 | 00000385 | GREEK DIALYTIKA TONOS
+ B6 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ B9 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ BA | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ BF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ C0 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ C1 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ C2 | 00000392 | GREEK CAPITAL LETTER BETA
+ C3 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ C4 | 00000394 | GREEK CAPITAL LETTER DELTA
+ C5 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ C6 | 00000396 | GREEK CAPITAL LETTER ZETA
+ C7 | 00000397 | GREEK CAPITAL LETTER ETA
+ C8 | 00000398 | GREEK CAPITAL LETTER THETA
+ C9 | 00000399 | GREEK CAPITAL LETTER IOTA
+ CA | 0000039A | GREEK CAPITAL LETTER KAPPA
+ CB | 0000039B | GREEK CAPITAL LETTER LAMDA
+ CC | 0000039C | GREEK CAPITAL LETTER MU
+ CD | 0000039D | GREEK CAPITAL LETTER NU
+ CE | 0000039E | GREEK CAPITAL LETTER XI
+ CF | 0000039F | GREEK CAPITAL LETTER OMICRON
+ D0 | 000003A0 | GREEK CAPITAL LETTER PI
+ D1 | 000003A1 | GREEK CAPITAL LETTER RHO
+ D3 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ D4 | 000003A4 | GREEK CAPITAL LETTER TAU
+ D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ D6 | 000003A6 | GREEK CAPITAL LETTER PHI
+ D7 | 000003A7 | GREEK CAPITAL LETTER CHI
+ D8 | 000003A8 | GREEK CAPITAL LETTER PSI
+ D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ DA | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ DB | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ DC | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ DD | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ DE | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ DF | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ E0 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ E1 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E2 | 000003B2 | GREEK SMALL LETTER BETA
+ E3 | 000003B3 | GREEK SMALL LETTER GAMMA
+ E4 | 000003B4 | GREEK SMALL LETTER DELTA
+ E5 | 000003B5 | GREEK SMALL LETTER EPSILON
+ E6 | 000003B6 | GREEK SMALL LETTER ZETA
+ E7 | 000003B7 | GREEK SMALL LETTER ETA
+ E8 | 000003B8 | GREEK SMALL LETTER THETA
+ E9 | 000003B9 | GREEK SMALL LETTER IOTA
+ EA | 000003BA | GREEK SMALL LETTER KAPPA
+ EB | 000003BB | GREEK SMALL LETTER LAMDA
+ EC | 000003BC | GREEK SMALL LETTER MU
+ ED | 000003BD | GREEK SMALL LETTER NU
+ EE | 000003BE | GREEK SMALL LETTER XI
+ EF | 000003BF | GREEK SMALL LETTER OMICRON
+ F0 | 000003C0 | GREEK SMALL LETTER PI
+ F1 | 000003C1 | GREEK SMALL LETTER RHO
+ F2 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ F3 | 000003C3 | GREEK SMALL LETTER SIGMA
+ F4 | 000003C4 | GREEK SMALL LETTER TAU
+ F5 | 000003C5 | GREEK SMALL LETTER UPSILON
+ F6 | 000003C6 | GREEK SMALL LETTER PHI
+ F7 | 000003C7 | GREEK SMALL LETTER CHI
+ F8 | 000003C8 | GREEK SMALL LETTER PSI
+ F9 | 000003C9 | GREEK SMALL LETTER OMEGA
+ FA | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ FC | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ FD | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ FE | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_8.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_8.pm
new file mode 100644
index 0000000..a5dd4f9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_8.pm
@@ -0,0 +1,1077 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_8.pm,v 1.1 2011-10-12 23:51:45 pertusus Exp $
+
+# Conversion routines for ISO-8859-8.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_8;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0xfffd,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00d7,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00f7,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2017,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x05d9,
+ 0x05da,
+ 0x05db,
+ 0x05dc,
+ 0x05dd,
+ 0x05de,
+ 0x05df,
+ 0x05e0,
+ 0x05e1,
+ 0x05e2,
+ 0x05e3,
+ 0x05e4,
+ 0x05e5,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x05ea,
+ 0xfffd,
+ 0xfffd,
+ 0x200e,
+ 0x200f,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xef\xbf\xbd",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc3\x97",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc3\xb7",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x97",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xd7\x99",
+ "\xd7\x9a",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9d",
+ "\xd7\x9e",
+ "\xd7\x9f",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\xd7\xa2",
+ "\xd7\xa3",
+ "\xd7\xa4",
+ "\xd7\xa5",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xd7\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x8e",
+ "\xe2\x80\x8f",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000d7 => "\xaa",
+ 0x000000f7 => "\xba",
+ 0x000005d0 => "\xe0",
+ 0x000005d1 => "\xe1",
+ 0x000005d2 => "\xe2",
+ 0x000005d3 => "\xe3",
+ 0x000005d4 => "\xe4",
+ 0x000005d5 => "\xe5",
+ 0x000005d6 => "\xe6",
+ 0x000005d7 => "\xe7",
+ 0x000005d8 => "\xe8",
+ 0x000005d9 => "\xe9",
+ 0x000005da => "\xea",
+ 0x000005db => "\xeb",
+ 0x000005dc => "\xec",
+ 0x000005dd => "\xed",
+ 0x000005de => "\xee",
+ 0x000005df => "\xef",
+ 0x000005e0 => "\xf0",
+ 0x000005e1 => "\xf1",
+ 0x000005e2 => "\xf2",
+ 0x000005e3 => "\xf3",
+ 0x000005e4 => "\xf4",
+ 0x000005e5 => "\xf5",
+ 0x000005e6 => "\xf6",
+ 0x000005e7 => "\xf7",
+ 0x000005e8 => "\xf8",
+ 0x000005e9 => "\xf9",
+ 0x000005ea => "\xfa",
+ 0x0000200e => "\xfd",
+ 0x0000200f => "\xfe",
+ 0x00002017 => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_8 - Conversion routines for ISO-8859-8
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-8.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-138
+ alias ISO_8859-8:1988
+ alias ISO_8859-8
+ alias HEBREW
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000D7 | MULTIPLICATION SIGN
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000F7 | DIVISION SIGN
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ DF | 00002017 | DOUBLE LOW LINE
+ E0 | 000005D0 | HEBREW LETTER ALEF
+ E1 | 000005D1 | HEBREW LETTER BET
+ E2 | 000005D2 | HEBREW LETTER GIMEL
+ E3 | 000005D3 | HEBREW LETTER DALET
+ E4 | 000005D4 | HEBREW LETTER HE
+ E5 | 000005D5 | HEBREW LETTER VAV
+ E6 | 000005D6 | HEBREW LETTER ZAYIN
+ E7 | 000005D7 | HEBREW LETTER HET
+ E8 | 000005D8 | HEBREW LETTER TET
+ E9 | 000005D9 | HEBREW LETTER YOD
+ EA | 000005DA | HEBREW LETTER FINAL KAF
+ EB | 000005DB | HEBREW LETTER KAF
+ EC | 000005DC | HEBREW LETTER LAMED
+ ED | 000005DD | HEBREW LETTER FINAL MEM
+ EE | 000005DE | HEBREW LETTER MEM
+ EF | 000005DF | HEBREW LETTER FINAL NUN
+ F0 | 000005E0 | HEBREW LETTER NUN
+ F1 | 000005E1 | HEBREW LETTER SAMEKH
+ F2 | 000005E2 | HEBREW LETTER AYIN
+ F3 | 000005E3 | HEBREW LETTER FINAL PE
+ F4 | 000005E4 | HEBREW LETTER PE
+ F5 | 000005E5 | HEBREW LETTER FINAL TSADI
+ F6 | 000005E6 | HEBREW LETTER TSADI
+ F7 | 000005E7 | HEBREW LETTER QOF
+ F8 | 000005E8 | HEBREW LETTER RESH
+ F9 | 000005E9 | HEBREW LETTER SHIN
+ FA | 000005EA | HEBREW LETTER TAV
+ FD | 0000200E | LEFT-TO-RIGHT MARK
+ FE | 0000200F | RIGHT-TO-LEFT MARK
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_9.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_9.pm
new file mode 100644
index 0000000..18cce9f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/ISO_8859_9.pm
@@ -0,0 +1,1150 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: ISO_8859_9.pm,v 1.1 2011-10-12 23:51:45 pertusus Exp $
+
+# Conversion routines for ISO-8859-9.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::ISO_8859_9;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0080,
+ 0x0081,
+ 0x0082,
+ 0x0083,
+ 0x0084,
+ 0x0085,
+ 0x0086,
+ 0x0087,
+ 0x0088,
+ 0x0089,
+ 0x008a,
+ 0x008b,
+ 0x008c,
+ 0x008d,
+ 0x008e,
+ 0x008f,
+ 0x0090,
+ 0x0091,
+ 0x0092,
+ 0x0093,
+ 0x0094,
+ 0x0095,
+ 0x0096,
+ 0x0097,
+ 0x0098,
+ 0x0099,
+ 0x009a,
+ 0x009b,
+ 0x009c,
+ 0x009d,
+ 0x009e,
+ 0x009f,
+ 0x00a0,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x00a4,
+ 0x00a5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x00aa,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x00af,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x00b3,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x00b8,
+ 0x00b9,
+ 0x00ba,
+ 0x00bb,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00bf,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x011e,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x0130,
+ 0x015e,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x011f,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x0131,
+ 0x015f,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\x80",
+ "\xc2\x81",
+ "\xc2\x82",
+ "\xc2\x83",
+ "\xc2\x84",
+ "\xc2\x85",
+ "\xc2\x86",
+ "\xc2\x87",
+ "\xc2\x88",
+ "\xc2\x89",
+ "\xc2\x8a",
+ "\xc2\x8b",
+ "\xc2\x8c",
+ "\xc2\x8d",
+ "\xc2\x8e",
+ "\xc2\x8f",
+ "\xc2\x90",
+ "\xc2\x91",
+ "\xc2\x92",
+ "\xc2\x93",
+ "\xc2\x94",
+ "\xc2\x95",
+ "\xc2\x96",
+ "\xc2\x97",
+ "\xc2\x98",
+ "\xc2\x99",
+ "\xc2\x9a",
+ "\xc2\x9b",
+ "\xc2\x9c",
+ "\xc2\x9d",
+ "\xc2\x9e",
+ "\xc2\x9f",
+ "\xc2\xa0",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc2\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc2\xaa",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc2\xaf",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xc2\xb3",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc2\xb8",
+ "\xc2\xb9",
+ "\xc2\xba",
+ "\xc2\xbb",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc2\xbf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc4\x9e",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc4\xb0",
+ "\xc5\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc4\x9f",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc4\xb1",
+ "\xc5\x9f",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000080 => "\x80",
+ 0x00000081 => "\x81",
+ 0x00000082 => "\x82",
+ 0x00000083 => "\x83",
+ 0x00000084 => "\x84",
+ 0x00000085 => "\x85",
+ 0x00000086 => "\x86",
+ 0x00000087 => "\x87",
+ 0x00000088 => "\x88",
+ 0x00000089 => "\x89",
+ 0x0000008a => "\x8a",
+ 0x0000008b => "\x8b",
+ 0x0000008c => "\x8c",
+ 0x0000008d => "\x8d",
+ 0x0000008e => "\x8e",
+ 0x0000008f => "\x8f",
+ 0x00000090 => "\x90",
+ 0x00000091 => "\x91",
+ 0x00000092 => "\x92",
+ 0x00000093 => "\x93",
+ 0x00000094 => "\x94",
+ 0x00000095 => "\x95",
+ 0x00000096 => "\x96",
+ 0x00000097 => "\x97",
+ 0x00000098 => "\x98",
+ 0x00000099 => "\x99",
+ 0x0000009a => "\x9a",
+ 0x0000009b => "\x9b",
+ 0x0000009c => "\x9c",
+ 0x0000009d => "\x9d",
+ 0x0000009e => "\x9e",
+ 0x0000009f => "\x9f",
+ 0x000000a0 => "\xa0",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xaa",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000af => "\xaf",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b3 => "\xb3",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000b8 => "\xb8",
+ 0x000000b9 => "\xb9",
+ 0x000000ba => "\xba",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xbc",
+ 0x000000bd => "\xbd",
+ 0x000000be => "\xbe",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000ff => "\xff",
+ 0x0000011e => "\xd0",
+ 0x0000011f => "\xf0",
+ 0x00000130 => "\xdd",
+ 0x00000131 => "\xfd",
+ 0x0000015e => "\xde",
+ 0x0000015f => "\xfe",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::ISO_8859_9 - Conversion routines for ISO-8859-9
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for ISO-8859-9.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-148
+ alias ISO_8859-9:1989
+ alias ISO_8859-9
+ alias LATIN5
+ alias L5
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000080 | PADDING CHARACTER (PAD)
+ 81 | 00000081 | HIGH OCTET PRESET (HOP)
+ 82 | 00000082 | BREAK PERMITTED HERE (BPH)
+ 83 | 00000083 | NO BREAK HERE (NBH)
+ 84 | 00000084 | INDEX (IND)
+ 85 | 00000085 | NEXT LINE (NEL)
+ 86 | 00000086 | START OF SELECTED AREA (SSA)
+ 87 | 00000087 | END OF SELECTED AREA (ESA)
+ 88 | 00000088 | CHARACTER TABULATION SET (HTS)
+ 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+ 8A | 0000008A | LINE TABULATION SET (VTS)
+ 8B | 0000008B | PARTIAL LINE FORWARD (PLD)
+ 8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
+ 8D | 0000008D | REVERSE LINE FEED (RI)
+ 8E | 0000008E | SINGLE-SHIFT TWO (SS2)
+ 8F | 0000008F | SINGLE-SHIFT THREE (SS3)
+ 90 | 00000090 | DEVICE CONTROL STRING (DCS)
+ 91 | 00000091 | PRIVATE USE ONE (PU1)
+ 92 | 00000092 | PRIVATE USE TWO (PU2)
+ 93 | 00000093 | SET TRANSMIT STATE (STS)
+ 94 | 00000094 | CANCEL CHARACTER (CCH)
+ 95 | 00000095 | MESSAGE WAITING (MW)
+ 96 | 00000096 | START OF GUARDED AREA (SPA)
+ 97 | 00000097 | END OF GUARDED AREA (EPA)
+ 98 | 00000098 | START OF STRING (SOS)
+ 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+ 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
+ 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
+ 9C | 0000009C | STRING TERMINATOR (ST)
+ 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
+ 9E | 0000009E | PRIVACY MESSAGE (PM)
+ 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000000A5 | YEN SIGN
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000000AA | FEMININE ORDINAL INDICATOR
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 000000AF | MACRON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 000000B3 | SUPERSCRIPT THREE
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 000000B8 | CEDILLA
+ B9 | 000000B9 | SUPERSCRIPT ONE
+ BA | 000000BA | MASCULINE ORDINAL INDICATOR
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 000000BC | VULGAR FRACTION ONE QUARTER
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 000000BE | VULGAR FRACTION THREE QUARTERS
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 00000131 | LATIN SMALL LETTER DOTLESS I
+ FE | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_R.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_R.pm
new file mode 100644
index 0000000..7a8ed51
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_R.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: KOI8_R.pm,v 1.1 2011-10-12 23:51:45 pertusus Exp $
+
+# Conversion routines for KOI8-R.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::KOI8_R;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x2500,
+ 0x2502,
+ 0x250c,
+ 0x2510,
+ 0x2514,
+ 0x2518,
+ 0x251c,
+ 0x2524,
+ 0x252c,
+ 0x2534,
+ 0x253c,
+ 0x2580,
+ 0x2584,
+ 0x2588,
+ 0x258c,
+ 0x2590,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2320,
+ 0x25a0,
+ 0x2219,
+ 0x221a,
+ 0x2248,
+ 0x2264,
+ 0x2265,
+ 0x00a0,
+ 0x2321,
+ 0x00b0,
+ 0x00b2,
+ 0x00b7,
+ 0x00f7,
+ 0x2550,
+ 0x2551,
+ 0x2552,
+ 0x0451,
+ 0x2553,
+ 0x2554,
+ 0x2555,
+ 0x2556,
+ 0x2557,
+ 0x2558,
+ 0x2559,
+ 0x255a,
+ 0x255b,
+ 0x255c,
+ 0x255d,
+ 0x255e,
+ 0x255f,
+ 0x2560,
+ 0x2561,
+ 0x0401,
+ 0x2562,
+ 0x2563,
+ 0x2564,
+ 0x2565,
+ 0x2566,
+ 0x2567,
+ 0x2568,
+ 0x2569,
+ 0x256a,
+ 0x256b,
+ 0x256c,
+ 0x00a9,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x042a,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x94\x80",
+ "\xe2\x94\x82",
+ "\xe2\x94\x8c",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\x98",
+ "\xe2\x94\x9c",
+ "\xe2\x94\xa4",
+ "\xe2\x94\xac",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xbc",
+ "\xe2\x96\x80",
+ "\xe2\x96\x84",
+ "\xe2\x96\x88",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x8c\xa0",
+ "\xe2\x96\xa0",
+ "\xe2\x88\x99",
+ "\xe2\x88\x9a",
+ "\xe2\x89\x88",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa0",
+ "\xe2\x8c\xa1",
+ "\xc2\xb0",
+ "\xc2\xb2",
+ "\xc2\xb7",
+ "\xc3\xb7",
+ "\xe2\x95\x90",
+ "\xe2\x95\x91",
+ "\xe2\x95\x92",
+ "\xd1\x91",
+ "\xe2\x95\x93",
+ "\xe2\x95\x94",
+ "\xe2\x95\x95",
+ "\xe2\x95\x96",
+ "\xe2\x95\x97",
+ "\xe2\x95\x98",
+ "\xe2\x95\x99",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x9b",
+ "\xe2\x95\x9c",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\xa0",
+ "\xe2\x95\xa1",
+ "\xd0\x81",
+ "\xe2\x95\xa2",
+ "\xe2\x95\xa3",
+ "\xe2\x95\xa4",
+ "\xe2\x95\xa5",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xaa",
+ "\xe2\x95\xab",
+ "\xe2\x95\xac",
+ "\xc2\xa9",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xd0\xaa",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\x9a",
+ 0x000000a9 => "\xbf",
+ 0x000000b0 => "\x9c",
+ 0x000000b2 => "\x9d",
+ 0x000000b7 => "\x9e",
+ 0x000000f7 => "\x9f",
+ 0x00000401 => "\xb3",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\xff",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+ 0x00000451 => "\xa3",
+ 0x00002219 => "\x95",
+ 0x0000221a => "\x96",
+ 0x00002248 => "\x97",
+ 0x00002264 => "\x98",
+ 0x00002265 => "\x99",
+ 0x00002320 => "\x93",
+ 0x00002321 => "\x9b",
+ 0x00002500 => "\x80",
+ 0x00002502 => "\x81",
+ 0x0000250c => "\x82",
+ 0x00002510 => "\x83",
+ 0x00002514 => "\x84",
+ 0x00002518 => "\x85",
+ 0x0000251c => "\x86",
+ 0x00002524 => "\x87",
+ 0x0000252c => "\x88",
+ 0x00002534 => "\x89",
+ 0x0000253c => "\x8a",
+ 0x00002550 => "\xa0",
+ 0x00002551 => "\xa1",
+ 0x00002552 => "\xa2",
+ 0x00002553 => "\xa4",
+ 0x00002554 => "\xa5",
+ 0x00002555 => "\xa6",
+ 0x00002556 => "\xa7",
+ 0x00002557 => "\xa8",
+ 0x00002558 => "\xa9",
+ 0x00002559 => "\xaa",
+ 0x0000255a => "\xab",
+ 0x0000255b => "\xac",
+ 0x0000255c => "\xad",
+ 0x0000255d => "\xae",
+ 0x0000255e => "\xaf",
+ 0x0000255f => "\xb0",
+ 0x00002560 => "\xb1",
+ 0x00002561 => "\xb2",
+ 0x00002562 => "\xb4",
+ 0x00002563 => "\xb5",
+ 0x00002564 => "\xb6",
+ 0x00002565 => "\xb7",
+ 0x00002566 => "\xb8",
+ 0x00002567 => "\xb9",
+ 0x00002568 => "\xba",
+ 0x00002569 => "\xbb",
+ 0x0000256a => "\xbc",
+ 0x0000256b => "\xbd",
+ 0x0000256c => "\xbe",
+ 0x00002580 => "\x8b",
+ 0x00002584 => "\x8c",
+ 0x00002588 => "\x8d",
+ 0x0000258c => "\x8e",
+ 0x00002590 => "\x8f",
+ 0x00002591 => "\x90",
+ 0x00002592 => "\x91",
+ 0x00002593 => "\x92",
+ 0x000025a0 => "\x94",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::KOI8_R - Conversion routines for KOI8-R
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for KOI8-R.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: RFC1489 via Gabor Kiss E<lt>kissg@sztaki.huE<gt>
+ and Andrey A. Chernov E<lt>ache@astral.msk.suE<gt>
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ 8B | 00002580 | UPPER HALF BLOCK
+ 8C | 00002584 | LOWER HALF BLOCK
+ 8D | 00002588 | FULL BLOCK
+ 8E | 0000258C | LEFT HALF BLOCK
+ 8F | 00002590 | RIGHT HALF BLOCK
+ 90 | 00002591 | LIGHT SHADE
+ 91 | 00002592 | MEDIUM SHADE
+ 92 | 00002593 | DARK SHADE
+ 93 | 00002320 | TOP HALF INTEGRAL
+ 94 | 000025A0 | BLACK SQUARE
+ 95 | 00002219 | BULLET OPERATOR
+ 96 | 0000221A | SQUARE ROOT
+ 97 | 00002248 | ALMOST EQUAL TO
+ 98 | 00002264 | LESS-THAN OR EQUAL TO
+ 99 | 00002265 | GREATER-THAN OR EQUAL TO
+ 9A | 000000A0 | NO-BREAK SPACE
+ 9B | 00002321 | BOTTOM HALF INTEGRAL
+ 9C | 000000B0 | DEGREE SIGN
+ 9D | 000000B2 | SUPERSCRIPT TWO
+ 9E | 000000B7 | MIDDLE DOT
+ 9F | 000000F7 | DIVISION SIGN
+ A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ A3 | 00000451 | CYRILLIC SMALL LETTER IO
+ A4 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ A6 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ A7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ AD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ AE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B3 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ B4 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ B5 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ B6 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ B7 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ BD | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ BE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ BF | 000000A9 | COPYRIGHT SIGN
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_RU.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_RU.pm
new file mode 100644
index 0000000..a1d493e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_RU.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: KOI8_RU.pm,v 1.1 2011-10-12 23:51:46 pertusus Exp $
+
+# Conversion routines for KOI8-RU.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::KOI8_RU;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x2500,
+ 0x2502,
+ 0x250c,
+ 0x2510,
+ 0x2514,
+ 0x2518,
+ 0x251c,
+ 0x2524,
+ 0x252c,
+ 0x2534,
+ 0x253c,
+ 0x2580,
+ 0x2584,
+ 0x2588,
+ 0x258c,
+ 0x2590,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2320,
+ 0x25a0,
+ 0x2219,
+ 0x221a,
+ 0x2248,
+ 0x2264,
+ 0x2265,
+ 0x00a0,
+ 0x2321,
+ 0x00b0,
+ 0x00b2,
+ 0x00b7,
+ 0x00f7,
+ 0x2550,
+ 0x2551,
+ 0x2552,
+ 0x0451,
+ 0x0454,
+ 0x2554,
+ 0x0456,
+ 0x0457,
+ 0x2557,
+ 0x2558,
+ 0x2559,
+ 0x255a,
+ 0x255b,
+ 0x0491,
+ 0x045e,
+ 0x255e,
+ 0x255f,
+ 0x2560,
+ 0x2561,
+ 0x0401,
+ 0x0404,
+ 0x2563,
+ 0x0406,
+ 0x0407,
+ 0x2566,
+ 0x2567,
+ 0x2568,
+ 0x2569,
+ 0x256a,
+ 0x0490,
+ 0x040e,
+ 0x00a9,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x042a,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x94\x80",
+ "\xe2\x94\x82",
+ "\xe2\x94\x8c",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\x98",
+ "\xe2\x94\x9c",
+ "\xe2\x94\xa4",
+ "\xe2\x94\xac",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xbc",
+ "\xe2\x96\x80",
+ "\xe2\x96\x84",
+ "\xe2\x96\x88",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x8c\xa0",
+ "\xe2\x96\xa0",
+ "\xe2\x88\x99",
+ "\xe2\x88\x9a",
+ "\xe2\x89\x88",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa0",
+ "\xe2\x8c\xa1",
+ "\xc2\xb0",
+ "\xc2\xb2",
+ "\xc2\xb7",
+ "\xc3\xb7",
+ "\xe2\x95\x90",
+ "\xe2\x95\x91",
+ "\xe2\x95\x92",
+ "\xd1\x91",
+ "\xd1\x94",
+ "\xe2\x95\x94",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xe2\x95\x97",
+ "\xe2\x95\x98",
+ "\xe2\x95\x99",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x9b",
+ "\xd2\x91",
+ "\xd1\x9e",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\xa0",
+ "\xe2\x95\xa1",
+ "\xd0\x81",
+ "\xd0\x84",
+ "\xe2\x95\xa3",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xaa",
+ "\xd2\x90",
+ "\xd0\x8e",
+ "\xc2\xa9",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xd0\xaa",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\x9a",
+ 0x000000a9 => "\xbf",
+ 0x000000b0 => "\x9c",
+ 0x000000b2 => "\x9d",
+ 0x000000b7 => "\x9e",
+ 0x000000f7 => "\x9f",
+ 0x00000401 => "\xb3",
+ 0x00000404 => "\xb4",
+ 0x00000406 => "\xb6",
+ 0x00000407 => "\xb7",
+ 0x0000040e => "\xbe",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\xff",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+ 0x00000451 => "\xa3",
+ 0x00000454 => "\xa4",
+ 0x00000456 => "\xa6",
+ 0x00000457 => "\xa7",
+ 0x0000045e => "\xae",
+ 0x00000490 => "\xbd",
+ 0x00000491 => "\xad",
+ 0x00002219 => "\x95",
+ 0x0000221a => "\x96",
+ 0x00002248 => "\x97",
+ 0x00002264 => "\x98",
+ 0x00002265 => "\x99",
+ 0x00002320 => "\x93",
+ 0x00002321 => "\x9b",
+ 0x00002500 => "\x80",
+ 0x00002502 => "\x81",
+ 0x0000250c => "\x82",
+ 0x00002510 => "\x83",
+ 0x00002514 => "\x84",
+ 0x00002518 => "\x85",
+ 0x0000251c => "\x86",
+ 0x00002524 => "\x87",
+ 0x0000252c => "\x88",
+ 0x00002534 => "\x89",
+ 0x0000253c => "\x8a",
+ 0x00002550 => "\xa0",
+ 0x00002551 => "\xa1",
+ 0x00002552 => "\xa2",
+ 0x00002554 => "\xa5",
+ 0x00002557 => "\xa8",
+ 0x00002558 => "\xa9",
+ 0x00002559 => "\xaa",
+ 0x0000255a => "\xab",
+ 0x0000255b => "\xac",
+ 0x0000255e => "\xaf",
+ 0x0000255f => "\xb0",
+ 0x00002560 => "\xb1",
+ 0x00002561 => "\xb2",
+ 0x00002563 => "\xb5",
+ 0x00002566 => "\xb8",
+ 0x00002567 => "\xb9",
+ 0x00002568 => "\xba",
+ 0x00002569 => "\xbb",
+ 0x0000256a => "\xbc",
+ 0x00002580 => "\x8b",
+ 0x00002584 => "\x8c",
+ 0x00002588 => "\x8d",
+ 0x0000258c => "\x8e",
+ 0x00002590 => "\x8f",
+ 0x00002591 => "\x90",
+ 0x00002592 => "\x91",
+ 0x00002593 => "\x92",
+ 0x000025a0 => "\x94",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::KOI8_RU - Conversion routines for KOI8-RU
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for KOI8-RU.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ 8B | 00002580 | UPPER HALF BLOCK
+ 8C | 00002584 | LOWER HALF BLOCK
+ 8D | 00002588 | FULL BLOCK
+ 8E | 0000258C | LEFT HALF BLOCK
+ 8F | 00002590 | RIGHT HALF BLOCK
+ 90 | 00002591 | LIGHT SHADE
+ 91 | 00002592 | MEDIUM SHADE
+ 92 | 00002593 | DARK SHADE
+ 93 | 00002320 | TOP HALF INTEGRAL
+ 94 | 000025A0 | BLACK SQUARE
+ 95 | 00002219 | BULLET OPERATOR
+ 96 | 0000221A | SQUARE ROOT
+ 97 | 00002248 | ALMOST EQUAL TO
+ 98 | 00002264 | LESS-THAN OR EQUAL TO
+ 99 | 00002265 | GREATER-THAN OR EQUAL TO
+ 9A | 000000A0 | NO-BREAK SPACE
+ 9B | 00002321 | BOTTOM HALF INTEGRAL
+ 9C | 000000B0 | DEGREE SIGN
+ 9D | 000000B2 | SUPERSCRIPT TWO
+ 9E | 000000B7 | MIDDLE DOT
+ 9F | 000000F7 | DIVISION SIGN
+ A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ A3 | 00000451 | CYRILLIC SMALL LETTER IO
+ A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ A7 | 00000457 | CYRILLIC SMALL LETTER YI
+ A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ AD | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ AE | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B3 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B5 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ B7 | 00000407 | CYRILLIC CAPITAL LETTER YI
+ B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ BD | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ BE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ BF | 000000A9 | COPYRIGHT SIGN
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_T.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_T.pm
new file mode 100644
index 0000000..4fabb16
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_T.pm
@@ -0,0 +1,1107 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: KOI8_T.pm,v 1.1 2011-10-12 23:51:46 pertusus Exp $
+
+# Conversion routines for KOI8-T.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::KOI8_T;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x049b,
+ 0x0493,
+ 0x201a,
+ 0x0492,
+ 0x201e,
+ 0x2026,
+ 0x2020,
+ 0x2021,
+ 0xfffd,
+ 0x2030,
+ 0x04b3,
+ 0x2039,
+ 0x04b2,
+ 0x04b7,
+ 0x04b6,
+ 0xfffd,
+ 0x049a,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0xfffd,
+ 0x2122,
+ 0xfffd,
+ 0x203a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x04ef,
+ 0x04ee,
+ 0x0451,
+ 0x00a4,
+ 0x04e3,
+ 0x00a6,
+ 0x00a7,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0xfffd,
+ 0x00b0,
+ 0x00b1,
+ 0x00b2,
+ 0x0401,
+ 0xfffd,
+ 0x04e2,
+ 0x00b6,
+ 0x00b7,
+ 0xfffd,
+ 0x2116,
+ 0xfffd,
+ 0x00bb,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x00a9,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x042a,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd2\x9b",
+ "\xd2\x93",
+ "\xe2\x80\x9a",
+ "\xd2\x92",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xb0",
+ "\xd2\xb3",
+ "\xe2\x80\xb9",
+ "\xd2\xb2",
+ "\xd2\xb7",
+ "\xd2\xb6",
+ "\xef\xbf\xbd",
+ "\xd2\x9a",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xef\xbf\xbd",
+ "\xe2\x84\xa2",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd3\xaf",
+ "\xd3\xae",
+ "\xd1\x91",
+ "\xc2\xa4",
+ "\xd3\xa3",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xef\xbf\xbd",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc2\xb2",
+ "\xd0\x81",
+ "\xef\xbf\xbd",
+ "\xd3\xa2",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xef\xbf\xbd",
+ "\xe2\x84\x96",
+ "\xef\xbf\xbd",
+ "\xc2\xbb",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xa9",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xd0\xaa",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a9 => "\xbf",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\xb2",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x00000401 => "\xb3",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\xff",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+ 0x00000451 => "\xa3",
+ 0x00000492 => "\x83",
+ 0x00000493 => "\x81",
+ 0x0000049a => "\x90",
+ 0x0000049b => "\x80",
+ 0x000004b2 => "\x8c",
+ 0x000004b3 => "\x8a",
+ 0x000004b6 => "\x8e",
+ 0x000004b7 => "\x8d",
+ 0x000004e2 => "\xb5",
+ 0x000004e3 => "\xa5",
+ 0x000004ee => "\xa2",
+ 0x000004ef => "\xa1",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201a => "\x82",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x0000201e => "\x84",
+ 0x00002020 => "\x86",
+ 0x00002021 => "\x87",
+ 0x00002022 => "\x95",
+ 0x00002026 => "\x85",
+ 0x00002030 => "\x89",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x00002116 => "\xb9",
+ 0x00002122 => "\x99",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::KOI8_T - Conversion routines for KOI8-T
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for KOI8-T.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ Author: Michael Davis E<lt>tajik_fonts@iname.comE<gt>
+ URL: http://www.traveltajikistan.com/fonts
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 0000049B | CYRILLIC SMALL LETTER KA WITH DESCENDER
+ 81 | 00000493 | CYRILLIC SMALL LETTER GHE WITH STROKE
+ 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ 83 | 00000492 | CYRILLIC CAPITAL LETTER GHE WITH STROKE
+ 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ 85 | 00002026 | HORIZONTAL ELLIPSIS
+ 86 | 00002020 | DAGGER
+ 87 | 00002021 | DOUBLE DAGGER
+ 89 | 00002030 | PER MILLE SIGN
+ 8A | 000004B3 | CYRILLIC SMALL LETTER HA WITH DESCENDER
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 000004B2 | CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+ 8D | 000004B7 | CYRILLIC SMALL LETTER CHE WITH DESCENDER
+ 8E | 000004B6 | CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+ 90 | 0000049A | CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 99 | 00002122 | TRADE MARK SIGN
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ A1 | 000004EF | CYRILLIC SMALL LETTER U WITH MACRON
+ A2 | 000004EE | CYRILLIC CAPITAL LETTER U WITH MACRON
+ A3 | 00000451 | CYRILLIC SMALL LETTER IO
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000004E3 | CYRILLIC SMALL LETTER I WITH MACRON
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000000B2 | SUPERSCRIPT TWO
+ B3 | 00000401 | CYRILLIC CAPITAL LETTER IE
+ B5 | 000004E2 | CYRILLIC CAPITAL LETTER I WITH MACRON
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B9 | 00002116 | NUMERO SIGN
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BF | 000000A9 | COPYRIGHT SIGN
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_U.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_U.pm
new file mode 100644
index 0000000..8b12102
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI8_U.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: KOI8_U.pm,v 1.1 2011-10-12 23:51:46 pertusus Exp $
+
+# Conversion routines for KOI8-U.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::KOI8_U;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x2500,
+ 0x2502,
+ 0x250c,
+ 0x2510,
+ 0x2514,
+ 0x2518,
+ 0x251c,
+ 0x2524,
+ 0x252c,
+ 0x2534,
+ 0x253c,
+ 0x2580,
+ 0x2584,
+ 0x2588,
+ 0x258c,
+ 0x2590,
+ 0x2591,
+ 0x2592,
+ 0x2593,
+ 0x2320,
+ 0x25a0,
+ 0x2219,
+ 0x221a,
+ 0x2248,
+ 0x2264,
+ 0x2265,
+ 0x00a0,
+ 0x2321,
+ 0x00b0,
+ 0x00b2,
+ 0x00b7,
+ 0x00f7,
+ 0x2550,
+ 0x2551,
+ 0x2552,
+ 0x0451,
+ 0x0454,
+ 0x2554,
+ 0x0456,
+ 0x0457,
+ 0x2557,
+ 0x2558,
+ 0x2559,
+ 0x255a,
+ 0x255b,
+ 0x0491,
+ 0x255d,
+ 0x255e,
+ 0x255f,
+ 0x2560,
+ 0x2561,
+ 0x0401,
+ 0x0404,
+ 0x2563,
+ 0x0406,
+ 0x0407,
+ 0x2566,
+ 0x2567,
+ 0x2568,
+ 0x2569,
+ 0x256a,
+ 0x0490,
+ 0x256c,
+ 0x00a9,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0x042a,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x94\x80",
+ "\xe2\x94\x82",
+ "\xe2\x94\x8c",
+ "\xe2\x94\x90",
+ "\xe2\x94\x94",
+ "\xe2\x94\x98",
+ "\xe2\x94\x9c",
+ "\xe2\x94\xa4",
+ "\xe2\x94\xac",
+ "\xe2\x94\xb4",
+ "\xe2\x94\xbc",
+ "\xe2\x96\x80",
+ "\xe2\x96\x84",
+ "\xe2\x96\x88",
+ "\xe2\x96\x8c",
+ "\xe2\x96\x90",
+ "\xe2\x96\x91",
+ "\xe2\x96\x92",
+ "\xe2\x96\x93",
+ "\xe2\x8c\xa0",
+ "\xe2\x96\xa0",
+ "\xe2\x88\x99",
+ "\xe2\x88\x9a",
+ "\xe2\x89\x88",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa0",
+ "\xe2\x8c\xa1",
+ "\xc2\xb0",
+ "\xc2\xb2",
+ "\xc2\xb7",
+ "\xc3\xb7",
+ "\xe2\x95\x90",
+ "\xe2\x95\x91",
+ "\xe2\x95\x92",
+ "\xd1\x91",
+ "\xd1\x94",
+ "\xe2\x95\x94",
+ "\xd1\x96",
+ "\xd1\x97",
+ "\xe2\x95\x97",
+ "\xe2\x95\x98",
+ "\xe2\x95\x99",
+ "\xe2\x95\x9a",
+ "\xe2\x95\x9b",
+ "\xd2\x91",
+ "\xe2\x95\x9d",
+ "\xe2\x95\x9e",
+ "\xe2\x95\x9f",
+ "\xe2\x95\xa0",
+ "\xe2\x95\xa1",
+ "\xd0\x81",
+ "\xd0\x84",
+ "\xe2\x95\xa3",
+ "\xd0\x86",
+ "\xd0\x87",
+ "\xe2\x95\xa6",
+ "\xe2\x95\xa7",
+ "\xe2\x95\xa8",
+ "\xe2\x95\xa9",
+ "\xe2\x95\xaa",
+ "\xd2\x90",
+ "\xe2\x95\xac",
+ "\xc2\xa9",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xd0\xaa",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\x9a",
+ 0x000000a9 => "\xbf",
+ 0x000000b0 => "\x9c",
+ 0x000000b2 => "\x9d",
+ 0x000000b7 => "\x9e",
+ 0x000000f7 => "\x9f",
+ 0x00000401 => "\xb3",
+ 0x00000404 => "\xb4",
+ 0x00000406 => "\xb6",
+ 0x00000407 => "\xb7",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042a => "\xff",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+ 0x00000451 => "\xa3",
+ 0x00000454 => "\xa4",
+ 0x00000456 => "\xa6",
+ 0x00000457 => "\xa7",
+ 0x00000490 => "\xbd",
+ 0x00000491 => "\xad",
+ 0x00002219 => "\x95",
+ 0x0000221a => "\x96",
+ 0x00002248 => "\x97",
+ 0x00002264 => "\x98",
+ 0x00002265 => "\x99",
+ 0x00002320 => "\x93",
+ 0x00002321 => "\x9b",
+ 0x00002500 => "\x80",
+ 0x00002502 => "\x81",
+ 0x0000250c => "\x82",
+ 0x00002510 => "\x83",
+ 0x00002514 => "\x84",
+ 0x00002518 => "\x85",
+ 0x0000251c => "\x86",
+ 0x00002524 => "\x87",
+ 0x0000252c => "\x88",
+ 0x00002534 => "\x89",
+ 0x0000253c => "\x8a",
+ 0x00002550 => "\xa0",
+ 0x00002551 => "\xa1",
+ 0x00002552 => "\xa2",
+ 0x00002554 => "\xa5",
+ 0x00002557 => "\xa8",
+ 0x00002558 => "\xa9",
+ 0x00002559 => "\xaa",
+ 0x0000255a => "\xab",
+ 0x0000255b => "\xac",
+ 0x0000255d => "\xae",
+ 0x0000255e => "\xaf",
+ 0x0000255f => "\xb0",
+ 0x00002560 => "\xb1",
+ 0x00002561 => "\xb2",
+ 0x00002563 => "\xb5",
+ 0x00002566 => "\xb8",
+ 0x00002567 => "\xb9",
+ 0x00002568 => "\xba",
+ 0x00002569 => "\xbb",
+ 0x0000256a => "\xbc",
+ 0x0000256c => "\xbe",
+ 0x00002580 => "\x8b",
+ 0x00002584 => "\x8c",
+ 0x00002588 => "\x8d",
+ 0x0000258c => "\x8e",
+ 0x00002590 => "\x8f",
+ 0x00002591 => "\x90",
+ 0x00002592 => "\x91",
+ 0x00002593 => "\x92",
+ 0x000025a0 => "\x94",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::KOI8_U - Conversion routines for KOI8-U
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for KOI8-U.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.1
+ source: RFC 2319
+ source: http://www.net.ua/KOI8-U/
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
+ 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
+ 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
+ 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
+ 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
+ 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
+ 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ 8B | 00002580 | UPPER HALF BLOCK
+ 8C | 00002584 | LOWER HALF BLOCK
+ 8D | 00002588 | FULL BLOCK
+ 8E | 0000258C | LEFT HALF BLOCK
+ 8F | 00002590 | RIGHT HALF BLOCK
+ 90 | 00002591 | LIGHT SHADE
+ 91 | 00002592 | MEDIUM SHADE
+ 92 | 00002593 | DARK SHADE
+ 93 | 00002320 | TOP HALF INTEGRAL
+ 94 | 000025A0 | BLACK SQUARE
+ 95 | 00002219 | BULLET OPERATOR
+ 96 | 0000221A | SQUARE ROOT
+ 97 | 00002248 | ALMOST EQUAL TO
+ 98 | 00002264 | LESS THAN OR EQUAL TO
+ 99 | 00002265 | GREATER THAN OR EQUAL TO
+ 9A | 000000A0 | NO-BREAK SPACE
+ 9B | 00002321 | BOTTOM HALF INTEGRAL
+ 9C | 000000B0 | DEGREE SIGN
+ 9D | 000000B2 | SUPERSCRIPT DIGIT TWO
+ 9E | 000000B7 | MIDDLE DOT
+ 9F | 000000F7 | DIVISION SIGN
+ A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
+ A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
+ A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ A3 | 00000451 | CYRILLIC SMALL LETTER IO
+ A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ A7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
+ A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
+ A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
+ AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ AD | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ AE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
+ AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ B3 | 00000401 | CYRILLIC CAPITAL LETTER IO
+ B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B5 | 00002563 | DOUBLE VERTICAL AND LEFT
+ B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ B7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
+ B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ BD | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ BE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ BF | 000000A9 | COPYRIGHT SIGN
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI_8.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI_8.pm
new file mode 100644
index 0000000..aa7a3c2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/KOI_8.pm
@@ -0,0 +1,1015 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: KOI_8.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for KOI-8.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::KOI_8;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x044e,
+ 0x0430,
+ 0x0431,
+ 0x0446,
+ 0x0434,
+ 0x0435,
+ 0x0444,
+ 0x0433,
+ 0x0445,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x044f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0436,
+ 0x0432,
+ 0x044c,
+ 0x044b,
+ 0x0437,
+ 0x0448,
+ 0x044d,
+ 0x0449,
+ 0x0447,
+ 0x044a,
+ 0x042e,
+ 0x0410,
+ 0x0411,
+ 0x0426,
+ 0x0414,
+ 0x0415,
+ 0x0424,
+ 0x0413,
+ 0x0425,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x042f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0416,
+ 0x0412,
+ 0x042c,
+ 0x042b,
+ 0x0417,
+ 0x0428,
+ 0x042d,
+ 0x0429,
+ 0x0427,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd1\x8e",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd1\x86",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd1\x84",
+ "\xd0\xb3",
+ "\xd1\x85",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x8f",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd0\xb6",
+ "\xd0\xb2",
+ "\xd1\x8c",
+ "\xd1\x8b",
+ "\xd0\xb7",
+ "\xd1\x88",
+ "\xd1\x8d",
+ "\xd1\x89",
+ "\xd1\x87",
+ "\xd1\x8a",
+ "\xd0\xae",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\xa6",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\xa4",
+ "\xd0\x93",
+ "\xd0\xa5",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xaf",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\x96",
+ "\xd0\x92",
+ "\xd0\xac",
+ "\xd0\xab",
+ "\xd0\x97",
+ "\xd0\xa8",
+ "\xd0\xad",
+ "\xd0\xa9",
+ "\xd0\xa7",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000410 => "\xe1",
+ 0x00000411 => "\xe2",
+ 0x00000412 => "\xf7",
+ 0x00000413 => "\xe7",
+ 0x00000414 => "\xe4",
+ 0x00000415 => "\xe5",
+ 0x00000416 => "\xf6",
+ 0x00000417 => "\xfa",
+ 0x00000418 => "\xe9",
+ 0x00000419 => "\xea",
+ 0x0000041a => "\xeb",
+ 0x0000041b => "\xec",
+ 0x0000041c => "\xed",
+ 0x0000041d => "\xee",
+ 0x0000041e => "\xef",
+ 0x0000041f => "\xf0",
+ 0x00000420 => "\xf2",
+ 0x00000421 => "\xf3",
+ 0x00000422 => "\xf4",
+ 0x00000423 => "\xf5",
+ 0x00000424 => "\xe6",
+ 0x00000425 => "\xe8",
+ 0x00000426 => "\xe3",
+ 0x00000427 => "\xfe",
+ 0x00000428 => "\xfb",
+ 0x00000429 => "\xfd",
+ 0x0000042b => "\xf9",
+ 0x0000042c => "\xf8",
+ 0x0000042d => "\xfc",
+ 0x0000042e => "\xe0",
+ 0x0000042f => "\xf1",
+ 0x00000430 => "\xc1",
+ 0x00000431 => "\xc2",
+ 0x00000432 => "\xd7",
+ 0x00000433 => "\xc7",
+ 0x00000434 => "\xc4",
+ 0x00000435 => "\xc5",
+ 0x00000436 => "\xd6",
+ 0x00000437 => "\xda",
+ 0x00000438 => "\xc9",
+ 0x00000439 => "\xca",
+ 0x0000043a => "\xcb",
+ 0x0000043b => "\xcc",
+ 0x0000043c => "\xcd",
+ 0x0000043d => "\xce",
+ 0x0000043e => "\xcf",
+ 0x0000043f => "\xd0",
+ 0x00000440 => "\xd2",
+ 0x00000441 => "\xd3",
+ 0x00000442 => "\xd4",
+ 0x00000443 => "\xd5",
+ 0x00000444 => "\xc6",
+ 0x00000445 => "\xc8",
+ 0x00000446 => "\xc3",
+ 0x00000447 => "\xde",
+ 0x00000448 => "\xdb",
+ 0x00000449 => "\xdd",
+ 0x0000044a => "\xdf",
+ 0x0000044b => "\xd9",
+ 0x0000044c => "\xd8",
+ 0x0000044d => "\xdc",
+ 0x0000044e => "\xc0",
+ 0x0000044f => "\xd1",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::KOI_8 - Conversion routines for KOI-8
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for KOI-8.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: Andrey A. Chernov E<lt>ache@astral.msk.suE<gt>
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ C0 | 0000044E | CYRILLIC SMALL LETTER YU
+ C1 | 00000430 | CYRILLIC SMALL LETTER A
+ C2 | 00000431 | CYRILLIC SMALL LETTER BE
+ C3 | 00000446 | CYRILLIC SMALL LETTER TSE
+ C4 | 00000434 | CYRILLIC SMALL LETTER DE
+ C5 | 00000435 | CYRILLIC SMALL LETTER IE
+ C6 | 00000444 | CYRILLIC SMALL LETTER EF
+ C7 | 00000433 | CYRILLIC SMALL LETTER GHE
+ C8 | 00000445 | CYRILLIC SMALL LETTER HA
+ C9 | 00000438 | CYRILLIC SMALL LETTER I
+ CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ CB | 0000043A | CYRILLIC SMALL LETTER KA
+ CC | 0000043B | CYRILLIC SMALL LETTER EL
+ CD | 0000043C | CYRILLIC SMALL LETTER EM
+ CE | 0000043D | CYRILLIC SMALL LETTER EN
+ CF | 0000043E | CYRILLIC SMALL LETTER O
+ D0 | 0000043F | CYRILLIC SMALL LETTER PE
+ D1 | 0000044F | CYRILLIC SMALL LETTER YA
+ D2 | 00000440 | CYRILLIC SMALL LETTER ER
+ D3 | 00000441 | CYRILLIC SMALL LETTER ES
+ D4 | 00000442 | CYRILLIC SMALL LETTER TE
+ D5 | 00000443 | CYRILLIC SMALL LETTER U
+ D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ D7 | 00000432 | CYRILLIC SMALL LETTER VE
+ D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ D9 | 0000044B | CYRILLIC SMALL LETTER YERU
+ DA | 00000437 | CYRILLIC SMALL LETTER ZE
+ DB | 00000448 | CYRILLIC SMALL LETTER SHA
+ DC | 0000044D | CYRILLIC SMALL LETTER E
+ DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ DE | 00000447 | CYRILLIC SMALL LETTER CHE
+ DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
+ E1 | 00000410 | CYRILLIC CAPITAL LETTER A
+ E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ E9 | 00000418 | CYRILLIC CAPITAL LETTER I
+ EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ EB | 0000041A | CYRILLIC CAPITAL LETTER KA
+ EC | 0000041B | CYRILLIC CAPITAL LETTER EL
+ ED | 0000041C | CYRILLIC CAPITAL LETTER EM
+ EE | 0000041D | CYRILLIC CAPITAL LETTER EN
+ EF | 0000041E | CYRILLIC CAPITAL LETTER O
+ F0 | 0000041F | CYRILLIC CAPITAL LETTER PE
+ F1 | 0000042F | CYRILLIC CAPITAL LETTER YA
+ F2 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ F3 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ F4 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ F5 | 00000423 | CYRILLIC CAPITAL LETTER U
+ F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ F7 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ FA | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ FB | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ FC | 0000042D | CYRILLIC CAPITAL LETTER E
+ FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ FE | 00000427 | CYRILLIC CAPITAL LETTER CHE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK.pm
new file mode 100644
index 0000000..a3d6dcc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK.pm
@@ -0,0 +1,888 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: LATIN_GREEK.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for LATIN-GREEK.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::LATIN_GREEK;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x00a3,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0391,
+ 0x0392,
+ 0x03a8,
+ 0x0394,
+ 0x0395,
+ 0x03a6,
+ 0x0393,
+ 0x0397,
+ 0x0399,
+ 0x039e,
+ 0x039a,
+ 0x039b,
+ 0x039c,
+ 0x039d,
+ 0x039f,
+ 0x03a0,
+ 0xfffd,
+ 0x03a1,
+ 0x03a3,
+ 0x03a4,
+ 0x0398,
+ 0x03a9,
+ 0x00b7,
+ 0x03a7,
+ 0x03a5,
+ 0x0396,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x00a8,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\xc2\xa3",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\xce\x91",
+ "\xce\x92",
+ "\xce\xa8",
+ "\xce\x94",
+ "\xce\x95",
+ "\xce\xa6",
+ "\xce\x93",
+ "\xce\x97",
+ "\xce\x99",
+ "\xce\x9e",
+ "\xce\x9a",
+ "\xce\x9b",
+ "\xce\x9c",
+ "\xce\x9d",
+ "\xce\x9f",
+ "\xce\xa0",
+ "\xef\xbf\xbd",
+ "\xce\xa1",
+ "\xce\xa3",
+ "\xce\xa4",
+ "\xce\x98",
+ "\xce\xa9",
+ "\xc2\xb7",
+ "\xce\xa7",
+ "\xce\xa5",
+ "\xce\x96",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\xc2\xa8",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007f => "\x7f",
+ 0x000000a3 => "\x23",
+ 0x000000a8 => "\x7e",
+ 0x000000b7 => "\x77",
+ 0x00000391 => "\x61",
+ 0x00000392 => "\x62",
+ 0x00000393 => "\x67",
+ 0x00000394 => "\x64",
+ 0x00000395 => "\x65",
+ 0x00000396 => "\x7a",
+ 0x00000397 => "\x68",
+ 0x00000398 => "\x75",
+ 0x00000399 => "\x69",
+ 0x0000039a => "\x6b",
+ 0x0000039b => "\x6c",
+ 0x0000039c => "\x6d",
+ 0x0000039d => "\x6e",
+ 0x0000039e => "\x6a",
+ 0x0000039f => "\x6f",
+ 0x000003a0 => "\x70",
+ 0x000003a1 => "\x72",
+ 0x000003a3 => "\x73",
+ 0x000003a4 => "\x74",
+ 0x000003a5 => "\x79",
+ 0x000003a6 => "\x66",
+ 0x000003a7 => "\x78",
+ 0x000003a8 => "\x63",
+ 0x000003a9 => "\x76",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::LATIN_GREEK - Conversion routines for LATIN_GREEK
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for LATIN-GREEK.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-19
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 000000A3 | POUND SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ 62 | 00000392 | GREEK CAPITAL LETTER BETA
+ 63 | 000003A8 | GREEK CAPITAL LETTER PSI
+ 64 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 65 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ 66 | 000003A6 | GREEK CAPITAL LETTER PHI
+ 67 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 68 | 00000397 | GREEK CAPITAL LETTER ETA
+ 69 | 00000399 | GREEK CAPITAL LETTER IOTA
+ 6A | 0000039E | GREEK CAPITAL LETTER XI
+ 6B | 0000039A | GREEK CAPITAL LETTER KAPPA
+ 6C | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 6D | 0000039C | GREEK CAPITAL LETTER MU
+ 6E | 0000039D | GREEK CAPITAL LETTER NU
+ 6F | 0000039F | GREEK CAPITAL LETTER OMICRON
+ 70 | 000003A0 | GREEK CAPITAL LETTER PI
+ 72 | 000003A1 | GREEK CAPITAL LETTER RHO
+ 73 | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 74 | 000003A4 | GREEK CAPITAL LETTER TAU
+ 75 | 00000398 | GREEK CAPITAL LETTER THETA
+ 76 | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 77 | 000000B7 | MIDDLE DOT
+ 78 | 000003A7 | GREEK CAPITAL LETTER CHI
+ 79 | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ 7A | 00000396 | GREEK CAPITAL LETTER ZETA
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 000000A8 | DIAERESIS
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK_1.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK_1.pm
new file mode 100644
index 0000000..b9963ea
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/LATIN_GREEK_1.pm
@@ -0,0 +1,890 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: LATIN_GREEK_1.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for LATIN-GREEK-1.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::LATIN_GREEK_1;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x039e,
+ 0x0022,
+ 0x0393,
+ 0x00a4,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x03a8,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x03a0,
+ 0x0394,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x03a9,
+ 0x0398,
+ 0x03a6,
+ 0x039b,
+ 0x03a3,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x203e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\xce\x9e",
+ "\x22",
+ "\xce\x93",
+ "\xc2\xa4",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\xce\xa8",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\xce\xa0",
+ "\xce\x94",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xce\xa9",
+ "\xce\x98",
+ "\xce\xa6",
+ "\xce\x9b",
+ "\xce\xa3",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\xe2\x80\xbe",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000022 => "\x22",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007f => "\x7f",
+ 0x000000a4 => "\x24",
+ 0x00000393 => "\x23",
+ 0x00000394 => "\x40",
+ 0x00000398 => "\x5c",
+ 0x0000039b => "\x5e",
+ 0x0000039e => "\x21",
+ 0x000003a0 => "\x3f",
+ 0x000003a3 => "\x5f",
+ 0x000003a6 => "\x5d",
+ 0x000003a8 => "\x3a",
+ 0x000003a9 => "\x5b",
+ 0x0000203e => "\x7e",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::LATIN_GREEK_1 - Conversion routines for LATIN_GREEK_1
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for LATIN-GREEK-1.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-27
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 0000039E | GREEK CAPITAL LETTER XI
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ 24 | 000000A4 | CURRENCY SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 000003A8 | GREEK CAPITAL LETTER PSI
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 000003A0 | GREEK CAPITAL LETTER PI
+ 40 | 00000394 | GREEK CAPITAL LETTER DELTA
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ 5C | 00000398 | GREEK CAPITAL LETTER THETA
+ 5D | 000003A6 | GREEK CAPITAL LETTER PHI
+ 5E | 0000039B | GREEK CAPITAL LETTER LAMDA
+ 5F | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000203E | OVERLINE
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACARABIC.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACARABIC.pm
new file mode 100644
index 0000000..f90792e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACARABIC.pm
@@ -0,0 +1,1094 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACARABIC.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for MACARABIC.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACARABIC;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00a0,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x06ba,
+ 0x00ab,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x2026,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00bb,
+ 0x00f4,
+ 0x00f6,
+ 0x00f7,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x066a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x060c,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0660,
+ 0x0661,
+ 0x0662,
+ 0x0663,
+ 0x0664,
+ 0x0665,
+ 0x0666,
+ 0x0667,
+ 0x0668,
+ 0x0669,
+ 0xfffd,
+ 0x061b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x061f,
+ 0x066d,
+ 0x0621,
+ 0x0622,
+ 0x0623,
+ 0x0624,
+ 0x0625,
+ 0x0626,
+ 0x0627,
+ 0x0628,
+ 0x0629,
+ 0x062a,
+ 0x062b,
+ 0x062c,
+ 0x062d,
+ 0x062e,
+ 0x062f,
+ 0x0630,
+ 0x0631,
+ 0x0632,
+ 0x0633,
+ 0x0634,
+ 0x0635,
+ 0x0636,
+ 0x0637,
+ 0x0638,
+ 0x0639,
+ 0x063a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0640,
+ 0x0641,
+ 0x0642,
+ 0x0643,
+ 0x0644,
+ 0x0645,
+ 0x0646,
+ 0x0647,
+ 0x0648,
+ 0x0649,
+ 0x064a,
+ 0x064b,
+ 0x064c,
+ 0x064d,
+ 0x064e,
+ 0x064f,
+ 0x0650,
+ 0x0651,
+ 0x0652,
+ 0x067e,
+ 0x0679,
+ 0x0686,
+ 0x06d5,
+ 0x06a4,
+ 0x06af,
+ 0x0688,
+ 0x0691,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0698,
+ 0x06d2,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc2\xa0",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xda\xba",
+ "\xc2\xab",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xe2\x80\xa6",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc2\xbb",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\x8c",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\xa0",
+ "\xd9\xa1",
+ "\xd9\xa2",
+ "\xd9\xa3",
+ "\xd9\xa4",
+ "\xd9\xa5",
+ "\xd9\xa6",
+ "\xd9\xa7",
+ "\xd9\xa8",
+ "\xd9\xa9",
+ "\xef\xbf\xbd",
+ "\xd8\x9b",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd8\x9f",
+ "\xd9\xad",
+ "\xd8\xa1",
+ "\xd8\xa2",
+ "\xd8\xa3",
+ "\xd8\xa4",
+ "\xd8\xa5",
+ "\xd8\xa6",
+ "\xd8\xa7",
+ "\xd8\xa8",
+ "\xd8\xa9",
+ "\xd8\xaa",
+ "\xd8\xab",
+ "\xd8\xac",
+ "\xd8\xad",
+ "\xd8\xae",
+ "\xd8\xaf",
+ "\xd8\xb0",
+ "\xd8\xb1",
+ "\xd8\xb2",
+ "\xd8\xb3",
+ "\xd8\xb4",
+ "\xd8\xb5",
+ "\xd8\xb6",
+ "\xd8\xb7",
+ "\xd8\xb8",
+ "\xd8\xb9",
+ "\xd8\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd9\x80",
+ "\xd9\x81",
+ "\xd9\x82",
+ "\xd9\x83",
+ "\xd9\x84",
+ "\xd9\x85",
+ "\xd9\x86",
+ "\xd9\x87",
+ "\xd9\x88",
+ "\xd9\x89",
+ "\xd9\x8a",
+ "\xd9\x8b",
+ "\xd9\x8c",
+ "\xd9\x8d",
+ "\xd9\x8e",
+ "\xd9\x8f",
+ "\xd9\x90",
+ "\xd9\x91",
+ "\xd9\x92",
+ "\xd9\xbe",
+ "\xd9\xb9",
+ "\xda\x86",
+ "\xdb\x95",
+ "\xda\xa4",
+ "\xda\xaf",
+ "\xda\x88",
+ "\xda\x91",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xda\x98",
+ "\xdb\x92",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\x81",
+ 0x000000ab => "\x8c",
+ 0x000000bb => "\x98",
+ 0x000000c4 => "\x80",
+ 0x000000c7 => "\x82",
+ 0x000000c9 => "\x83",
+ 0x000000d1 => "\x84",
+ 0x000000d6 => "\x85",
+ 0x000000dc => "\x86",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e4 => "\x8a",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\x9b",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x0000060c => "\xac",
+ 0x0000061b => "\xbb",
+ 0x0000061f => "\xbf",
+ 0x00000621 => "\xc1",
+ 0x00000622 => "\xc2",
+ 0x00000623 => "\xc3",
+ 0x00000624 => "\xc4",
+ 0x00000625 => "\xc5",
+ 0x00000626 => "\xc6",
+ 0x00000627 => "\xc7",
+ 0x00000628 => "\xc8",
+ 0x00000629 => "\xc9",
+ 0x0000062a => "\xca",
+ 0x0000062b => "\xcb",
+ 0x0000062c => "\xcc",
+ 0x0000062d => "\xcd",
+ 0x0000062e => "\xce",
+ 0x0000062f => "\xcf",
+ 0x00000630 => "\xd0",
+ 0x00000631 => "\xd1",
+ 0x00000632 => "\xd2",
+ 0x00000633 => "\xd3",
+ 0x00000634 => "\xd4",
+ 0x00000635 => "\xd5",
+ 0x00000636 => "\xd6",
+ 0x00000637 => "\xd7",
+ 0x00000638 => "\xd8",
+ 0x00000639 => "\xd9",
+ 0x0000063a => "\xda",
+ 0x00000640 => "\xe0",
+ 0x00000641 => "\xe1",
+ 0x00000642 => "\xe2",
+ 0x00000643 => "\xe3",
+ 0x00000644 => "\xe4",
+ 0x00000645 => "\xe5",
+ 0x00000646 => "\xe6",
+ 0x00000647 => "\xe7",
+ 0x00000648 => "\xe8",
+ 0x00000649 => "\xe9",
+ 0x0000064a => "\xea",
+ 0x0000064b => "\xeb",
+ 0x0000064c => "\xec",
+ 0x0000064d => "\xed",
+ 0x0000064e => "\xee",
+ 0x0000064f => "\xef",
+ 0x00000650 => "\xf0",
+ 0x00000651 => "\xf1",
+ 0x00000652 => "\xf2",
+ 0x00000660 => "\xb0",
+ 0x00000661 => "\xb1",
+ 0x00000662 => "\xb2",
+ 0x00000663 => "\xb3",
+ 0x00000664 => "\xb4",
+ 0x00000665 => "\xb5",
+ 0x00000666 => "\xb6",
+ 0x00000667 => "\xb7",
+ 0x00000668 => "\xb8",
+ 0x00000669 => "\xb9",
+ 0x0000066a => "\xa5",
+ 0x0000066d => "\xc0",
+ 0x00000679 => "\xf4",
+ 0x0000067e => "\xf3",
+ 0x00000686 => "\xf5",
+ 0x00000688 => "\xf9",
+ 0x00000691 => "\xfa",
+ 0x00000698 => "\xfe",
+ 0x000006a4 => "\xf7",
+ 0x000006af => "\xf8",
+ 0x000006ba => "\x8b",
+ 0x000006d2 => "\xff",
+ 0x000006d5 => "\xf6",
+ 0x00002026 => "\x93",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACARABIC - Conversion routines for MACARABIC
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACARABIC.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000A0 | NO-BREAK SPACE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000006BA | ARABIC LETTER NOON GHUNNA
+ 8C | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 00002026 | HORIZONTAL ELLIPSIS
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F7 | DIVISION SIGN
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A5 | 0000066A | ARABIC PERCENT SIGN
+ AC | 0000060C | ARABIC COMMA
+ B0 | 00000660 | ARABIC-INDIC DIGIT ZERO
+ B1 | 00000661 | ARABIC-INDIC DIGIT ONE
+ B2 | 00000662 | ARABIC-INDIC DIGIT TWO
+ B3 | 00000663 | ARABIC-INDIC DIGIT THREE
+ B4 | 00000664 | ARABIC-INDIC DIGIT FOUR
+ B5 | 00000665 | ARABIC-INDIC DIGIT FIVE
+ B6 | 00000666 | ARABIC-INDIC DIGIT SIX
+ B7 | 00000667 | ARABIC-INDIC DIGIT SEVEN
+ B8 | 00000668 | ARABIC-INDIC DIGIT EIGHT
+ B9 | 00000669 | ARABIC-INDIC DIGIT NINE
+ BB | 0000061B | ARABIC SEMICOLON
+ BF | 0000061F | ARABIC QUESTION MARK
+ C0 | 0000066D | ARABIC FIVE POINTED STAR
+ C1 | 00000621 | ARABIC LETTER HAMZA
+ C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
+ C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
+ C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
+ C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW
+ C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
+ C7 | 00000627 | ARABIC LETTER ALEF
+ C8 | 00000628 | ARABIC LETTER BEH
+ C9 | 00000629 | ARABIC LETTER TEH MARBUTA
+ CA | 0000062A | ARABIC LETTER TEH
+ CB | 0000062B | ARABIC LETTER THEH
+ CC | 0000062C | ARABIC LETTER JEEM
+ CD | 0000062D | ARABIC LETTER HAH
+ CE | 0000062E | ARABIC LETTER KHAH
+ CF | 0000062F | ARABIC LETTER DAL
+ D0 | 00000630 | ARABIC LETTER THAL
+ D1 | 00000631 | ARABIC LETTER REH
+ D2 | 00000632 | ARABIC LETTER ZAIN
+ D3 | 00000633 | ARABIC LETTER SEEN
+ D4 | 00000634 | ARABIC LETTER SHEEN
+ D5 | 00000635 | ARABIC LETTER SAD
+ D6 | 00000636 | ARABIC LETTER DAD
+ D7 | 00000637 | ARABIC LETTER TAH
+ D8 | 00000638 | ARABIC LETTER ZAH
+ D9 | 00000639 | ARABIC LETTER AIN
+ DA | 0000063A | ARABIC LETTER GHAIN
+ E0 | 00000640 | ARABIC TATWEEL
+ E1 | 00000641 | ARABIC LETTER FEH
+ E2 | 00000642 | ARABIC LETTER QAF
+ E3 | 00000643 | ARABIC LETTER KAF
+ E4 | 00000644 | ARABIC LETTER LAM
+ E5 | 00000645 | ARABIC LETTER MEEM
+ E6 | 00000646 | ARABIC LETTER NOON
+ E7 | 00000647 | ARABIC LETTER HEH
+ E8 | 00000648 | ARABIC LETTER WAW
+ E9 | 00000649 | ARABIC LETTER ALEF MAKSURA
+ EA | 0000064A | ARABIC LETTER YEH
+ EB | 0000064B | ARABIC FATHATAN
+ EC | 0000064C | ARABIC DAMMATAN
+ ED | 0000064D | ARABIC KASRATAN
+ EE | 0000064E | ARABIC FATHA
+ EF | 0000064F | ARABIC DAMMA
+ F0 | 00000650 | ARABIC KASRA
+ F1 | 00000651 | ARABIC SHADDA
+ F2 | 00000652 | ARABIC SUKUN
+ F3 | 0000067E | ARABIC LETTER PEH
+ F4 | 00000679 | ARABIC LETTER TTEH
+ F5 | 00000686 | ARABIC LETTER TCHEH
+ F6 | 000006D5 | ARABIC LETTER AE
+ F7 | 000006A4 | ARABIC LETTER VEH
+ F8 | 000006AF | ARABIC LETTER GAF
+ F9 | 00000688 | ARABIC LETTER DDAL
+ FA | 00000691 | ARABIC LETTER RREH
+ FE | 00000698 | ARABIC LETTER JEH
+ FF | 000006D2 | ARABIC LETTER YEH BARREE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCROATIAN.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCROATIAN.pm
new file mode 100644
index 0000000..89c7f78
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCROATIAN.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACCROATIAN.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for MACCROATIAN.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACCROATIAN;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x0160,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x017d,
+ 0x00d8,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x2206,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x0161,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x2126,
+ 0x017e,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x0106,
+ 0x00ab,
+ 0x010c,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x0110,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0xfffd,
+ 0x00a9,
+ 0x2044,
+ 0x00a4,
+ 0x2039,
+ 0x203a,
+ 0x00c6,
+ 0x00bb,
+ 0x2013,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x0107,
+ 0x00c1,
+ 0x010d,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0x0111,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x03c0,
+ 0x00cb,
+ 0x02da,
+ 0x00b8,
+ 0x00ca,
+ 0x00e6,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc5\xa0",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc5\xbd",
+ "\xc3\x98",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xe2\x88\x86",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xc5\xa1",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xe2\x84\xa6",
+ "\xc5\xbe",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xc4\x86",
+ "\xc2\xab",
+ "\xc4\x8c",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xc4\x90",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xef\xbf\xbd",
+ "\xc2\xa9",
+ "\xe2\x81\x84",
+ "\xc2\xa4",
+ "\xe2\x80\xb9",
+ "\xe2\x80\xba",
+ "\xc3\x86",
+ "\xc2\xbb",
+ "\xe2\x80\x93",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc4\x87",
+ "\xc3\x81",
+ "\xc4\x8d",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc4\x91",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcf\x80",
+ "\xc3\x8b",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xc3\x8a",
+ "\xc3\xa6",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xdb",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xd9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xdf",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xde",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xfd",
+ 0x000000cb => "\xfa",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xfe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x00000106 => "\xc6",
+ 0x00000107 => "\xe6",
+ 0x0000010c => "\xc8",
+ 0x0000010d => "\xe8",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000131 => "\xf5",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x00000160 => "\xa9",
+ 0x00000161 => "\xb9",
+ 0x0000017d => "\xae",
+ 0x0000017e => "\xbe",
+ 0x00000192 => "\xc4",
+ 0x000002c6 => "\xf6",
+ 0x000002c7 => "\xff",
+ 0x000002da => "\xfb",
+ 0x000002dc => "\xf7",
+ 0x000003c0 => "\xf9",
+ 0x00002013 => "\xe0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002039 => "\xdc",
+ 0x0000203a => "\xdd",
+ 0x00002044 => "\xda",
+ 0x00002122 => "\xaa",
+ 0x00002126 => "\xbd",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xb4",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025ca => "\xd7",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACCROATIAN - Conversion routines for MACCROATIAN
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACCROATIAN.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 00002206 | INCREMENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 00002126 | OHM SIGN
+ BE | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D9 | 000000A9 | COPYRIGHT SIGN
+ DA | 00002044 | FRACTION SLASH
+ DB | 000000A4 | CURRENCY SIGN
+ DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ DE | 000000C6 | LATIN CAPITAL LETTER AE
+ DF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ E0 | 00002013 | EN DASH
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ F7 | 000002DC | SMALL TILDE
+ F8 | 000000AF | MACRON
+ F9 | 000003C0 | GREEK SMALL LETTER PI
+ FA | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ FE | 000000E6 | LATIN SMALL LETTER AE
+ FF | 000002C7 | CARON
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCYRILLIC.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCYRILLIC.pm
new file mode 100644
index 0000000..6627915
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACCYRILLIC.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACCYRILLIC.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for MACCYRILLIC.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACCYRILLIC;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x0406,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x0402,
+ 0x0452,
+ 0x2260,
+ 0x0403,
+ 0x0453,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x0456,
+ 0x00b5,
+ 0x2202,
+ 0x0408,
+ 0x0404,
+ 0x0454,
+ 0x0407,
+ 0x0457,
+ 0x0409,
+ 0x0459,
+ 0x040a,
+ 0x045a,
+ 0x0458,
+ 0x0405,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x040b,
+ 0x045b,
+ 0x040c,
+ 0x045c,
+ 0x0455,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x201e,
+ 0x040e,
+ 0x045e,
+ 0x040f,
+ 0x045f,
+ 0x2116,
+ 0x0401,
+ 0x0451,
+ 0x044f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x00a4,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xd0\x86",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xd0\x82",
+ "\xd1\x92",
+ "\xe2\x89\xa0",
+ "\xd0\x83",
+ "\xd1\x93",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xd1\x96",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xd0\x88",
+ "\xd0\x84",
+ "\xd1\x94",
+ "\xd0\x87",
+ "\xd1\x97",
+ "\xd0\x89",
+ "\xd1\x99",
+ "\xd0\x8a",
+ "\xd1\x9a",
+ "\xd1\x98",
+ "\xd0\x85",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xd0\x8b",
+ "\xd1\x9b",
+ "\xd0\x8c",
+ "\xd1\x9c",
+ "\xd1\x95",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x80\x9e",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xd0\x8f",
+ "\xd1\x9f",
+ "\xe2\x84\x96",
+ "\xd0\x81",
+ "\xd1\x91",
+ "\xd1\x8f",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xc2\xa4",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xff",
+ 0x000000a7 => "\xa4",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000bb => "\xc8",
+ 0x000000f7 => "\xd6",
+ 0x00000192 => "\xc4",
+ 0x00000401 => "\xdd",
+ 0x00000402 => "\xab",
+ 0x00000403 => "\xae",
+ 0x00000404 => "\xb8",
+ 0x00000405 => "\xc1",
+ 0x00000406 => "\xa7",
+ 0x00000407 => "\xba",
+ 0x00000408 => "\xb7",
+ 0x00000409 => "\xbc",
+ 0x0000040a => "\xbe",
+ 0x0000040b => "\xcb",
+ 0x0000040c => "\xcd",
+ 0x0000040e => "\xd8",
+ 0x0000040f => "\xda",
+ 0x00000410 => "\x80",
+ 0x00000411 => "\x81",
+ 0x00000412 => "\x82",
+ 0x00000413 => "\x83",
+ 0x00000414 => "\x84",
+ 0x00000415 => "\x85",
+ 0x00000416 => "\x86",
+ 0x00000417 => "\x87",
+ 0x00000418 => "\x88",
+ 0x00000419 => "\x89",
+ 0x0000041a => "\x8a",
+ 0x0000041b => "\x8b",
+ 0x0000041c => "\x8c",
+ 0x0000041d => "\x8d",
+ 0x0000041e => "\x8e",
+ 0x0000041f => "\x8f",
+ 0x00000420 => "\x90",
+ 0x00000421 => "\x91",
+ 0x00000422 => "\x92",
+ 0x00000423 => "\x93",
+ 0x00000424 => "\x94",
+ 0x00000425 => "\x95",
+ 0x00000426 => "\x96",
+ 0x00000427 => "\x97",
+ 0x00000428 => "\x98",
+ 0x00000429 => "\x99",
+ 0x0000042a => "\x9a",
+ 0x0000042b => "\x9b",
+ 0x0000042c => "\x9c",
+ 0x0000042d => "\x9d",
+ 0x0000042e => "\x9e",
+ 0x0000042f => "\x9f",
+ 0x00000430 => "\xe0",
+ 0x00000431 => "\xe1",
+ 0x00000432 => "\xe2",
+ 0x00000433 => "\xe3",
+ 0x00000434 => "\xe4",
+ 0x00000435 => "\xe5",
+ 0x00000436 => "\xe6",
+ 0x00000437 => "\xe7",
+ 0x00000438 => "\xe8",
+ 0x00000439 => "\xe9",
+ 0x0000043a => "\xea",
+ 0x0000043b => "\xeb",
+ 0x0000043c => "\xec",
+ 0x0000043d => "\xed",
+ 0x0000043e => "\xee",
+ 0x0000043f => "\xef",
+ 0x00000440 => "\xf0",
+ 0x00000441 => "\xf1",
+ 0x00000442 => "\xf2",
+ 0x00000443 => "\xf3",
+ 0x00000444 => "\xf4",
+ 0x00000445 => "\xf5",
+ 0x00000446 => "\xf6",
+ 0x00000447 => "\xf7",
+ 0x00000448 => "\xf8",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\xfa",
+ 0x0000044b => "\xfb",
+ 0x0000044c => "\xfc",
+ 0x0000044d => "\xfd",
+ 0x0000044e => "\xfe",
+ 0x0000044f => "\xdf",
+ 0x00000451 => "\xde",
+ 0x00000452 => "\xac",
+ 0x00000453 => "\xaf",
+ 0x00000454 => "\xb9",
+ 0x00000455 => "\xcf",
+ 0x00000456 => "\xb4",
+ 0x00000457 => "\xbb",
+ 0x00000458 => "\xc0",
+ 0x00000459 => "\xbd",
+ 0x0000045a => "\xbf",
+ 0x0000045b => "\xcc",
+ 0x0000045c => "\xce",
+ 0x0000045e => "\xd9",
+ 0x0000045f => "\xdb",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xd7",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002116 => "\xdc",
+ 0x00002122 => "\xaa",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xc6",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACCYRILLIC - Conversion routines for MACCYRILLIC
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACCYRILLIC.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 81 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 82 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 84 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 85 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 88 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 8A | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 8B | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 8C | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 8D | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 8E | 0000041E | CYRILLIC CAPITAL LETTER O
+ 8F | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 90 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 91 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 92 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 93 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 94 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 95 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 9D | 0000042D | CYRILLIC CAPITAL LETTER E
+ 9E | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9F | 0000042F | CYRILLIC CAPITAL LETTER YA
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 00000402 | CYRILLIC CAPITAL LETTER DJE
+ AC | 00000452 | CYRILLIC SMALL LETTER DJE
+ AD | 00002260 | NOT EQUAL TO
+ AE | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ AF | 00000453 | CYRILLIC SMALL LETTER GJE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ BA | 00000407 | CYRILLIC CAPITAL LETTER YI
+ BB | 00000457 | CYRILLIC SMALL LETTER YI
+ BC | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ BD | 00000459 | CYRILLIC SMALL LETTER LJE
+ BE | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ BF | 0000045A | CYRILLIC SMALL LETTER NJE
+ C0 | 00000458 | CYRILLIC SMALL LETTER JE
+ C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ CC | 0000045B | CYRILLIC SMALL LETTER TSHE
+ CD | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ CE | 0000045C | CYRILLIC SMALL LETTER KJE
+ CF | 00000455 | CYRILLIC SMALL LETTER DZE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ DB | 0000045F | CYRILLIC SMALL LETTER DZHE
+ DC | 00002116 | NUMERO SIGN
+ DD | 00000401 | CYRILLIC CAPITAL LETTER IO
+ DE | 00000451 | CYRILLIC SMALL LETTER IO
+ DF | 0000044F | CYRILLIC SMALL LETTER YA
+ E0 | 00000430 | CYRILLIC SMALL LETTER A
+ E1 | 00000431 | CYRILLIC SMALL LETTER BE
+ E2 | 00000432 | CYRILLIC SMALL LETTER VE
+ E3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ E4 | 00000434 | CYRILLIC SMALL LETTER DE
+ E5 | 00000435 | CYRILLIC SMALL LETTER IE
+ E6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ E7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ E8 | 00000438 | CYRILLIC SMALL LETTER I
+ E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ EA | 0000043A | CYRILLIC SMALL LETTER KA
+ EB | 0000043B | CYRILLIC SMALL LETTER EL
+ EC | 0000043C | CYRILLIC SMALL LETTER EM
+ ED | 0000043D | CYRILLIC SMALL LETTER EN
+ EE | 0000043E | CYRILLIC SMALL LETTER O
+ EF | 0000043F | CYRILLIC SMALL LETTER PE
+ F0 | 00000440 | CYRILLIC SMALL LETTER ER
+ F1 | 00000441 | CYRILLIC SMALL LETTER ES
+ F2 | 00000442 | CYRILLIC SMALL LETTER TE
+ F3 | 00000443 | CYRILLIC SMALL LETTER U
+ F4 | 00000444 | CYRILLIC SMALL LETTER EF
+ F5 | 00000445 | CYRILLIC SMALL LETTER HA
+ F6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ F7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ F8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ FB | 0000044B | CYRILLIC SMALL LETTER YERU
+ FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ FD | 0000044D | CYRILLIC SMALL LETTER E
+ FE | 0000044E | CYRILLIC SMALL LETTER YU
+ FF | 000000A4 | CURRENCY SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACGREEK.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACGREEK.pm
new file mode 100644
index 0000000..5dc1fcb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACGREEK.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACGREEK.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for MACGREEK.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACGREEK;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00b9,
+ 0x00b2,
+ 0x00c9,
+ 0x00b3,
+ 0x00d6,
+ 0x00dc,
+ 0x0385,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x0384,
+ 0x00a8,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00a3,
+ 0x2122,
+ 0x00ee,
+ 0x00ef,
+ 0x2022,
+ 0x00bd,
+ 0x2030,
+ 0x00f4,
+ 0x00f6,
+ 0x00a6,
+ 0x00ad,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x0393,
+ 0x0394,
+ 0x0398,
+ 0x039b,
+ 0x039e,
+ 0x03a0,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x03a3,
+ 0x03aa,
+ 0x00a7,
+ 0x2260,
+ 0x00b0,
+ 0x0387,
+ 0x0391,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x0392,
+ 0x0395,
+ 0x0396,
+ 0x0397,
+ 0x0399,
+ 0x039a,
+ 0x039c,
+ 0x03a6,
+ 0x03ab,
+ 0x03a8,
+ 0x03a9,
+ 0x03ac,
+ 0x039d,
+ 0x00ac,
+ 0x039f,
+ 0x03a1,
+ 0x2248,
+ 0x03a4,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x03a5,
+ 0x03a7,
+ 0x0386,
+ 0x0388,
+ 0x0153,
+ 0x2013,
+ 0x2015,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x0389,
+ 0x038a,
+ 0x038c,
+ 0x038e,
+ 0x03ad,
+ 0x03ae,
+ 0x03af,
+ 0x03cc,
+ 0x038f,
+ 0x03cd,
+ 0x03b1,
+ 0x03b2,
+ 0x03c8,
+ 0x03b4,
+ 0x03b5,
+ 0x03c6,
+ 0x03b3,
+ 0x03b7,
+ 0x03b9,
+ 0x03be,
+ 0x03ba,
+ 0x03bb,
+ 0x03bc,
+ 0x03bd,
+ 0x03bf,
+ 0x03c0,
+ 0x03ce,
+ 0x03c1,
+ 0x03c3,
+ 0x03c4,
+ 0x03b8,
+ 0x03c9,
+ 0x03c2,
+ 0x03c7,
+ 0x03c5,
+ 0x03b6,
+ 0x03ca,
+ 0x03cb,
+ 0x0390,
+ 0x03b0,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc2\xb9",
+ "\xc2\xb2",
+ "\xc3\x89",
+ "\xc2\xb3",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xce\x85",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xce\x84",
+ "\xc2\xa8",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc2\xa3",
+ "\xe2\x84\xa2",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xe2\x80\xa2",
+ "\xc2\xbd",
+ "\xe2\x80\xb0",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc2\xa6",
+ "\xc2\xad",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xce\x93",
+ "\xce\x94",
+ "\xce\x98",
+ "\xce\x9b",
+ "\xce\x9e",
+ "\xce\xa0",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xce\xa3",
+ "\xce\xaa",
+ "\xc2\xa7",
+ "\xe2\x89\xa0",
+ "\xc2\xb0",
+ "\xce\x87",
+ "\xce\x91",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xce\x92",
+ "\xce\x95",
+ "\xce\x96",
+ "\xce\x97",
+ "\xce\x99",
+ "\xce\x9a",
+ "\xce\x9c",
+ "\xce\xa6",
+ "\xce\xab",
+ "\xce\xa8",
+ "\xce\xa9",
+ "\xce\xac",
+ "\xce\x9d",
+ "\xc2\xac",
+ "\xce\x9f",
+ "\xce\xa1",
+ "\xe2\x89\x88",
+ "\xce\xa4",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xce\xa5",
+ "\xce\xa7",
+ "\xce\x86",
+ "\xce\x88",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x95",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xce\x89",
+ "\xce\x8a",
+ "\xce\x8c",
+ "\xce\x8e",
+ "\xce\xad",
+ "\xce\xae",
+ "\xce\xaf",
+ "\xcf\x8c",
+ "\xce\x8f",
+ "\xcf\x8d",
+ "\xce\xb1",
+ "\xce\xb2",
+ "\xcf\x88",
+ "\xce\xb4",
+ "\xce\xb5",
+ "\xcf\x86",
+ "\xce\xb3",
+ "\xce\xb7",
+ "\xce\xb9",
+ "\xce\xbe",
+ "\xce\xba",
+ "\xce\xbb",
+ "\xce\xbc",
+ "\xce\xbd",
+ "\xce\xbf",
+ "\xcf\x80",
+ "\xcf\x8e",
+ "\xcf\x81",
+ "\xcf\x83",
+ "\xcf\x84",
+ "\xce\xb8",
+ "\xcf\x89",
+ "\xcf\x82",
+ "\xcf\x87",
+ "\xcf\x85",
+ "\xce\xb6",
+ "\xcf\x8a",
+ "\xcf\x8b",
+ "\xce\x90",
+ "\xce\xb0",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a3 => "\x92",
+ 0x000000a5 => "\xb4",
+ 0x000000a6 => "\x9b",
+ 0x000000a7 => "\xac",
+ 0x000000a8 => "\x8c",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ad => "\x9c",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xae",
+ 0x000000b1 => "\xb1",
+ 0x000000b2 => "\x82",
+ 0x000000b3 => "\x84",
+ 0x000000b9 => "\x81",
+ 0x000000bb => "\xc8",
+ 0x000000bd => "\x97",
+ 0x000000c4 => "\x80",
+ 0x000000c9 => "\x83",
+ 0x000000d6 => "\x85",
+ 0x000000dc => "\x86",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e2 => "\x89",
+ 0x000000e4 => "\x8a",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f4 => "\x99",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f9 => "\x9d",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x00000153 => "\xcf",
+ 0x00000384 => "\x8b",
+ 0x00000385 => "\x87",
+ 0x00000386 => "\xcd",
+ 0x00000387 => "\xaf",
+ 0x00000388 => "\xce",
+ 0x00000389 => "\xd7",
+ 0x0000038a => "\xd8",
+ 0x0000038c => "\xd9",
+ 0x0000038e => "\xda",
+ 0x0000038f => "\xdf",
+ 0x00000390 => "\xfd",
+ 0x00000391 => "\xb0",
+ 0x00000392 => "\xb5",
+ 0x00000393 => "\xa1",
+ 0x00000394 => "\xa2",
+ 0x00000395 => "\xb6",
+ 0x00000396 => "\xb7",
+ 0x00000397 => "\xb8",
+ 0x00000398 => "\xa3",
+ 0x00000399 => "\xb9",
+ 0x0000039a => "\xba",
+ 0x0000039b => "\xa4",
+ 0x0000039c => "\xbb",
+ 0x0000039d => "\xc1",
+ 0x0000039e => "\xa5",
+ 0x0000039f => "\xc3",
+ 0x000003a0 => "\xa6",
+ 0x000003a1 => "\xc4",
+ 0x000003a3 => "\xaa",
+ 0x000003a4 => "\xc6",
+ 0x000003a5 => "\xcb",
+ 0x000003a6 => "\xbc",
+ 0x000003a7 => "\xcc",
+ 0x000003a8 => "\xbe",
+ 0x000003a9 => "\xbf",
+ 0x000003aa => "\xab",
+ 0x000003ab => "\xbd",
+ 0x000003ac => "\xc0",
+ 0x000003ad => "\xdb",
+ 0x000003ae => "\xdc",
+ 0x000003af => "\xdd",
+ 0x000003b0 => "\xfe",
+ 0x000003b1 => "\xe1",
+ 0x000003b2 => "\xe2",
+ 0x000003b3 => "\xe7",
+ 0x000003b4 => "\xe4",
+ 0x000003b5 => "\xe5",
+ 0x000003b6 => "\xfa",
+ 0x000003b7 => "\xe8",
+ 0x000003b8 => "\xf5",
+ 0x000003b9 => "\xe9",
+ 0x000003ba => "\xeb",
+ 0x000003bb => "\xec",
+ 0x000003bc => "\xed",
+ 0x000003bd => "\xee",
+ 0x000003be => "\xea",
+ 0x000003bf => "\xef",
+ 0x000003c0 => "\xf0",
+ 0x000003c1 => "\xf2",
+ 0x000003c2 => "\xf7",
+ 0x000003c3 => "\xf3",
+ 0x000003c4 => "\xf4",
+ 0x000003c5 => "\xf9",
+ 0x000003c6 => "\xe6",
+ 0x000003c7 => "\xf8",
+ 0x000003c8 => "\xe3",
+ 0x000003c9 => "\xf6",
+ 0x000003ca => "\xfb",
+ 0x000003cb => "\xfc",
+ 0x000003cc => "\xde",
+ 0x000003cd => "\xe0",
+ 0x000003ce => "\xf1",
+ 0x00002013 => "\xd0",
+ 0x00002015 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\x96",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\x98",
+ 0x00002122 => "\x93",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACGREEK - Conversion routines for MACGREEK
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACGREEK.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000B9 | SUPERSCRIPT ONE
+ 82 | 000000B2 | SUPERSCRIPT TWO
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000B3 | SUPERSCRIPT THREE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 00000385 | GREEK DIALYTIKA TONOS
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 00000384 | GREEK TONOS
+ 8C | 000000A8 | DIAERESIS
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000A3 | POUND SIGN
+ 93 | 00002122 | TRADE MARK SIGN
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 00002022 | BULLET
+ 97 | 000000BD | VULGAR FRACTION ONE HALF
+ 98 | 00002030 | PER MILLE SIGN
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000A6 | BROKEN BAR
+ 9C | 000000AD | SOFT HYPHEN
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 00000393 | GREEK CAPITAL LETTER GAMMA
+ A2 | 00000394 | GREEK CAPITAL LETTER DELTA
+ A3 | 00000398 | GREEK CAPITAL LETTER THETA
+ A4 | 0000039B | GREEK CAPITAL LETTER LAMDA
+ A5 | 0000039E | GREEK CAPITAL LETTER XI
+ A6 | 000003A0 | GREEK CAPITAL LETTER PI
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 000003A3 | GREEK CAPITAL LETTER SIGMA
+ AB | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ AC | 000000A7 | SECTION SIGN
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000B0 | DEGREE SIGN
+ AF | 00000387 | GREEK ANO TELEIA
+ B0 | 00000391 | GREEK CAPITAL LETTER ALPHA
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 00000392 | GREEK CAPITAL LETTER BETA
+ B6 | 00000395 | GREEK CAPITAL LETTER EPSILON
+ B7 | 00000396 | GREEK CAPITAL LETTER ZETA
+ B8 | 00000397 | GREEK CAPITAL LETTER ETA
+ B9 | 00000399 | GREEK CAPITAL LETTER IOTA
+ BA | 0000039A | GREEK CAPITAL LETTER KAPPA
+ BB | 0000039C | GREEK CAPITAL LETTER MU
+ BC | 000003A6 | GREEK CAPITAL LETTER PHI
+ BD | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+ BE | 000003A8 | GREEK CAPITAL LETTER PSI
+ BF | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ C0 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
+ C1 | 0000039D | GREEK CAPITAL LETTER NU
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000039F | GREEK CAPITAL LETTER OMICRON
+ C4 | 000003A1 | GREEK CAPITAL LETTER RHO
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 000003A4 | GREEK CAPITAL LETTER TAU
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000003A5 | GREEK CAPITAL LETTER UPSILON
+ CC | 000003A7 | GREEK CAPITAL LETTER CHI
+ CD | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
+ CE | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002015 | HORIZONTAL BAR
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
+ D8 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
+ D9 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
+ DA | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
+ DB | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
+ DC | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
+ DD | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
+ DE | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
+ DF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
+ E0 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
+ E1 | 000003B1 | GREEK SMALL LETTER ALPHA
+ E2 | 000003B2 | GREEK SMALL LETTER BETA
+ E3 | 000003C8 | GREEK SMALL LETTER PSI
+ E4 | 000003B4 | GREEK SMALL LETTER DELTA
+ E5 | 000003B5 | GREEK SMALL LETTER EPSILON
+ E6 | 000003C6 | GREEK SMALL LETTER PHI
+ E7 | 000003B3 | GREEK SMALL LETTER GAMMA
+ E8 | 000003B7 | GREEK SMALL LETTER ETA
+ E9 | 000003B9 | GREEK SMALL LETTER IOTA
+ EA | 000003BE | GREEK SMALL LETTER XI
+ EB | 000003BA | GREEK SMALL LETTER KAPPA
+ EC | 000003BB | GREEK SMALL LETTER LAMDA
+ ED | 000003BC | GREEK SMALL LETTER MU
+ EE | 000003BD | GREEK SMALL LETTER NU
+ EF | 000003BF | GREEK SMALL LETTER OMICRON
+ F0 | 000003C0 | GREEK SMALL LETTER PI
+ F1 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
+ F2 | 000003C1 | GREEK SMALL LETTER RHO
+ F3 | 000003C3 | GREEK SMALL LETTER SIGMA
+ F4 | 000003C4 | GREEK SMALL LETTER TAU
+ F5 | 000003B8 | GREEK SMALL LETTER THETA
+ F6 | 000003C9 | GREEK SMALL LETTER OMEGA
+ F7 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
+ F8 | 000003C7 | GREEK SMALL LETTER CHI
+ F9 | 000003C5 | GREEK SMALL LETTER UPSILON
+ FA | 000003B6 | GREEK SMALL LETTER ZETA
+ FB | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ FC | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+ FD | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ FE | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACHEBREW.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACHEBREW.pm
new file mode 100644
index 0000000..23be6f0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACHEBREW.pm
@@ -0,0 +1,1062 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACHEBREW.pm,v 1.1 2011-10-12 23:51:47 pertusus Exp $
+
+# Conversion routines for MACHEBREW.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACHEBREW;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0xfb1f,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x20aa,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x201e,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x05bc,
+ 0xfb4b,
+ 0xfb35,
+ 0x2026,
+ 0x00a0,
+ 0x05b8,
+ 0x05b7,
+ 0x05b5,
+ 0x05b6,
+ 0x05b4,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0xfb2a,
+ 0xfb2b,
+ 0x05bf,
+ 0x05b0,
+ 0x05b2,
+ 0x05b1,
+ 0x05bb,
+ 0x05b9,
+ 0xfffd,
+ 0x05b3,
+ 0x05d0,
+ 0x05d1,
+ 0x05d2,
+ 0x05d3,
+ 0x05d4,
+ 0x05d5,
+ 0x05d6,
+ 0x05d7,
+ 0x05d8,
+ 0x05d9,
+ 0x05da,
+ 0x05db,
+ 0x05dc,
+ 0x05dd,
+ 0x05de,
+ 0x05df,
+ 0x05e0,
+ 0x05e1,
+ 0x05e2,
+ 0x05e3,
+ 0x05e4,
+ 0x05e5,
+ 0x05e6,
+ 0x05e7,
+ 0x05e8,
+ 0x05e9,
+ 0x05ea,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xef\xac\x9f",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x82\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x9e",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xd6\xbc",
+ "\xef\xad\x8b",
+ "\xef\xac\xb5",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xd6\xb8",
+ "\xd6\xb7",
+ "\xd6\xb5",
+ "\xd6\xb6",
+ "\xd6\xb4",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xef\xac\xaa",
+ "\xef\xac\xab",
+ "\xd6\xbf",
+ "\xd6\xb0",
+ "\xd6\xb2",
+ "\xd6\xb1",
+ "\xd6\xbb",
+ "\xd6\xb9",
+ "\xef\xbf\xbd",
+ "\xd6\xb3",
+ "\xd7\x90",
+ "\xd7\x91",
+ "\xd7\x92",
+ "\xd7\x93",
+ "\xd7\x94",
+ "\xd7\x95",
+ "\xd7\x96",
+ "\xd7\x97",
+ "\xd7\x98",
+ "\xd7\x99",
+ "\xd7\x9a",
+ "\xd7\x9b",
+ "\xd7\x9c",
+ "\xd7\x9d",
+ "\xd7\x9e",
+ "\xd7\x9f",
+ "\xd7\xa0",
+ "\xd7\xa1",
+ "\xd7\xa2",
+ "\xd7\xa3",
+ "\xd7\xa4",
+ "\xd7\xa5",
+ "\xd7\xa6",
+ "\xd7\xa7",
+ "\xd7\xa8",
+ "\xd7\xa9",
+ "\xd7\xaa",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000c4 => "\x80",
+ 0x000000c7 => "\x82",
+ 0x000000c9 => "\x83",
+ 0x000000d1 => "\x84",
+ 0x000000d6 => "\x85",
+ 0x000000dc => "\x86",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000005b0 => "\xd9",
+ 0x000005b1 => "\xdb",
+ 0x000005b2 => "\xda",
+ 0x000005b3 => "\xdf",
+ 0x000005b4 => "\xcf",
+ 0x000005b5 => "\xcd",
+ 0x000005b6 => "\xce",
+ 0x000005b7 => "\xcc",
+ 0x000005b8 => "\xcb",
+ 0x000005b9 => "\xdd",
+ 0x000005bb => "\xdc",
+ 0x000005bc => "\xc6",
+ 0x000005bf => "\xd8",
+ 0x000005d0 => "\xe0",
+ 0x000005d1 => "\xe1",
+ 0x000005d2 => "\xe2",
+ 0x000005d3 => "\xe3",
+ 0x000005d4 => "\xe4",
+ 0x000005d5 => "\xe5",
+ 0x000005d6 => "\xe6",
+ 0x000005d7 => "\xe7",
+ 0x000005d8 => "\xe8",
+ 0x000005d9 => "\xe9",
+ 0x000005da => "\xea",
+ 0x000005db => "\xeb",
+ 0x000005dc => "\xec",
+ 0x000005dd => "\xed",
+ 0x000005de => "\xee",
+ 0x000005df => "\xef",
+ 0x000005e0 => "\xf0",
+ 0x000005e1 => "\xf1",
+ 0x000005e2 => "\xf2",
+ 0x000005e3 => "\xf3",
+ 0x000005e4 => "\xf4",
+ 0x000005e5 => "\xf5",
+ 0x000005e6 => "\xf6",
+ 0x000005e7 => "\xf7",
+ 0x000005e8 => "\xf8",
+ 0x000005e9 => "\xf9",
+ 0x000005ea => "\xfa",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xc1",
+ 0x00002026 => "\xc9",
+ 0x000020aa => "\xa6",
+ 0x0000fb1f => "\x81",
+ 0x0000fb2a => "\xd6",
+ 0x0000fb2b => "\xd7",
+ 0x0000fb35 => "\xc8",
+ 0x0000fb4b => "\xc7",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACHEBREW - Conversion routines for MACHEBREW
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACHEBREW.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 0000FB1F | HEBREW LIGATURE YIDDISH YOD YOD PATAH
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A6 | 000020AA | NEW SHEQEL SIGN
+ C1 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ C6 | 000005BC | HEBREW POINT DAGESH OR MAPIQ
+ C7 | 0000FB4B | HEBREW LETTER VAV WITH HOLAM
+ C8 | 0000FB35 | HEBREW LETTER VAV WITH DAGESH
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000005B8 | HEBREW POINT QAMATS
+ CC | 000005B7 | HEBREW POINT PATAH
+ CD | 000005B5 | HEBREW POINT TSERE
+ CE | 000005B6 | HEBREW POINT SEGOL
+ CF | 000005B4 | HEBREW POINT HIRIQ
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 0000FB2A | HEBREW LETTER SHIN WITH SHIN DOT
+ D7 | 0000FB2B | HEBREW LETTER SHIN WITH SIN DOT
+ D8 | 000005BF | HEBREW POINT RAFE
+ D9 | 000005B0 | HEBREW POINT SHEVA
+ DA | 000005B2 | HEBREW POINT HATAF PATAH
+ DB | 000005B1 | HEBREW POINT HATAF SEGOL
+ DC | 000005BB | HEBREW POINT QUBUTS
+ DD | 000005B9 | HEBREW POINT HOLAM
+ DF | 000005B3 | HEBREW POINT HATAF QAMATS
+ E0 | 000005D0 | HEBREW LETTER ALEF
+ E1 | 000005D1 | HEBREW LETTER BET
+ E2 | 000005D2 | HEBREW LETTER GIMEL
+ E3 | 000005D3 | HEBREW LETTER DALET
+ E4 | 000005D4 | HEBREW LETTER HE
+ E5 | 000005D5 | HEBREW LETTER VAV
+ E6 | 000005D6 | HEBREW LETTER ZAYIN
+ E7 | 000005D7 | HEBREW LETTER HET
+ E8 | 000005D8 | HEBREW LETTER TET
+ E9 | 000005D9 | HEBREW LETTER YOD
+ EA | 000005DA | HEBREW LETTER FINAL KAF
+ EB | 000005DB | HEBREW LETTER KAF
+ EC | 000005DC | HEBREW LETTER LAMED
+ ED | 000005DD | HEBREW LETTER FINAL MEM
+ EE | 000005DE | HEBREW LETTER MEM
+ EF | 000005DF | HEBREW LETTER FINAL NUN
+ F0 | 000005E0 | HEBREW LETTER NUN
+ F1 | 000005E1 | HEBREW LETTER SAMEKH
+ F2 | 000005E2 | HEBREW LETTER AYIN
+ F3 | 000005E3 | HEBREW LETTER FINAL PE
+ F4 | 000005E4 | HEBREW LETTER PE
+ F5 | 000005E5 | HEBREW LETTER FINAL TSADI
+ F6 | 000005E6 | HEBREW LETTER TSADI
+ F7 | 000005E7 | HEBREW LETTER QOF
+ F8 | 000005E8 | HEBREW LETTER RESH
+ F9 | 000005E9 | HEBREW LETTER SHIN
+ FA | 000005EA | HEBREW LETTER TAV
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACICELAND.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACICELAND.pm
new file mode 100644
index 0000000..6fb6cc7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACICELAND.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACICELAND.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACICELAND.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACICELAND;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x00dd,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x00c6,
+ 0x00d8,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x03c0,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x2126,
+ 0x00e6,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0x00ff,
+ 0x0178,
+ 0x2044,
+ 0x00a4,
+ 0x00d0,
+ 0x00f0,
+ 0x00de,
+ 0x00fe,
+ 0x00fd,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xfffd,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x02da,
+ 0x00b8,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\x9d",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xcf\x80",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xe2\x84\xa6",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xe2\x81\x84",
+ "\xc2\xa4",
+ "\xc3\x90",
+ "\xc3\xb0",
+ "\xc3\x9e",
+ "\xc3\xbe",
+ "\xc3\xbd",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xef\xbf\xbd",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xdb",
+ 0x000000a5 => "\xb4",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xae",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d0 => "\xdc",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000dd => "\xa0",
+ 0x000000de => "\xde",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xbe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f0 => "\xdd",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000fd => "\xe0",
+ 0x000000fe => "\xdf",
+ 0x000000ff => "\xd8",
+ 0x00000131 => "\xf5",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x00000178 => "\xd9",
+ 0x00000192 => "\xc4",
+ 0x000002c6 => "\xf6",
+ 0x000002c7 => "\xff",
+ 0x000002d8 => "\xf9",
+ 0x000002d9 => "\xfa",
+ 0x000002da => "\xfb",
+ 0x000002db => "\xfe",
+ 0x000002dc => "\xf7",
+ 0x000002dd => "\xfd",
+ 0x000003c0 => "\xb9",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002044 => "\xda",
+ 0x00002122 => "\xaa",
+ 0x00002126 => "\xbd",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xc6",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025ca => "\xd7",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACICELAND - Conversion routines for MACICELAND
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACICELAND.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000C6 | LATIN CAPITAL LETTER AE
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 000003C0 | GREEK SMALL LETTER PI
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 00002126 | OHM SIGN
+ BE | 000000E6 | LATIN SMALL LETTER AE
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 00002044 | FRACTION SLASH
+ DB | 000000A4 | CURRENCY SIGN
+ DC | 000000D0 | LATIN CAPITAL LETTER ETH
+ DD | 000000F0 | LATIN SMALL LETTER ETH
+ DE | 000000DE | LATIN CAPITAL LETTER THORN
+ DF | 000000FE | LATIN SMALL LETTER THORN
+ E0 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ F7 | 000002DC | SMALL TILDE
+ F8 | 000000AF | MACRON
+ F9 | 000002D8 | BREVE
+ FA | 000002D9 | DOT ABOVE
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000002DD | DOUBLE ACUTE ACCENT
+ FE | 000002DB | OGONEK
+ FF | 000002C7 | CARON
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACINTOSH.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACINTOSH.pm
new file mode 100644
index 0000000..c363185
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACINTOSH.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACINTOSH.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACINTOSH.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACINTOSH;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x00c6,
+ 0x00d8,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x03c0,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x03a9,
+ 0x00e6,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x0394,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0x00ff,
+ 0x0178,
+ 0x2044,
+ 0x20ac,
+ 0x2039,
+ 0x203a,
+ 0xfb01,
+ 0xfb02,
+ 0x2021,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xe01e,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x02da,
+ 0x00b8,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xcf\x80",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xce\xa9",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xce\x94",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xe2\x81\x84",
+ "\xe2\x82\xac",
+ "\xe2\x80\xb9",
+ "\xe2\x80\xba",
+ "\xef\xac\x81",
+ "\xef\xac\x82",
+ "\xe2\x80\xa1",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xee\x80\x9e",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a5 => "\xb4",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xae",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xbe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000ff => "\xd8",
+ 0x00000131 => "\xf5",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x00000178 => "\xd9",
+ 0x00000192 => "\xc4",
+ 0x000002c6 => "\xf6",
+ 0x000002c7 => "\xff",
+ 0x000002d8 => "\xf9",
+ 0x000002d9 => "\xfa",
+ 0x000002da => "\xfb",
+ 0x000002db => "\xfe",
+ 0x000002dc => "\xf7",
+ 0x000002dd => "\xfd",
+ 0x00000394 => "\xc6",
+ 0x000003a9 => "\xbd",
+ 0x000003c0 => "\xb9",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002020 => "\xa0",
+ 0x00002021 => "\xe0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002039 => "\xdc",
+ 0x0000203a => "\xdd",
+ 0x00002044 => "\xda",
+ 0x000020ac => "\xdb",
+ 0x00002122 => "\xaa",
+ 0x00002202 => "\xb6",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025ca => "\xd7",
+ 0x0000e01e => "\xf0",
+ 0x0000fb01 => "\xde",
+ 0x0000fb02 => "\xdf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACINTOSH - Conversion routines for MACINTOSH
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACINTOSH.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: The Unicode Standard ver 1.0, ISBN 0-201-56788-1, Oct 1991
+ alias MAC
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000C6 | LATIN CAPITAL LETTER AE
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 000003C0 | GREEK SMALL LETTER PI
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ BE | 000000E6 | LATIN SMALL LETTER AE
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00000394 | GREEK CAPITAL LETTER DELTA
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 00002044 | FRACTION SLASH
+ DB | 000020AC | EURO SIGN
+ DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ DE | 0000FB01 | LATIN SMALL LIGATURE FI
+ DF | 0000FB02 | LATIN SMALL LIGATURE FL
+ E0 | 00002021 | DOUBLE DAGGER
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F0 | 0000E01E | APPLE LOGO (Macintosh_F0)
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ F7 | 000002DC | SMALL TILDE
+ F8 | 000000AF | MACRON
+ F9 | 000002D8 | BREVE
+ FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000002DD | DOUBLE ACUTE ACCENT
+ FE | 000002DB | OGONEK
+ FF | 000002C7 | CARON (Mandarin Chinese third tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACROMANIA.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACROMANIA.pm
new file mode 100644
index 0000000..2276735
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACROMANIA.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACROMANIA.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACROMANIA.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACROMANIA;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x0102,
+ 0x015e,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x03c0,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x2126,
+ 0x0103,
+ 0x015f,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0x00ff,
+ 0x0178,
+ 0x2044,
+ 0x00a4,
+ 0x2039,
+ 0x203a,
+ 0x0162,
+ 0x0163,
+ 0x2021,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xfffd,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x02da,
+ 0x00b8,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc4\x82",
+ "\xc5\x9e",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xcf\x80",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xe2\x84\xa6",
+ "\xc4\x83",
+ "\xc5\x9f",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xe2\x81\x84",
+ "\xc2\xa4",
+ "\xe2\x80\xb9",
+ "\xe2\x80\xba",
+ "\xc5\xa2",
+ "\xc5\xa3",
+ "\xe2\x80\xa1",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xef\xbf\xbd",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xdb",
+ 0x000000a5 => "\xb4",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000ff => "\xd8",
+ 0x00000102 => "\xae",
+ 0x00000103 => "\xbe",
+ 0x00000131 => "\xf5",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x0000015e => "\xaf",
+ 0x0000015f => "\xbf",
+ 0x00000162 => "\xde",
+ 0x00000163 => "\xdf",
+ 0x00000178 => "\xd9",
+ 0x00000192 => "\xc4",
+ 0x000002c6 => "\xf6",
+ 0x000002c7 => "\xff",
+ 0x000002d8 => "\xf9",
+ 0x000002d9 => "\xfa",
+ 0x000002da => "\xfb",
+ 0x000002db => "\xfe",
+ 0x000002dc => "\xf7",
+ 0x000002dd => "\xfd",
+ 0x000003c0 => "\xb9",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002020 => "\xa0",
+ 0x00002021 => "\xe0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002039 => "\xdc",
+ 0x0000203a => "\xdd",
+ 0x00002044 => "\xda",
+ 0x00002122 => "\xaa",
+ 0x00002126 => "\xbd",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xc6",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025ca => "\xd7",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACROMANIA - Conversion routines for MACROMANIA
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACROMANIA.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ AF | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 000003C0 | GREEK SMALL LETTER PI
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 00002126 | OHM SIGN
+ BE | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ BF | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 00002044 | FRACTION SLASH
+ DB | 000000A4 | CURRENCY SIGN
+ DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
+ DF | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
+ E0 | 00002021 | DOUBLE DAGGER
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ F7 | 000002DC | SMALL TILDE
+ F8 | 000000AF | MACRON
+ F9 | 000002D8 | BREVE
+ FA | 000002D9 | DOT ABOVE
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000002DD | DOUBLE ACUTE ACCENT
+ FE | 000002DB | OGONEK
+ FF | 000002C7 | CARON
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTHAI.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTHAI.pm
new file mode 100644
index 0000000..b57e347
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTHAI.pm
@@ -0,0 +1,1134 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACTHAI.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACTHAI.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACTHAI;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0xf88c,
+ 0xf88f,
+ 0xf892,
+ 0xf895,
+ 0xf898,
+ 0xf88b,
+ 0xf88e,
+ 0xf891,
+ 0xf894,
+ 0xf897,
+ 0x201c,
+ 0x201d,
+ 0xf899,
+ 0xfffd,
+ 0x2022,
+ 0xf884,
+ 0xf889,
+ 0xf885,
+ 0xf886,
+ 0xf887,
+ 0xf888,
+ 0xf88a,
+ 0xf88d,
+ 0xf890,
+ 0xf893,
+ 0xf896,
+ 0x2018,
+ 0x2019,
+ 0xfffd,
+ 0x00a0,
+ 0x0e01,
+ 0x0e02,
+ 0x0e03,
+ 0x0e04,
+ 0x0e05,
+ 0x0e06,
+ 0x0e07,
+ 0x0e08,
+ 0x0e09,
+ 0x0e0a,
+ 0x0e0b,
+ 0x0e0c,
+ 0x0e0d,
+ 0x0e0e,
+ 0x0e0f,
+ 0x0e10,
+ 0x0e11,
+ 0x0e12,
+ 0x0e13,
+ 0x0e14,
+ 0x0e15,
+ 0x0e16,
+ 0x0e17,
+ 0x0e18,
+ 0x0e19,
+ 0x0e1a,
+ 0x0e1b,
+ 0x0e1c,
+ 0x0e1d,
+ 0x0e1e,
+ 0x0e1f,
+ 0x0e20,
+ 0x0e21,
+ 0x0e22,
+ 0x0e23,
+ 0x0e24,
+ 0x0e25,
+ 0x0e26,
+ 0x0e27,
+ 0x0e28,
+ 0x0e29,
+ 0x0e2a,
+ 0x0e2b,
+ 0x0e2c,
+ 0x0e2d,
+ 0x0e2e,
+ 0x0e2f,
+ 0x0e30,
+ 0x0e31,
+ 0x0e32,
+ 0x0e33,
+ 0x0e34,
+ 0x0e35,
+ 0x0e36,
+ 0x0e37,
+ 0x0e38,
+ 0x0e39,
+ 0x0e3a,
+ 0xfeff,
+ 0x200b,
+ 0x2013,
+ 0x2014,
+ 0x0e3f,
+ 0x0e40,
+ 0x0e41,
+ 0x0e42,
+ 0x0e43,
+ 0x0e44,
+ 0x0e45,
+ 0x0e46,
+ 0x0e47,
+ 0x0e48,
+ 0x0e49,
+ 0x0e4a,
+ 0x0e4b,
+ 0x0e4c,
+ 0x0e4d,
+ 0x2122,
+ 0x0e4f,
+ 0x0e50,
+ 0x0e51,
+ 0x0e52,
+ 0x0e53,
+ 0x0e54,
+ 0x0e55,
+ 0x0e56,
+ 0x0e57,
+ 0x0e58,
+ 0x0e59,
+ 0x00ae,
+ 0x00a9,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xef\xa2\x8c",
+ "\xef\xa2\x8f",
+ "\xef\xa2\x92",
+ "\xef\xa2\x95",
+ "\xef\xa2\x98",
+ "\xef\xa2\x8b",
+ "\xef\xa2\x8e",
+ "\xef\xa2\x91",
+ "\xef\xa2\x94",
+ "\xef\xa2\x97",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xef\xa2\x99",
+ "\xef\xbf\xbd",
+ "\xe2\x80\xa2",
+ "\xef\xa2\x84",
+ "\xef\xa2\x89",
+ "\xef\xa2\x85",
+ "\xef\xa2\x86",
+ "\xef\xa2\x87",
+ "\xef\xa2\x88",
+ "\xef\xa2\x8a",
+ "\xef\xa2\x8d",
+ "\xef\xa2\x90",
+ "\xef\xa2\x93",
+ "\xef\xa2\x96",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xef\xbf\xbd",
+ "\xc2\xa0",
+ "\xe0\xb8\x81",
+ "\xe0\xb8\x82",
+ "\xe0\xb8\x83",
+ "\xe0\xb8\x84",
+ "\xe0\xb8\x85",
+ "\xe0\xb8\x86",
+ "\xe0\xb8\x87",
+ "\xe0\xb8\x88",
+ "\xe0\xb8\x89",
+ "\xe0\xb8\x8a",
+ "\xe0\xb8\x8b",
+ "\xe0\xb8\x8c",
+ "\xe0\xb8\x8d",
+ "\xe0\xb8\x8e",
+ "\xe0\xb8\x8f",
+ "\xe0\xb8\x90",
+ "\xe0\xb8\x91",
+ "\xe0\xb8\x92",
+ "\xe0\xb8\x93",
+ "\xe0\xb8\x94",
+ "\xe0\xb8\x95",
+ "\xe0\xb8\x96",
+ "\xe0\xb8\x97",
+ "\xe0\xb8\x98",
+ "\xe0\xb8\x99",
+ "\xe0\xb8\x9a",
+ "\xe0\xb8\x9b",
+ "\xe0\xb8\x9c",
+ "\xe0\xb8\x9d",
+ "\xe0\xb8\x9e",
+ "\xe0\xb8\x9f",
+ "\xe0\xb8\xa0",
+ "\xe0\xb8\xa1",
+ "\xe0\xb8\xa2",
+ "\xe0\xb8\xa3",
+ "\xe0\xb8\xa4",
+ "\xe0\xb8\xa5",
+ "\xe0\xb8\xa6",
+ "\xe0\xb8\xa7",
+ "\xe0\xb8\xa8",
+ "\xe0\xb8\xa9",
+ "\xe0\xb8\xaa",
+ "\xe0\xb8\xab",
+ "\xe0\xb8\xac",
+ "\xe0\xb8\xad",
+ "\xe0\xb8\xae",
+ "\xe0\xb8\xaf",
+ "\xe0\xb8\xb0",
+ "\xe0\xb8\xb1",
+ "\xe0\xb8\xb2",
+ "\xe0\xb8\xb3",
+ "\xe0\xb8\xb4",
+ "\xe0\xb8\xb5",
+ "\xe0\xb8\xb6",
+ "\xe0\xb8\xb7",
+ "\xe0\xb8\xb8",
+ "\xe0\xb8\xb9",
+ "\xe0\xb8\xba",
+ "\xef\xbb\xbf",
+ "\xe2\x80\x8b",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe0\xb8\xbf",
+ "\xe0\xb9\x80",
+ "\xe0\xb9\x81",
+ "\xe0\xb9\x82",
+ "\xe0\xb9\x83",
+ "\xe0\xb9\x84",
+ "\xe0\xb9\x85",
+ "\xe0\xb9\x86",
+ "\xe0\xb9\x87",
+ "\xe0\xb9\x88",
+ "\xe0\xb9\x89",
+ "\xe0\xb9\x8a",
+ "\xe0\xb9\x8b",
+ "\xe0\xb9\x8c",
+ "\xe0\xb9\x8d",
+ "\xe2\x84\xa2",
+ "\xe0\xb9\x8f",
+ "\xe0\xb9\x90",
+ "\xe0\xb9\x91",
+ "\xe0\xb9\x92",
+ "\xe0\xb9\x93",
+ "\xe0\xb9\x94",
+ "\xe0\xb9\x95",
+ "\xe0\xb9\x96",
+ "\xe0\xb9\x97",
+ "\xe0\xb9\x98",
+ "\xe0\xb9\x99",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a9 => "\xfb",
+ 0x000000ab => "\x80",
+ 0x000000ae => "\xfa",
+ 0x000000bb => "\x81",
+ 0x00000e01 => "\xa1",
+ 0x00000e02 => "\xa2",
+ 0x00000e03 => "\xa3",
+ 0x00000e04 => "\xa4",
+ 0x00000e05 => "\xa5",
+ 0x00000e06 => "\xa6",
+ 0x00000e07 => "\xa7",
+ 0x00000e08 => "\xa8",
+ 0x00000e09 => "\xa9",
+ 0x00000e0a => "\xaa",
+ 0x00000e0b => "\xab",
+ 0x00000e0c => "\xac",
+ 0x00000e0d => "\xad",
+ 0x00000e0e => "\xae",
+ 0x00000e0f => "\xaf",
+ 0x00000e10 => "\xb0",
+ 0x00000e11 => "\xb1",
+ 0x00000e12 => "\xb2",
+ 0x00000e13 => "\xb3",
+ 0x00000e14 => "\xb4",
+ 0x00000e15 => "\xb5",
+ 0x00000e16 => "\xb6",
+ 0x00000e17 => "\xb7",
+ 0x00000e18 => "\xb8",
+ 0x00000e19 => "\xb9",
+ 0x00000e1a => "\xba",
+ 0x00000e1b => "\xbb",
+ 0x00000e1c => "\xbc",
+ 0x00000e1d => "\xbd",
+ 0x00000e1e => "\xbe",
+ 0x00000e1f => "\xbf",
+ 0x00000e20 => "\xc0",
+ 0x00000e21 => "\xc1",
+ 0x00000e22 => "\xc2",
+ 0x00000e23 => "\xc3",
+ 0x00000e24 => "\xc4",
+ 0x00000e25 => "\xc5",
+ 0x00000e26 => "\xc6",
+ 0x00000e27 => "\xc7",
+ 0x00000e28 => "\xc8",
+ 0x00000e29 => "\xc9",
+ 0x00000e2a => "\xca",
+ 0x00000e2b => "\xcb",
+ 0x00000e2c => "\xcc",
+ 0x00000e2d => "\xcd",
+ 0x00000e2e => "\xce",
+ 0x00000e2f => "\xcf",
+ 0x00000e30 => "\xd0",
+ 0x00000e31 => "\xd1",
+ 0x00000e32 => "\xd2",
+ 0x00000e33 => "\xd3",
+ 0x00000e34 => "\xd4",
+ 0x00000e35 => "\xd5",
+ 0x00000e36 => "\xd6",
+ 0x00000e37 => "\xd7",
+ 0x00000e38 => "\xd8",
+ 0x00000e39 => "\xd9",
+ 0x00000e3a => "\xda",
+ 0x00000e3f => "\xdf",
+ 0x00000e40 => "\xe0",
+ 0x00000e41 => "\xe1",
+ 0x00000e42 => "\xe2",
+ 0x00000e43 => "\xe3",
+ 0x00000e44 => "\xe4",
+ 0x00000e45 => "\xe5",
+ 0x00000e46 => "\xe6",
+ 0x00000e47 => "\xe7",
+ 0x00000e48 => "\xe8",
+ 0x00000e49 => "\xe9",
+ 0x00000e4a => "\xea",
+ 0x00000e4b => "\xeb",
+ 0x00000e4c => "\xec",
+ 0x00000e4d => "\xed",
+ 0x00000e4f => "\xef",
+ 0x00000e50 => "\xf0",
+ 0x00000e51 => "\xf1",
+ 0x00000e52 => "\xf2",
+ 0x00000e53 => "\xf3",
+ 0x00000e54 => "\xf4",
+ 0x00000e55 => "\xf5",
+ 0x00000e56 => "\xf6",
+ 0x00000e57 => "\xf7",
+ 0x00000e58 => "\xf8",
+ 0x00000e59 => "\xf9",
+ 0x0000200b => "\xdc",
+ 0x00002013 => "\xdd",
+ 0x00002014 => "\xde",
+ 0x00002018 => "\x9d",
+ 0x00002019 => "\x9e",
+ 0x0000201c => "\x8d",
+ 0x0000201d => "\x8e",
+ 0x00002022 => "\x91",
+ 0x00002026 => "\x82",
+ 0x00002122 => "\xee",
+ 0x0000f884 => "\x92",
+ 0x0000f885 => "\x94",
+ 0x0000f886 => "\x95",
+ 0x0000f887 => "\x96",
+ 0x0000f888 => "\x97",
+ 0x0000f889 => "\x93",
+ 0x0000f88a => "\x98",
+ 0x0000f88b => "\x88",
+ 0x0000f88c => "\x83",
+ 0x0000f88d => "\x99",
+ 0x0000f88e => "\x89",
+ 0x0000f88f => "\x84",
+ 0x0000f890 => "\x9a",
+ 0x0000f891 => "\x8a",
+ 0x0000f892 => "\x85",
+ 0x0000f893 => "\x9b",
+ 0x0000f894 => "\x8b",
+ 0x0000f895 => "\x86",
+ 0x0000f896 => "\x9c",
+ 0x0000f897 => "\x8c",
+ 0x0000f898 => "\x87",
+ 0x0000f899 => "\x8f",
+ 0x0000feff => "\xdb",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACTHAI - Conversion routines for MACTHAI
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACTHAI.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 81 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 82 | 00002026 | HORIZONTAL ELLIPSIS
+ 83 | 0000F88C | E<lt>CJKE<gt>
+ 84 | 0000F88F | E<lt>CJKE<gt>
+ 85 | 0000F892 | E<lt>CJKE<gt>
+ 86 | 0000F895 | E<lt>CJKE<gt>
+ 87 | 0000F898 | E<lt>CJKE<gt>
+ 88 | 0000F88B | E<lt>CJKE<gt>
+ 89 | 0000F88E | E<lt>CJKE<gt>
+ 8A | 0000F891 | E<lt>CJKE<gt>
+ 8B | 0000F894 | E<lt>CJKE<gt>
+ 8C | 0000F897 | E<lt>CJKE<gt>
+ 8D | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 8E | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 8F | 0000F899 | E<lt>CJKE<gt>
+ 91 | 00002022 | BULLET
+ 92 | 0000F884 | E<lt>CJKE<gt>
+ 93 | 0000F889 | E<lt>CJKE<gt>
+ 94 | 0000F885 | E<lt>CJKE<gt>
+ 95 | 0000F886 | E<lt>CJKE<gt>
+ 96 | 0000F887 | E<lt>CJKE<gt>
+ 97 | 0000F888 | E<lt>CJKE<gt>
+ 98 | 0000F88A | E<lt>CJKE<gt>
+ 99 | 0000F88D | E<lt>CJKE<gt>
+ 9A | 0000F890 | E<lt>CJKE<gt>
+ 9B | 0000F893 | E<lt>CJKE<gt>
+ 9C | 0000F896 | E<lt>CJKE<gt>
+ 9D | 00002018 | LEFT SINGLE QUOTATION MARK
+ 9E | 00002019 | RIGHT SINGLE QUOTATION MARK
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 00000E01 | THAI CHARACTER KO KAI
+ A2 | 00000E02 | THAI CHARACTER KHO KHAI
+ A3 | 00000E03 | THAI CHARACTER KHO KHUAT
+ A4 | 00000E04 | THAI CHARACTER KHO KHWAI
+ A5 | 00000E05 | THAI CHARACTER KHO KHON
+ A6 | 00000E06 | THAI CHARACTER KHO RAKHANG
+ A7 | 00000E07 | THAI CHARACTER NGO NGU
+ A8 | 00000E08 | THAI CHARACTER CHO CHAN
+ A9 | 00000E09 | THAI CHARACTER CHO CHING
+ AA | 00000E0A | THAI CHARACTER CHO CHANG
+ AB | 00000E0B | THAI CHARACTER SO SO
+ AC | 00000E0C | THAI CHARACTER CHO CHOE
+ AD | 00000E0D | THAI CHARACTER YO YING
+ AE | 00000E0E | THAI CHARACTER DO CHADA
+ AF | 00000E0F | THAI CHARACTER TO PATAK
+ B0 | 00000E10 | THAI CHARACTER THO THAN
+ B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO
+ B2 | 00000E12 | THAI CHARACTER THO PHUTHAO
+ B3 | 00000E13 | THAI CHARACTER NO NEN
+ B4 | 00000E14 | THAI CHARACTER DO DEK
+ B5 | 00000E15 | THAI CHARACTER TO TAO
+ B6 | 00000E16 | THAI CHARACTER THO THUNG
+ B7 | 00000E17 | THAI CHARACTER THO THAHAN
+ B8 | 00000E18 | THAI CHARACTER THO THONG
+ B9 | 00000E19 | THAI CHARACTER NO NU
+ BA | 00000E1A | THAI CHARACTER BO BAIMAI
+ BB | 00000E1B | THAI CHARACTER PO PLA
+ BC | 00000E1C | THAI CHARACTER PHO PHUNG
+ BD | 00000E1D | THAI CHARACTER FO FA
+ BE | 00000E1E | THAI CHARACTER PHO PHAN
+ BF | 00000E1F | THAI CHARACTER FO FAN
+ C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO
+ C1 | 00000E21 | THAI CHARACTER MO MA
+ C2 | 00000E22 | THAI CHARACTER YO YAK
+ C3 | 00000E23 | THAI CHARACTER RO RUA
+ C4 | 00000E24 | THAI CHARACTER RU
+ C5 | 00000E25 | THAI CHARACTER LO LING
+ C6 | 00000E26 | THAI CHARACTER LU
+ C7 | 00000E27 | THAI CHARACTER WO WAEN
+ C8 | 00000E28 | THAI CHARACTER SO SALA
+ C9 | 00000E29 | THAI CHARACTER SO RUSI
+ CA | 00000E2A | THAI CHARACTER SO SUA
+ CB | 00000E2B | THAI CHARACTER HO HIP
+ CC | 00000E2C | THAI CHARACTER LO CHULA
+ CD | 00000E2D | THAI CHARACTER O ANG
+ CE | 00000E2E | THAI CHARACTER HO NOKHUK
+ CF | 00000E2F | THAI CHARACTER PAIYANNOI
+ D0 | 00000E30 | THAI CHARACTER SARA A
+ D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT
+ D2 | 00000E32 | THAI CHARACTER SARA AA
+ D3 | 00000E33 | THAI CHARACTER SARA AM
+ D4 | 00000E34 | THAI CHARACTER SARA I
+ D5 | 00000E35 | THAI CHARACTER SARA II
+ D6 | 00000E36 | THAI CHARACTER SARA UE
+ D7 | 00000E37 | THAI CHARACTER SARA UEE
+ D8 | 00000E38 | THAI CHARACTER SARA U
+ D9 | 00000E39 | THAI CHARACTER SARA UU
+ DA | 00000E3A | THAI CHARACTER PHINTHU
+ DB | 0000FEFF | ZERO WIDTH NO-BREAK SPACE
+ DC | 0000200B | ZERO WIDTH SPACE
+ DD | 00002013 | EN DASH
+ DE | 00002014 | EM DASH
+ DF | 00000E3F | THAI CURRENCY SYMBOL BAHT
+ E0 | 00000E40 | THAI CHARACTER SARA E
+ E1 | 00000E41 | THAI CHARACTER SARA AE
+ E2 | 00000E42 | THAI CHARACTER SARA O
+ E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN
+ E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI
+ E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO
+ E6 | 00000E46 | THAI CHARACTER MAIYAMOK
+ E7 | 00000E47 | THAI CHARACTER MAITAIKHU
+ E8 | 00000E48 | THAI CHARACTER MAI EK
+ E9 | 00000E49 | THAI CHARACTER MAI THO
+ EA | 00000E4A | THAI CHARACTER MAI TRI
+ EB | 00000E4B | THAI CHARACTER MAI CHATTAWA
+ EC | 00000E4C | THAI CHARACTER THANTHAKHAT
+ ED | 00000E4D | THAI CHARACTER NIKHAHIT
+ EE | 00002122 | TRADE MARK SIGN
+ EF | 00000E4F | THAI CHARACTER FONGMAN
+ F0 | 00000E50 | THAI DIGIT ZERO
+ F1 | 00000E51 | THAI DIGIT ONE
+ F2 | 00000E52 | THAI DIGIT TWO
+ F3 | 00000E53 | THAI DIGIT THREE
+ F4 | 00000E54 | THAI DIGIT FOUR
+ F5 | 00000E55 | THAI DIGIT FIVE
+ F6 | 00000E56 | THAI DIGIT SIX
+ F7 | 00000E57 | THAI DIGIT SEVEN
+ F8 | 00000E58 | THAI DIGIT EIGHT
+ F9 | 00000E59 | THAI DIGIT NINE
+ FA | 000000AE | REGISTERED SIGN
+ FB | 000000A9 | COPYRIGHT SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTURKISH.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTURKISH.pm
new file mode 100644
index 0000000..611f439
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACTURKISH.pm
@@ -0,0 +1,1142 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACTURKISH.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACTURKISH.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACTURKISH;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x00c6,
+ 0x00d8,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x03c0,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x2126,
+ 0x00e6,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0x00ff,
+ 0x0178,
+ 0x011e,
+ 0x011f,
+ 0x0130,
+ 0x0131,
+ 0x015e,
+ 0x015f,
+ 0x2021,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xfffd,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0xfffd,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x02da,
+ 0x00b8,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xcf\x80",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xe2\x84\xa6",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xc4\x9e",
+ "\xc4\x9f",
+ "\xc4\xb0",
+ "\xc4\xb1",
+ "\xc5\x9e",
+ "\xc5\x9f",
+ "\xe2\x80\xa1",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xef\xbf\xbd",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xef\xbf\xbd",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a5 => "\xb4",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xae",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xbe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000ff => "\xd8",
+ 0x0000011e => "\xda",
+ 0x0000011f => "\xdb",
+ 0x00000130 => "\xdc",
+ 0x00000131 => "\xdd",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x0000015e => "\xde",
+ 0x0000015f => "\xdf",
+ 0x00000178 => "\xd9",
+ 0x00000192 => "\xc4",
+ 0x000002c6 => "\xf6",
+ 0x000002c7 => "\xff",
+ 0x000002d8 => "\xf9",
+ 0x000002d9 => "\xfa",
+ 0x000002da => "\xfb",
+ 0x000002db => "\xfe",
+ 0x000002dc => "\xf7",
+ 0x000002dd => "\xfd",
+ 0x000003c0 => "\xb9",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002020 => "\xa0",
+ 0x00002021 => "\xe0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002122 => "\xaa",
+ 0x00002126 => "\xbd",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xc6",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025ca => "\xd7",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACTURKISH - Conversion routines for MACTURKISH
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACTURKISH.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000C6 | LATIN CAPITAL LETTER AE
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 000003C0 | GREEK SMALL LETTER PI
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 00002126 | OHM SIGN
+ BE | 000000E6 | LATIN SMALL LETTER AE
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
+ DB | 0000011F | LATIN SMALL LETTER G WITH BREVE
+ DC | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
+ DD | 00000131 | LATIN SMALL LETTER DOTLESS I
+ DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
+ DF | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
+ E0 | 00002021 | DOUBLE DAGGER
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ F7 | 000002DC | SMALL TILDE
+ F8 | 000000AF | MACRON
+ F9 | 000002D8 | BREVE
+ FA | 000002D9 | DOT ABOVE
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000002DD | DOUBLE ACUTE ACCENT
+ FE | 000002DB | OGONEK
+ FF | 000002C7 | CARON
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACUKRAINE.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACUKRAINE.pm
new file mode 100644
index 0000000..2767bb2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MACUKRAINE.pm
@@ -0,0 +1,1146 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MACUKRAINE.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MACUKRAINE.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MACUKRAINE;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x2020,
+ 0x00b0,
+ 0x0490,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x0406,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x0402,
+ 0x0452,
+ 0x2260,
+ 0x0403,
+ 0x0453,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x0456,
+ 0x00b5,
+ 0x0491,
+ 0x0408,
+ 0x0404,
+ 0x0454,
+ 0x0407,
+ 0x0457,
+ 0x0409,
+ 0x0459,
+ 0x040a,
+ 0x045a,
+ 0x0458,
+ 0x0405,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x040b,
+ 0x045b,
+ 0x040c,
+ 0x045c,
+ 0x0455,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x201e,
+ 0x040e,
+ 0x045e,
+ 0x040f,
+ 0x045f,
+ 0x2116,
+ 0x0401,
+ 0x0451,
+ 0x044f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x00a4,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xd2\x90",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xd0\x86",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xd0\x82",
+ "\xd1\x92",
+ "\xe2\x89\xa0",
+ "\xd0\x83",
+ "\xd1\x93",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xd1\x96",
+ "\xc2\xb5",
+ "\xd2\x91",
+ "\xd0\x88",
+ "\xd0\x84",
+ "\xd1\x94",
+ "\xd0\x87",
+ "\xd1\x97",
+ "\xd0\x89",
+ "\xd1\x99",
+ "\xd0\x8a",
+ "\xd1\x9a",
+ "\xd1\x98",
+ "\xd0\x85",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xd0\x8b",
+ "\xd1\x9b",
+ "\xd0\x8c",
+ "\xd1\x9c",
+ "\xd1\x95",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x80\x9e",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xd0\x8f",
+ "\xd1\x9f",
+ "\xe2\x84\x96",
+ "\xd0\x81",
+ "\xd1\x91",
+ "\xd1\x8f",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xc2\xa4",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xff",
+ 0x000000a7 => "\xa4",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000bb => "\xc8",
+ 0x000000f7 => "\xd6",
+ 0x00000192 => "\xc4",
+ 0x00000401 => "\xdd",
+ 0x00000402 => "\xab",
+ 0x00000403 => "\xae",
+ 0x00000404 => "\xb8",
+ 0x00000405 => "\xc1",
+ 0x00000406 => "\xa7",
+ 0x00000407 => "\xba",
+ 0x00000408 => "\xb7",
+ 0x00000409 => "\xbc",
+ 0x0000040a => "\xbe",
+ 0x0000040b => "\xcb",
+ 0x0000040c => "\xcd",
+ 0x0000040e => "\xd8",
+ 0x0000040f => "\xda",
+ 0x00000410 => "\x80",
+ 0x00000411 => "\x81",
+ 0x00000412 => "\x82",
+ 0x00000413 => "\x83",
+ 0x00000414 => "\x84",
+ 0x00000415 => "\x85",
+ 0x00000416 => "\x86",
+ 0x00000417 => "\x87",
+ 0x00000418 => "\x88",
+ 0x00000419 => "\x89",
+ 0x0000041a => "\x8a",
+ 0x0000041b => "\x8b",
+ 0x0000041c => "\x8c",
+ 0x0000041d => "\x8d",
+ 0x0000041e => "\x8e",
+ 0x0000041f => "\x8f",
+ 0x00000420 => "\x90",
+ 0x00000421 => "\x91",
+ 0x00000422 => "\x92",
+ 0x00000423 => "\x93",
+ 0x00000424 => "\x94",
+ 0x00000425 => "\x95",
+ 0x00000426 => "\x96",
+ 0x00000427 => "\x97",
+ 0x00000428 => "\x98",
+ 0x00000429 => "\x99",
+ 0x0000042a => "\x9a",
+ 0x0000042b => "\x9b",
+ 0x0000042c => "\x9c",
+ 0x0000042d => "\x9d",
+ 0x0000042e => "\x9e",
+ 0x0000042f => "\x9f",
+ 0x00000430 => "\xe0",
+ 0x00000431 => "\xe1",
+ 0x00000432 => "\xe2",
+ 0x00000433 => "\xe3",
+ 0x00000434 => "\xe4",
+ 0x00000435 => "\xe5",
+ 0x00000436 => "\xe6",
+ 0x00000437 => "\xe7",
+ 0x00000438 => "\xe8",
+ 0x00000439 => "\xe9",
+ 0x0000043a => "\xea",
+ 0x0000043b => "\xeb",
+ 0x0000043c => "\xec",
+ 0x0000043d => "\xed",
+ 0x0000043e => "\xee",
+ 0x0000043f => "\xef",
+ 0x00000440 => "\xf0",
+ 0x00000441 => "\xf1",
+ 0x00000442 => "\xf2",
+ 0x00000443 => "\xf3",
+ 0x00000444 => "\xf4",
+ 0x00000445 => "\xf5",
+ 0x00000446 => "\xf6",
+ 0x00000447 => "\xf7",
+ 0x00000448 => "\xf8",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\xfa",
+ 0x0000044b => "\xfb",
+ 0x0000044c => "\xfc",
+ 0x0000044d => "\xfd",
+ 0x0000044e => "\xfe",
+ 0x0000044f => "\xdf",
+ 0x00000451 => "\xde",
+ 0x00000452 => "\xac",
+ 0x00000453 => "\xaf",
+ 0x00000454 => "\xb9",
+ 0x00000455 => "\xcf",
+ 0x00000456 => "\xb4",
+ 0x00000457 => "\xbb",
+ 0x00000458 => "\xc0",
+ 0x00000459 => "\xbd",
+ 0x0000045a => "\xbf",
+ 0x0000045b => "\xcc",
+ 0x0000045c => "\xce",
+ 0x0000045e => "\xd9",
+ 0x0000045f => "\xdb",
+ 0x00000490 => "\xa2",
+ 0x00000491 => "\xb6",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xd7",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002116 => "\xdc",
+ 0x00002122 => "\xaa",
+ 0x00002206 => "\xc6",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MACUKRAINE - Conversion routines for MACUKRAINE
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MACUKRAINE.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 81 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 82 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 84 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 85 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 88 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 8A | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 8B | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 8C | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 8D | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 8E | 0000041E | CYRILLIC CAPITAL LETTER O
+ 8F | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 90 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 91 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 92 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 93 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 94 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 95 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 9D | 0000042D | CYRILLIC CAPITAL LETTER E
+ 9E | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9F | 0000042F | CYRILLIC CAPITAL LETTER YA
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 00000402 | CYRILLIC CAPITAL LETTER DJE
+ AC | 00000452 | CYRILLIC SMALL LETTER DJE
+ AD | 00002260 | NOT EQUAL TO
+ AE | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ AF | 00000453 | CYRILLIC SMALL LETTER GJE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ B7 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ BA | 00000407 | CYRILLIC CAPITAL LETTER YI
+ BB | 00000457 | CYRILLIC SMALL LETTER YI
+ BC | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ BD | 00000459 | CYRILLIC SMALL LETTER LJE
+ BE | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ BF | 0000045A | CYRILLIC SMALL LETTER NJE
+ C0 | 00000458 | CYRILLIC SMALL LETTER JE
+ C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ CC | 0000045B | CYRILLIC SMALL LETTER TSHE
+ CD | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ CE | 0000045C | CYRILLIC SMALL LETTER KJE
+ CF | 00000455 | CYRILLIC SMALL LETTER DZE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ DB | 0000045F | CYRILLIC SMALL LETTER DZHE
+ DC | 00002116 | NUMERO SIGN
+ DD | 00000401 | CYRILLIC CAPITAL LETTER IO
+ DE | 00000451 | CYRILLIC SMALL LETTER IO
+ DF | 0000044F | CYRILLIC SMALL LETTER YA
+ E0 | 00000430 | CYRILLIC SMALL LETTER A
+ E1 | 00000431 | CYRILLIC SMALL LETTER BE
+ E2 | 00000432 | CYRILLIC SMALL LETTER VE
+ E3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ E4 | 00000434 | CYRILLIC SMALL LETTER DE
+ E5 | 00000435 | CYRILLIC SMALL LETTER IE
+ E6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ E7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ E8 | 00000438 | CYRILLIC SMALL LETTER I
+ E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ EA | 0000043A | CYRILLIC SMALL LETTER KA
+ EB | 0000043B | CYRILLIC SMALL LETTER EL
+ EC | 0000043C | CYRILLIC SMALL LETTER EM
+ ED | 0000043D | CYRILLIC SMALL LETTER EN
+ EE | 0000043E | CYRILLIC SMALL LETTER O
+ EF | 0000043F | CYRILLIC SMALL LETTER PE
+ F0 | 00000440 | CYRILLIC SMALL LETTER ER
+ F1 | 00000441 | CYRILLIC SMALL LETTER ES
+ F2 | 00000442 | CYRILLIC SMALL LETTER TE
+ F3 | 00000443 | CYRILLIC SMALL LETTER U
+ F4 | 00000444 | CYRILLIC SMALL LETTER EF
+ F5 | 00000445 | CYRILLIC SMALL LETTER HA
+ F6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ F7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ F8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ FB | 0000044B | CYRILLIC SMALL LETTER YERU
+ FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ FD | 0000044D | CYRILLIC SMALL LETTER E
+ FE | 0000044E | CYRILLIC SMALL LETTER YU
+ FF | 000000A4 | CURRENCY SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_IS.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_IS.pm
new file mode 100644
index 0000000..33cfac7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_IS.pm
@@ -0,0 +1,1140 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MAC_IS.pm,v 1.1 2011-10-12 23:51:48 pertusus Exp $
+
+# Conversion routines for MAC-IS.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MAC_IS;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x2020,
+ 0x00b0,
+ 0x00a2,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x00c6,
+ 0x00d8,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x00a5,
+ 0x00b5,
+ 0x2202,
+ 0x2211,
+ 0x220f,
+ 0x03c0,
+ 0x222b,
+ 0x00aa,
+ 0x00ba,
+ 0x03a9,
+ 0x00e6,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x0394,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2014,
+ 0x2013,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25c6,
+ 0x00ff,
+ 0x0178,
+ 0x2044,
+ 0x00a4,
+ 0x0110,
+ 0x0111,
+ 0x00de,
+ 0x00fe,
+ 0x2021,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xe01e,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0xfffd,
+ 0xfffd,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x02da,
+ 0x00b8,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xc2\xa5",
+ "\xc2\xb5",
+ "\xe2\x88\x82",
+ "\xe2\x88\x91",
+ "\xe2\x88\x8f",
+ "\xcf\x80",
+ "\xe2\x88\xab",
+ "\xc2\xaa",
+ "\xc2\xba",
+ "\xce\xa9",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xce\x94",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x93",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x86",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xe2\x81\x84",
+ "\xc2\xa4",
+ "\xc4\x90",
+ "\xc4\x91",
+ "\xc3\x9e",
+ "\xc3\xbe",
+ "\xe2\x80\xa1",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xee\x80\x9e",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xdb",
+ 0x000000a5 => "\xb4",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000aa => "\xbb",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000af => "\xf8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xab",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000b8 => "\xfc",
+ 0x000000ba => "\xbc",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xae",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000de => "\xde",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xbe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000fe => "\xdf",
+ 0x000000ff => "\xd8",
+ 0x00000110 => "\xdc",
+ 0x00000111 => "\xdd",
+ 0x00000131 => "\xf5",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x00000178 => "\xd9",
+ 0x00000192 => "\xc4",
+ 0x000002c7 => "\xff",
+ 0x000002d8 => "\xf9",
+ 0x000002d9 => "\xfa",
+ 0x000002da => "\xfb",
+ 0x000002db => "\xfe",
+ 0x000002dd => "\xfd",
+ 0x00000394 => "\xc6",
+ 0x000003a9 => "\xbd",
+ 0x000003c0 => "\xb9",
+ 0x00002013 => "\xd1",
+ 0x00002014 => "\xd0",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002020 => "\xa0",
+ 0x00002021 => "\xe0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002044 => "\xda",
+ 0x00002122 => "\xaa",
+ 0x00002202 => "\xb6",
+ 0x0000220f => "\xb8",
+ 0x00002211 => "\xb7",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x0000222b => "\xba",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+ 0x000025c6 => "\xd7",
+ 0x0000e01e => "\xf0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MAC_IS - Conversion routines for MAC-IS
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MAC-IS.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000C6 | LATIN CAPITAL LETTER AE
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 000000A5 | YEN SIGN
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 00002211 | N-ARY SUMMATION
+ B8 | 0000220F | N-ARY PRODUCT
+ B9 | 000003C0 | GREEK SMALL LETTER PI
+ BA | 0000222B | INTEGRAL
+ BB | 000000AA | FEMININE ORDINAL INDICATOR
+ BC | 000000BA | MASCULINE ORDINAL INDICATOR
+ BD | 000003A9 | GREEK CAPITAL LETTER OMEGA
+ BE | 000000E6 | LATIN SMALL LETTER AE
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00000394 | GREEK CAPITAL LETTER DELTA
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LIGATURE OE
+ CF | 00000153 | LATIN SMALL LIGATURE OE
+ D0 | 00002014 | EM DASH
+ D1 | 00002013 | EN DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025C6 | BLACK DIAMOND
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 00002044 | FRACTION SLASH
+ DB | 000000A4 | CURRENCY SIGN
+ DC | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ DD | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ DF | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ E0 | 00002021 | DOUBLE DAGGER
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F0 | 0000E01E | APPLE LOGO (Macintosh_F0)
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F8 | 000000AF | MACRON
+ F9 | 000002D8 | BREVE
+ FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
+ FB | 000002DA | RING ABOVE
+ FC | 000000B8 | CEDILLA
+ FD | 000002DD | DOUBLE ACUTE ACCENT
+ FE | 000002DB | OGONEK
+ FF | 000002C7 | CARON (Mandarin Chinese third tone)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_SAMI.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_SAMI.pm
new file mode 100644
index 0000000..dd7f843
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_SAMI.pm
@@ -0,0 +1,1147 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MAC_SAMI.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for MAC-SAMI.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MAC_SAMI;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c9,
+ 0x00d1,
+ 0x00d6,
+ 0x00dc,
+ 0x00e1,
+ 0x00e0,
+ 0x00e2,
+ 0x00e4,
+ 0x00e3,
+ 0x00e5,
+ 0x00e7,
+ 0x00e9,
+ 0x00e8,
+ 0x00ea,
+ 0x00eb,
+ 0x00ed,
+ 0x00ec,
+ 0x00ee,
+ 0x00ef,
+ 0x00f1,
+ 0x00f3,
+ 0x00f2,
+ 0x00f4,
+ 0x00f6,
+ 0x00f5,
+ 0x00fa,
+ 0x00f9,
+ 0x00fb,
+ 0x00fc,
+ 0x00dd,
+ 0x00b0,
+ 0x010c,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x00df,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x00b4,
+ 0x00a8,
+ 0x2260,
+ 0x00c6,
+ 0x00d8,
+ 0x0110,
+ 0x014a,
+ 0x821e,
+ 0x821f,
+ 0x0160,
+ 0x0166,
+ 0x2202,
+ 0x017d,
+ 0x010d,
+ 0x0111,
+ 0x014b,
+ 0x0161,
+ 0x0167,
+ 0x017e,
+ 0x00e6,
+ 0x00f8,
+ 0x00bf,
+ 0x00a1,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x00c0,
+ 0x00c3,
+ 0x00d5,
+ 0x0152,
+ 0x0153,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x25ca,
+ 0x00ff,
+ 0x0178,
+ 0x2044,
+ 0x00a4,
+ 0x00d0,
+ 0x00f0,
+ 0x00de,
+ 0x00fe,
+ 0x00fd,
+ 0x00b7,
+ 0x201a,
+ 0x201e,
+ 0x2030,
+ 0x00c2,
+ 0x00ca,
+ 0x00c1,
+ 0x00cb,
+ 0x00c8,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00cc,
+ 0x00d3,
+ 0x00d4,
+ 0xf8ff,
+ 0x00d2,
+ 0x00da,
+ 0x00db,
+ 0x00d9,
+ 0x0131,
+ 0x01b7,
+ 0x0292,
+ 0x01ee,
+ 0x01ef,
+ 0x01e4,
+ 0x01e5,
+ 0x01e6,
+ 0x01e7,
+ 0x01e8,
+ 0x01e9,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x89",
+ "\xc3\x91",
+ "\xc3\x96",
+ "\xc3\x9c",
+ "\xc3\xa1",
+ "\xc3\xa0",
+ "\xc3\xa2",
+ "\xc3\xa4",
+ "\xc3\xa3",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa9",
+ "\xc3\xa8",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xad",
+ "\xc3\xac",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb1",
+ "\xc3\xb3",
+ "\xc3\xb2",
+ "\xc3\xb4",
+ "\xc3\xb6",
+ "\xc3\xb5",
+ "\xc3\xba",
+ "\xc3\xb9",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\x9d",
+ "\xc2\xb0",
+ "\xc4\x8c",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xc3\x9f",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xc2\xb4",
+ "\xc2\xa8",
+ "\xe2\x89\xa0",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xc4\x90",
+ "\xc5\x8a",
+ "\xe8\x88\x9e",
+ "\xe8\x88\x9f",
+ "\xc5\xa0",
+ "\xc5\xa6",
+ "\xe2\x88\x82",
+ "\xc5\xbd",
+ "\xc4\x8d",
+ "\xc4\x91",
+ "\xc5\x8b",
+ "\xc5\xa1",
+ "\xc5\xa7",
+ "\xc5\xbe",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc2\xbf",
+ "\xc2\xa1",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x83",
+ "\xc3\x95",
+ "\xc5\x92",
+ "\xc5\x93",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x97\x8a",
+ "\xc3\xbf",
+ "\xc5\xb8",
+ "\xe2\x81\x84",
+ "\xc2\xa4",
+ "\xc3\x90",
+ "\xc3\xb0",
+ "\xc3\x9e",
+ "\xc3\xbe",
+ "\xc3\xbd",
+ "\xc2\xb7",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\xb0",
+ "\xc3\x82",
+ "\xc3\x8a",
+ "\xc3\x81",
+ "\xc3\x8b",
+ "\xc3\x88",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x8c",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xef\xa3\xbf",
+ "\xc3\x92",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x99",
+ "\xc4\xb1",
+ "\xc6\xb7",
+ "\xca\x92",
+ "\xc7\xae",
+ "\xc7\xaf",
+ "\xc7\xa4",
+ "\xc7\xa5",
+ "\xc7\xa6",
+ "\xc7\xa7",
+ "\xc7\xa8",
+ "\xc7\xa9",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a1 => "\xc1",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xdb",
+ 0x000000a7 => "\xa4",
+ 0x000000a8 => "\xac",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xa1",
+ 0x000000b4 => "\xab",
+ 0x000000b6 => "\xa6",
+ 0x000000b7 => "\xe1",
+ 0x000000bb => "\xc8",
+ 0x000000bf => "\xc0",
+ 0x000000c0 => "\xcb",
+ 0x000000c1 => "\xe7",
+ 0x000000c2 => "\xe5",
+ 0x000000c3 => "\xcc",
+ 0x000000c4 => "\x80",
+ 0x000000c5 => "\x81",
+ 0x000000c6 => "\xae",
+ 0x000000c7 => "\x82",
+ 0x000000c8 => "\xe9",
+ 0x000000c9 => "\x83",
+ 0x000000ca => "\xe6",
+ 0x000000cb => "\xe8",
+ 0x000000cc => "\xed",
+ 0x000000cd => "\xea",
+ 0x000000ce => "\xeb",
+ 0x000000cf => "\xec",
+ 0x000000d0 => "\xdc",
+ 0x000000d1 => "\x84",
+ 0x000000d2 => "\xf1",
+ 0x000000d3 => "\xee",
+ 0x000000d4 => "\xef",
+ 0x000000d5 => "\xcd",
+ 0x000000d6 => "\x85",
+ 0x000000d8 => "\xaf",
+ 0x000000d9 => "\xf4",
+ 0x000000da => "\xf2",
+ 0x000000db => "\xf3",
+ 0x000000dc => "\x86",
+ 0x000000dd => "\xa0",
+ 0x000000de => "\xde",
+ 0x000000df => "\xa7",
+ 0x000000e0 => "\x88",
+ 0x000000e1 => "\x87",
+ 0x000000e2 => "\x89",
+ 0x000000e3 => "\x8b",
+ 0x000000e4 => "\x8a",
+ 0x000000e5 => "\x8c",
+ 0x000000e6 => "\xbe",
+ 0x000000e7 => "\x8d",
+ 0x000000e8 => "\x8f",
+ 0x000000e9 => "\x8e",
+ 0x000000ea => "\x90",
+ 0x000000eb => "\x91",
+ 0x000000ec => "\x93",
+ 0x000000ed => "\x92",
+ 0x000000ee => "\x94",
+ 0x000000ef => "\x95",
+ 0x000000f0 => "\xdd",
+ 0x000000f1 => "\x96",
+ 0x000000f2 => "\x98",
+ 0x000000f3 => "\x97",
+ 0x000000f4 => "\x99",
+ 0x000000f5 => "\x9b",
+ 0x000000f6 => "\x9a",
+ 0x000000f7 => "\xd6",
+ 0x000000f8 => "\xbf",
+ 0x000000f9 => "\x9d",
+ 0x000000fa => "\x9c",
+ 0x000000fb => "\x9e",
+ 0x000000fc => "\x9f",
+ 0x000000fd => "\xe0",
+ 0x000000fe => "\xdf",
+ 0x000000ff => "\xd8",
+ 0x0000010c => "\xa2",
+ 0x0000010d => "\xb8",
+ 0x00000110 => "\xb0",
+ 0x00000111 => "\xb9",
+ 0x00000131 => "\xf5",
+ 0x0000014a => "\xb1",
+ 0x0000014b => "\xba",
+ 0x00000152 => "\xce",
+ 0x00000153 => "\xcf",
+ 0x00000160 => "\xb4",
+ 0x00000161 => "\xbb",
+ 0x00000166 => "\xb5",
+ 0x00000167 => "\xbc",
+ 0x00000178 => "\xd9",
+ 0x0000017d => "\xb7",
+ 0x0000017e => "\xbd",
+ 0x00000192 => "\xc4",
+ 0x000001b7 => "\xf6",
+ 0x000001e4 => "\xfa",
+ 0x000001e5 => "\xfb",
+ 0x000001e6 => "\xfc",
+ 0x000001e7 => "\xfd",
+ 0x000001e8 => "\xfe",
+ 0x000001e9 => "\xff",
+ 0x000001ee => "\xf8",
+ 0x000001ef => "\xf9",
+ 0x00000292 => "\xf7",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201a => "\xe2",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xe3",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002030 => "\xe4",
+ 0x00002044 => "\xda",
+ 0x00002122 => "\xaa",
+ 0x00002202 => "\xb6",
+ 0x00002206 => "\xc6",
+ 0x0000221a => "\xc3",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x000025ca => "\xd7",
+ 0x0000821e => "\xb2",
+ 0x0000821f => "\xb3",
+ 0x0000f8ff => "\xf0",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MAC_SAMI - Conversion routines for MAC-SAMI
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MAC-SAMI.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ source: http://www.indigo.ie/egt/standards/se/mac-sami.html
+ author: Regnor Jernsletten E<lt>Regnor.Jernsletten@sami.uit.noE<gt>
+ date: 2001-07-31
+ comment: Macintosh sami standard.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ A0 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 000000B4 | ACUTE ACCENT
+ AC | 000000A8 | DIAERESIS
+ AD | 00002260 | NOT EQUAL TO
+ AE | 000000C6 | LATIN CAPITAL LETTER AE
+ AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ B0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ B1 | 0000014A | LATIN CAPITAL LETTER ENG
+ B2 | 0000821E | LATIN CAPITAL LETTER H WITH CARON
+ B3 | 0000821F | LATIN SMALL LETTER H WITH CARON
+ B4 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ B5 | 00000166 | LATIN CAPITAL LETTER T WITH STROKE
+ B6 | 00002202 | PARTIAL DIFFERENTIAL
+ B7 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ B8 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ B9 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ BA | 0000014B | LATIN SMALL LETTER ENG
+ BB | 00000161 | LATIN SMALL LETTER S WITH CARON
+ BC | 00000167 | LATIN SMALL LETTER T WITH STROKE
+ BD | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ BE | 000000E6 | LATIN SMALL LETTER AE
+ BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ C0 | 000000BF | INVERTED QUESTION MARK
+ C1 | 000000A1 | INVERTED EXCLAMATION MARK
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ CE | 00000152 | LATIN CAPITAL LETTER LIGATURE OE
+ CF | 00000153 | LATIN SMALL LETTER LIGATURE OE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 000025CA | LOZENGE
+ D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+ D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ DA | 00002044 | FRACTION SLASH
+ DB | 000000A4 | CURRENCY SIGN
+ DC | 000000D0 | LATIN CAPITAL LETTER ETH
+ DD | 000000F0 | LATIN SMALL LETTER ETH
+ DE | 000000DE | LATIN CAPITAL LETTER THORN
+ DF | 000000FE | LATIN SMALL LETTER THORN
+ E0 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ E1 | 000000B7 | MIDDLE DOT
+ E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ E4 | 00002030 | PER MILLE SIGN
+ E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ F0 | 0000F8FF | APPLE SIGN
+ F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000001B7 | LATIN CAPITAL LETTER EZH
+ F7 | 00000292 | LATIN SMALL LETTER EZH
+ F8 | 000001EE | LATIN CAPITAL LETTER EZH WITH CARON
+ F9 | 000001EF | LATIN SMALL LETTER EZH WITH CARON
+ FA | 000001E4 | LATIN CAPITAL LETTER G WITH STROKE
+ FB | 000001E5 | LATIN SMALLL LETTER G WITH STROKE
+ FC | 000001E6 | LATIN CAPITAL LETTER G WITH CARON
+ FD | 000001E7 | LATIN SMALL LETTER G WITH CARON
+ FE | 000001E8 | LATIN CAPITAL LETTER K WITH CARON
+ FF | 000001E9 | LATIN SMALL LETTER K WITH CARON
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_UK.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_UK.pm
new file mode 100644
index 0000000..033ea0b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/MAC_UK.pm
@@ -0,0 +1,1144 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: MAC_UK.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for MAC-UK.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::MAC_UK;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x0410,
+ 0x0411,
+ 0x0412,
+ 0x0413,
+ 0x0414,
+ 0x0415,
+ 0x0416,
+ 0x0417,
+ 0x0418,
+ 0x0419,
+ 0x041a,
+ 0x041b,
+ 0x041c,
+ 0x041d,
+ 0x041e,
+ 0x041f,
+ 0x0420,
+ 0x0421,
+ 0x0422,
+ 0x0423,
+ 0x0424,
+ 0x0425,
+ 0x0426,
+ 0x0427,
+ 0x0428,
+ 0x0429,
+ 0x042a,
+ 0x042b,
+ 0x042c,
+ 0x042d,
+ 0x042e,
+ 0x042f,
+ 0x2020,
+ 0x00b0,
+ 0x0490,
+ 0x00a3,
+ 0x00a7,
+ 0x2022,
+ 0x00b6,
+ 0x0406,
+ 0x00ae,
+ 0x00a9,
+ 0x2122,
+ 0x0402,
+ 0x0452,
+ 0x2260,
+ 0x0403,
+ 0x0453,
+ 0x221e,
+ 0x00b1,
+ 0x2264,
+ 0x2265,
+ 0x0456,
+ 0x00b5,
+ 0x0491,
+ 0x0408,
+ 0x0404,
+ 0x0454,
+ 0x0407,
+ 0x0457,
+ 0x0409,
+ 0x0459,
+ 0x040a,
+ 0x045a,
+ 0x0458,
+ 0x0405,
+ 0x00ac,
+ 0x221a,
+ 0x0192,
+ 0x2248,
+ 0x2206,
+ 0x00ab,
+ 0x00bb,
+ 0x2026,
+ 0x00a0,
+ 0x040b,
+ 0x045b,
+ 0x040c,
+ 0x045c,
+ 0x0455,
+ 0x2013,
+ 0x2014,
+ 0x201c,
+ 0x201d,
+ 0x2018,
+ 0x2019,
+ 0x00f7,
+ 0x201e,
+ 0x040e,
+ 0x045e,
+ 0x040f,
+ 0x045f,
+ 0x2116,
+ 0x0401,
+ 0x0451,
+ 0x044f,
+ 0x0430,
+ 0x0431,
+ 0x0432,
+ 0x0433,
+ 0x0434,
+ 0x0435,
+ 0x0436,
+ 0x0437,
+ 0x0438,
+ 0x0439,
+ 0x043a,
+ 0x043b,
+ 0x043c,
+ 0x043d,
+ 0x043e,
+ 0x043f,
+ 0x0440,
+ 0x0441,
+ 0x0442,
+ 0x0443,
+ 0x0444,
+ 0x0445,
+ 0x0446,
+ 0x0447,
+ 0x0448,
+ 0x0449,
+ 0x044a,
+ 0x044b,
+ 0x044c,
+ 0x044d,
+ 0x044e,
+ 0x00a4,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xd0\x90",
+ "\xd0\x91",
+ "\xd0\x92",
+ "\xd0\x93",
+ "\xd0\x94",
+ "\xd0\x95",
+ "\xd0\x96",
+ "\xd0\x97",
+ "\xd0\x98",
+ "\xd0\x99",
+ "\xd0\x9a",
+ "\xd0\x9b",
+ "\xd0\x9c",
+ "\xd0\x9d",
+ "\xd0\x9e",
+ "\xd0\x9f",
+ "\xd0\xa0",
+ "\xd0\xa1",
+ "\xd0\xa2",
+ "\xd0\xa3",
+ "\xd0\xa4",
+ "\xd0\xa5",
+ "\xd0\xa6",
+ "\xd0\xa7",
+ "\xd0\xa8",
+ "\xd0\xa9",
+ "\xd0\xaa",
+ "\xd0\xab",
+ "\xd0\xac",
+ "\xd0\xad",
+ "\xd0\xae",
+ "\xd0\xaf",
+ "\xe2\x80\xa0",
+ "\xc2\xb0",
+ "\xd2\x90",
+ "\xc2\xa3",
+ "\xc2\xa7",
+ "\xe2\x80\xa2",
+ "\xc2\xb6",
+ "\xd0\x86",
+ "\xc2\xae",
+ "\xc2\xa9",
+ "\xe2\x84\xa2",
+ "\xd0\x82",
+ "\xd1\x92",
+ "\xe2\x89\xa0",
+ "\xd0\x83",
+ "\xd1\x93",
+ "\xe2\x88\x9e",
+ "\xc2\xb1",
+ "\xe2\x89\xa4",
+ "\xe2\x89\xa5",
+ "\xd1\x96",
+ "\xc2\xb5",
+ "\xd2\x91",
+ "\xd0\x88",
+ "\xd0\x84",
+ "\xd1\x94",
+ "\xd0\x87",
+ "\xd1\x97",
+ "\xd0\x89",
+ "\xd1\x99",
+ "\xd0\x8a",
+ "\xd1\x9a",
+ "\xd1\x98",
+ "\xd0\x85",
+ "\xc2\xac",
+ "\xe2\x88\x9a",
+ "\xc6\x92",
+ "\xe2\x89\x88",
+ "\xe2\x88\x86",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xc2\xa0",
+ "\xd0\x8b",
+ "\xd1\x9b",
+ "\xd0\x8c",
+ "\xd1\x9c",
+ "\xd1\x95",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xc3\xb7",
+ "\xe2\x80\x9e",
+ "\xd0\x8e",
+ "\xd1\x9e",
+ "\xd0\x8f",
+ "\xd1\x9f",
+ "\xe2\x84\x96",
+ "\xd0\x81",
+ "\xd1\x91",
+ "\xd1\x8f",
+ "\xd0\xb0",
+ "\xd0\xb1",
+ "\xd0\xb2",
+ "\xd0\xb3",
+ "\xd0\xb4",
+ "\xd0\xb5",
+ "\xd0\xb6",
+ "\xd0\xb7",
+ "\xd0\xb8",
+ "\xd0\xb9",
+ "\xd0\xba",
+ "\xd0\xbb",
+ "\xd0\xbc",
+ "\xd0\xbd",
+ "\xd0\xbe",
+ "\xd0\xbf",
+ "\xd1\x80",
+ "\xd1\x81",
+ "\xd1\x82",
+ "\xd1\x83",
+ "\xd1\x84",
+ "\xd1\x85",
+ "\xd1\x86",
+ "\xd1\x87",
+ "\xd1\x88",
+ "\xd1\x89",
+ "\xd1\x8a",
+ "\xd1\x8b",
+ "\xd1\x8c",
+ "\xd1\x8d",
+ "\xd1\x8e",
+ "\xc2\xa4",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xca",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xff",
+ 0x000000a7 => "\xa4",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xc7",
+ 0x000000ac => "\xc2",
+ 0x000000ae => "\xa8",
+ 0x000000b0 => "\xa1",
+ 0x000000b1 => "\xb1",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xa6",
+ 0x000000bb => "\xc8",
+ 0x000000f7 => "\xd6",
+ 0x00000192 => "\xc4",
+ 0x00000401 => "\xdd",
+ 0x00000402 => "\xab",
+ 0x00000403 => "\xae",
+ 0x00000404 => "\xb8",
+ 0x00000405 => "\xc1",
+ 0x00000406 => "\xa7",
+ 0x00000407 => "\xba",
+ 0x00000408 => "\xb7",
+ 0x00000409 => "\xbc",
+ 0x0000040a => "\xbe",
+ 0x0000040b => "\xcb",
+ 0x0000040c => "\xcd",
+ 0x0000040e => "\xd8",
+ 0x0000040f => "\xda",
+ 0x00000410 => "\x80",
+ 0x00000411 => "\x81",
+ 0x00000412 => "\x82",
+ 0x00000413 => "\x83",
+ 0x00000414 => "\x84",
+ 0x00000415 => "\x85",
+ 0x00000416 => "\x86",
+ 0x00000417 => "\x87",
+ 0x00000418 => "\x88",
+ 0x00000419 => "\x89",
+ 0x0000041a => "\x8a",
+ 0x0000041b => "\x8b",
+ 0x0000041c => "\x8c",
+ 0x0000041d => "\x8d",
+ 0x0000041e => "\x8e",
+ 0x0000041f => "\x8f",
+ 0x00000420 => "\x90",
+ 0x00000421 => "\x91",
+ 0x00000422 => "\x92",
+ 0x00000423 => "\x93",
+ 0x00000424 => "\x94",
+ 0x00000425 => "\x95",
+ 0x00000426 => "\x96",
+ 0x00000427 => "\x97",
+ 0x00000428 => "\x98",
+ 0x00000429 => "\x99",
+ 0x0000042a => "\x9a",
+ 0x0000042b => "\x9b",
+ 0x0000042c => "\x9c",
+ 0x0000042d => "\x9d",
+ 0x0000042e => "\x9e",
+ 0x0000042f => "\x9f",
+ 0x00000430 => "\xe0",
+ 0x00000431 => "\xe1",
+ 0x00000432 => "\xe2",
+ 0x00000433 => "\xe3",
+ 0x00000434 => "\xe4",
+ 0x00000435 => "\xe5",
+ 0x00000436 => "\xe6",
+ 0x00000437 => "\xe7",
+ 0x00000438 => "\xe8",
+ 0x00000439 => "\xe9",
+ 0x0000043a => "\xea",
+ 0x0000043b => "\xeb",
+ 0x0000043c => "\xec",
+ 0x0000043d => "\xed",
+ 0x0000043e => "\xee",
+ 0x0000043f => "\xef",
+ 0x00000440 => "\xf0",
+ 0x00000441 => "\xf1",
+ 0x00000442 => "\xf2",
+ 0x00000443 => "\xf3",
+ 0x00000444 => "\xf4",
+ 0x00000445 => "\xf5",
+ 0x00000446 => "\xf6",
+ 0x00000447 => "\xf7",
+ 0x00000448 => "\xf8",
+ 0x00000449 => "\xf9",
+ 0x0000044a => "\xfa",
+ 0x0000044b => "\xfb",
+ 0x0000044c => "\xfc",
+ 0x0000044d => "\xfd",
+ 0x0000044e => "\xfe",
+ 0x0000044f => "\xdf",
+ 0x00000451 => "\xde",
+ 0x00000452 => "\xac",
+ 0x00000453 => "\xaf",
+ 0x00000454 => "\xb9",
+ 0x00000455 => "\xcf",
+ 0x00000456 => "\xb4",
+ 0x00000457 => "\xbb",
+ 0x00000458 => "\xc0",
+ 0x00000459 => "\xbd",
+ 0x0000045a => "\xbf",
+ 0x0000045b => "\xcc",
+ 0x0000045c => "\xce",
+ 0x0000045e => "\xd9",
+ 0x0000045f => "\xdb",
+ 0x00000490 => "\xa2",
+ 0x00000491 => "\xb6",
+ 0x00002013 => "\xd0",
+ 0x00002014 => "\xd1",
+ 0x00002018 => "\xd4",
+ 0x00002019 => "\xd5",
+ 0x0000201c => "\xd2",
+ 0x0000201d => "\xd3",
+ 0x0000201e => "\xd7",
+ 0x00002020 => "\xa0",
+ 0x00002022 => "\xa5",
+ 0x00002026 => "\xc9",
+ 0x00002116 => "\xdc",
+ 0x00002122 => "\xaa",
+ 0x00002206 => "\xc6",
+ 0x0000221a => "\xc3",
+ 0x0000221e => "\xb0",
+ 0x00002248 => "\xc5",
+ 0x00002260 => "\xad",
+ 0x00002264 => "\xb2",
+ 0x00002265 => "\xb3",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::MAC_UK - Conversion routines for MAC-UK
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for MAC-UK.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ automatically generated from the charDB
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL
+ 01 | 00000001 | START OF HEADING
+ 02 | 00000002 | START OF TEXT
+ 03 | 00000003 | END OF TEXT
+ 04 | 00000004 | END OF TRANSMISSION
+ 05 | 00000005 | ENQUIRY
+ 06 | 00000006 | ACKNOWLEDGE
+ 07 | 00000007 | BELL
+ 08 | 00000008 | BACKSPACE
+ 09 | 00000009 | HORIZONTAL TABULATION
+ 0A | 0000000A | LINE FEED
+ 0B | 0000000B | VERTICAL TABULATION
+ 0C | 0000000C | FORM FEED
+ 0D | 0000000D | CARRIAGE RETURN
+ 0E | 0000000E | SHIFT OUT
+ 0F | 0000000F | SHIFT IN
+ 10 | 00000010 | DATA LINK ESCAPE
+ 11 | 00000011 | DEVICE CONTROL ONE
+ 12 | 00000012 | DEVICE CONTROL TWO
+ 13 | 00000013 | DEVICE CONTROL THREE
+ 14 | 00000014 | DEVICE CONTROL FOUR
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE
+ 16 | 00000016 | SYNCHRONOUS IDLE
+ 17 | 00000017 | END OF TRANSMISSION BLOCK
+ 18 | 00000018 | CANCEL
+ 19 | 00000019 | END OF MEDIUM
+ 1A | 0000001A | SUBSTITUTE
+ 1B | 0000001B | ESCAPE
+ 1C | 0000001C | FILE SEPARATOR
+ 1D | 0000001D | GROUP SEPARATOR
+ 1E | 0000001E | RECORD SEPARATOR
+ 1F | 0000001F | UNIT SEPARATOR
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE
+ 80 | 00000410 | CYRILLIC CAPITAL LETTER A
+ 81 | 00000411 | CYRILLIC CAPITAL LETTER BE
+ 82 | 00000412 | CYRILLIC CAPITAL LETTER VE
+ 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE
+ 84 | 00000414 | CYRILLIC CAPITAL LETTER DE
+ 85 | 00000415 | CYRILLIC CAPITAL LETTER IE
+ 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE
+ 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE
+ 88 | 00000418 | CYRILLIC CAPITAL LETTER I
+ 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I
+ 8A | 0000041A | CYRILLIC CAPITAL LETTER KA
+ 8B | 0000041B | CYRILLIC CAPITAL LETTER EL
+ 8C | 0000041C | CYRILLIC CAPITAL LETTER EM
+ 8D | 0000041D | CYRILLIC CAPITAL LETTER EN
+ 8E | 0000041E | CYRILLIC CAPITAL LETTER O
+ 8F | 0000041F | CYRILLIC CAPITAL LETTER PE
+ 90 | 00000420 | CYRILLIC CAPITAL LETTER ER
+ 91 | 00000421 | CYRILLIC CAPITAL LETTER ES
+ 92 | 00000422 | CYRILLIC CAPITAL LETTER TE
+ 93 | 00000423 | CYRILLIC CAPITAL LETTER U
+ 94 | 00000424 | CYRILLIC CAPITAL LETTER EF
+ 95 | 00000425 | CYRILLIC CAPITAL LETTER HA
+ 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE
+ 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE
+ 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA
+ 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA
+ 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
+ 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU
+ 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
+ 9D | 0000042D | CYRILLIC CAPITAL LETTER E
+ 9E | 0000042E | CYRILLIC CAPITAL LETTER YU
+ 9F | 0000042F | CYRILLIC CAPITAL LETTER YA
+ A0 | 00002020 | DAGGER
+ A1 | 000000B0 | DEGREE SIGN
+ A2 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A7 | SECTION SIGN
+ A5 | 00002022 | BULLET
+ A6 | 000000B6 | PILCROW SIGN
+ A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+ A8 | 000000AE | REGISTERED SIGN
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 00002122 | TRADE MARK SIGN
+ AB | 00000402 | CYRILLIC CAPITAL LETTER DJE
+ AC | 00000452 | CYRILLIC SMALL LETTER DJE
+ AD | 00002260 | NOT EQUAL TO
+ AE | 00000403 | CYRILLIC CAPITAL LETTER GJE
+ AF | 00000453 | CYRILLIC SMALL LETTER GJE
+ B0 | 0000221E | INFINITY
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 00002264 | LESS-THAN OR EQUAL TO
+ B3 | 00002265 | GREATER-THAN OR EQUAL TO
+ B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
+ B7 | 00000408 | CYRILLIC CAPITAL LETTER JE
+ B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
+ B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
+ BA | 00000407 | CYRILLIC CAPITAL LETTER YI
+ BB | 00000457 | CYRILLIC SMALL LETTER YI
+ BC | 00000409 | CYRILLIC CAPITAL LETTER LJE
+ BD | 00000459 | CYRILLIC SMALL LETTER LJE
+ BE | 0000040A | CYRILLIC CAPITAL LETTER NJE
+ BF | 0000045A | CYRILLIC SMALL LETTER NJE
+ C0 | 00000458 | CYRILLIC SMALL LETTER JE
+ C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE
+ C2 | 000000AC | NOT SIGN
+ C3 | 0000221A | SQUARE ROOT
+ C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ C5 | 00002248 | ALMOST EQUAL TO
+ C6 | 00002206 | INCREMENT
+ C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ C9 | 00002026 | HORIZONTAL ELLIPSIS
+ CA | 000000A0 | NO-BREAK SPACE
+ CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE
+ CC | 0000045B | CYRILLIC SMALL LETTER TSHE
+ CD | 0000040C | CYRILLIC CAPITAL LETTER KJE
+ CE | 0000045C | CYRILLIC SMALL LETTER KJE
+ CF | 00000455 | CYRILLIC SMALL LETTER DZE
+ D0 | 00002013 | EN DASH
+ D1 | 00002014 | EM DASH
+ D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ D4 | 00002018 | LEFT SINGLE QUOTATION MARK
+ D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ D6 | 000000F7 | DIVISION SIGN
+ D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U
+ D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U
+ DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE
+ DB | 0000045F | CYRILLIC SMALL LETTER DZHE
+ DC | 00002116 | NUMERO SIGN
+ DD | 00000401 | CYRILLIC CAPITAL LETTER IO
+ DE | 00000451 | CYRILLIC SMALL LETTER IO
+ DF | 0000044F | CYRILLIC SMALL LETTER YA
+ E0 | 00000430 | CYRILLIC SMALL LETTER A
+ E1 | 00000431 | CYRILLIC SMALL LETTER BE
+ E2 | 00000432 | CYRILLIC SMALL LETTER VE
+ E3 | 00000433 | CYRILLIC SMALL LETTER GHE
+ E4 | 00000434 | CYRILLIC SMALL LETTER DE
+ E5 | 00000435 | CYRILLIC SMALL LETTER IE
+ E6 | 00000436 | CYRILLIC SMALL LETTER ZHE
+ E7 | 00000437 | CYRILLIC SMALL LETTER ZE
+ E8 | 00000438 | CYRILLIC SMALL LETTER I
+ E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I
+ EA | 0000043A | CYRILLIC SMALL LETTER KA
+ EB | 0000043B | CYRILLIC SMALL LETTER EL
+ EC | 0000043C | CYRILLIC SMALL LETTER EM
+ ED | 0000043D | CYRILLIC SMALL LETTER EN
+ EE | 0000043E | CYRILLIC SMALL LETTER O
+ EF | 0000043F | CYRILLIC SMALL LETTER PE
+ F0 | 00000440 | CYRILLIC SMALL LETTER ER
+ F1 | 00000441 | CYRILLIC SMALL LETTER ES
+ F2 | 00000442 | CYRILLIC SMALL LETTER TE
+ F3 | 00000443 | CYRILLIC SMALL LETTER U
+ F4 | 00000444 | CYRILLIC SMALL LETTER EF
+ F5 | 00000445 | CYRILLIC SMALL LETTER HA
+ F6 | 00000446 | CYRILLIC SMALL LETTER TSE
+ F7 | 00000447 | CYRILLIC SMALL LETTER CHE
+ F8 | 00000448 | CYRILLIC SMALL LETTER SHA
+ F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA
+ FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
+ FB | 0000044B | CYRILLIC SMALL LETTER YERU
+ FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
+ FD | 0000044D | CYRILLIC SMALL LETTER E
+ FE | 0000044E | CYRILLIC SMALL LETTER YU
+ FF | 000000A4 | CURRENCY SIGN
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_DANO.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_DANO.pm
new file mode 100644
index 0000000..d2be65a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_DANO.pm
@@ -0,0 +1,890 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: NATS_DANO.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for NATS-DANO.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::NATS_DANO;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x00ab,
+ 0x00bb,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0xe018,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00c6,
+ 0x00d8,
+ 0x00c5,
+ 0x25a0,
+ 0x005f,
+ 0xe019,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00e6,
+ 0x00f8,
+ 0x00e5,
+ 0x2013,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\xc2\xab",
+ "\xc2\xbb",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\xee\x80\x98",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc3\x86",
+ "\xc3\x98",
+ "\xc3\x85",
+ "\xe2\x96\xa0",
+ "\x5f",
+ "\xee\x80\x99",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc3\xa6",
+ "\xc3\xb8",
+ "\xc3\xa5",
+ "\xe2\x80\x93",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005f => "\x5f",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007f => "\x7f",
+ 0x000000ab => "\x22",
+ 0x000000bb => "\x23",
+ 0x000000c5 => "\x5d",
+ 0x000000c6 => "\x5b",
+ 0x000000d8 => "\x5c",
+ 0x000000e5 => "\x7d",
+ 0x000000e6 => "\x7b",
+ 0x000000f8 => "\x7c",
+ 0x00002013 => "\x7e",
+ 0x000025a0 => "\x5e",
+ 0x0000e018 => "\x40",
+ 0x0000e019 => "\x60",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::NATS_DANO - Conversion routines for NATS_DANO
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for NATS-DANO.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-9-1
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 23 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 0000E018 | Unit space A E<lt>ISO-IR-8-1_40E<gt>
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 000000C6 | LATIN CAPITAL LETTER AE
+ 5C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ 5D | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5E | 000025A0 | BLACK SQUARE
+ 5F | 0000005F | LOW LINE
+ 60 | 0000E019 | Unit space B E<lt>ISO-IR-8-1_60E<gt>
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 000000E6 | LATIN SMALL LETTER AE
+ 7C | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ 7D | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 7E | 00002013 | EN DASH
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_SEFI.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_SEFI.pm
new file mode 100644
index 0000000..262c97e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NATS_SEFI.pm
@@ -0,0 +1,890 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: NATS_SEFI.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for NATS-SEFI.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::NATS_SEFI;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0xe018,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x00c4,
+ 0x00d6,
+ 0x00c5,
+ 0x25a0,
+ 0x005f,
+ 0xe019,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x00e4,
+ 0x00f6,
+ 0x00e5,
+ 0x2013,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\xee\x80\x98",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\xc3\x84",
+ "\xc3\x96",
+ "\xc3\x85",
+ "\xe2\x96\xa0",
+ "\x5f",
+ "\xee\x80\x99",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\xc3\xa4",
+ "\xc3\xb6",
+ "\xc3\xa5",
+ "\xe2\x80\x93",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005f => "\x5f",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007f => "\x7f",
+ 0x000000c4 => "\x5b",
+ 0x000000c5 => "\x5d",
+ 0x000000d6 => "\x5c",
+ 0x000000e4 => "\x7b",
+ 0x000000e5 => "\x7d",
+ 0x000000f6 => "\x7c",
+ 0x00002013 => "\x7e",
+ 0x000025a0 => "\x5e",
+ 0x0000e018 => "\x40",
+ 0x0000e019 => "\x60",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::NATS_SEFI - Conversion routines for NATS_SEFI
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for NATS-SEFI.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ source: ECMA registry
+ alias ISO-IR-8-1
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 0000E018 | Unit space A E<lt>ISO-IR-8-1_40E<gt>
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 5C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 5D | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 5E | 000025A0 | BLACK SQUARE
+ 5F | 0000005F | LOW LINE
+ 60 | 0000E019 | Unit space B E<lt>ISO-IR-8-1_60E<gt>
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ 7C | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ 7D | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ 7E | 00002013 | EN DASH
+ 7F | 0000007F | DELETE (DEL)
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NEXTSTEP.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NEXTSTEP.pm
new file mode 100644
index 0000000..47bd5d4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/NEXTSTEP.pm
@@ -0,0 +1,1142 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: NEXTSTEP.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for NEXTSTEP.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::NEXTSTEP;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x00a0,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00b5,
+ 0x00d7,
+ 0x00f7,
+ 0x00a9,
+ 0x00a1,
+ 0x00a2,
+ 0x00a3,
+ 0x2044,
+ 0x00a5,
+ 0x0192,
+ 0x00a7,
+ 0x00a4,
+ 0x2019,
+ 0x201c,
+ 0x00ab,
+ 0x2039,
+ 0x203a,
+ 0xfb01,
+ 0xfb02,
+ 0x00ae,
+ 0x2013,
+ 0x2020,
+ 0x2021,
+ 0x00b7,
+ 0x00a6,
+ 0x00b6,
+ 0x2022,
+ 0x201a,
+ 0x201e,
+ 0x201d,
+ 0x00bb,
+ 0x2026,
+ 0x2030,
+ 0x00ac,
+ 0x00bf,
+ 0x00b9,
+ 0x02cb,
+ 0x00b4,
+ 0x02c6,
+ 0x02dc,
+ 0x00af,
+ 0x02d8,
+ 0x02d9,
+ 0x00a8,
+ 0x00b2,
+ 0x02da,
+ 0x00b8,
+ 0x00b3,
+ 0x02dd,
+ 0x02db,
+ 0x02c7,
+ 0x2014,
+ 0x00b1,
+ 0x00bc,
+ 0x00bd,
+ 0x00be,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00c6,
+ 0x00ed,
+ 0x00aa,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x0141,
+ 0x00d8,
+ 0x0152,
+ 0x00ba,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00e6,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x0131,
+ 0x00fc,
+ 0x00fd,
+ 0x0142,
+ 0x00f8,
+ 0x0153,
+ 0x00df,
+ 0x00fe,
+ 0x00ff,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xc2\xa0",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc2\xb5",
+ "\xc3\x97",
+ "\xc3\xb7",
+ "\xc2\xa9",
+ "\xc2\xa1",
+ "\xc2\xa2",
+ "\xc2\xa3",
+ "\xe2\x81\x84",
+ "\xc2\xa5",
+ "\xc6\x92",
+ "\xc2\xa7",
+ "\xc2\xa4",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xc2\xab",
+ "\xe2\x80\xb9",
+ "\xe2\x80\xba",
+ "\xef\xac\x81",
+ "\xef\xac\x82",
+ "\xc2\xae",
+ "\xe2\x80\x93",
+ "\xe2\x80\xa0",
+ "\xe2\x80\xa1",
+ "\xc2\xb7",
+ "\xc2\xa6",
+ "\xc2\xb6",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x9a",
+ "\xe2\x80\x9e",
+ "\xe2\x80\x9d",
+ "\xc2\xbb",
+ "\xe2\x80\xa6",
+ "\xe2\x80\xb0",
+ "\xc2\xac",
+ "\xc2\xbf",
+ "\xc2\xb9",
+ "\xcb\x8b",
+ "\xc2\xb4",
+ "\xcb\x86",
+ "\xcb\x9c",
+ "\xc2\xaf",
+ "\xcb\x98",
+ "\xcb\x99",
+ "\xc2\xa8",
+ "\xc2\xb2",
+ "\xcb\x9a",
+ "\xc2\xb8",
+ "\xc2\xb3",
+ "\xcb\x9d",
+ "\xcb\x9b",
+ "\xcb\x87",
+ "\xe2\x80\x94",
+ "\xc2\xb1",
+ "\xc2\xbc",
+ "\xc2\xbd",
+ "\xc2\xbe",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\x86",
+ "\xc3\xad",
+ "\xc2\xaa",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc5\x81",
+ "\xc3\x98",
+ "\xc5\x92",
+ "\xc2\xba",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xa6",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc4\xb1",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc5\x82",
+ "\xc3\xb8",
+ "\xc5\x93",
+ "\xc3\x9f",
+ "\xc3\xbe",
+ "\xc3\xbf",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\x80",
+ 0x000000a1 => "\xa1",
+ 0x000000a2 => "\xa2",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa8",
+ 0x000000a5 => "\xa5",
+ 0x000000a6 => "\xb5",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xc8",
+ 0x000000a9 => "\xa0",
+ 0x000000aa => "\xe3",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xbe",
+ 0x000000ae => "\xb0",
+ 0x000000af => "\xc5",
+ 0x000000b1 => "\xd1",
+ 0x000000b2 => "\xc9",
+ 0x000000b3 => "\xcc",
+ 0x000000b4 => "\xc2",
+ 0x000000b5 => "\x9d",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb4",
+ 0x000000b8 => "\xcb",
+ 0x000000b9 => "\xc0",
+ 0x000000ba => "\xeb",
+ 0x000000bb => "\xbb",
+ 0x000000bc => "\xd2",
+ 0x000000bd => "\xd3",
+ 0x000000be => "\xd4",
+ 0x000000bf => "\xbf",
+ 0x000000c0 => "\x81",
+ 0x000000c1 => "\x82",
+ 0x000000c2 => "\x83",
+ 0x000000c3 => "\x84",
+ 0x000000c4 => "\x85",
+ 0x000000c5 => "\x86",
+ 0x000000c6 => "\xe1",
+ 0x000000c7 => "\x87",
+ 0x000000c8 => "\x88",
+ 0x000000c9 => "\x89",
+ 0x000000ca => "\x8a",
+ 0x000000cb => "\x8b",
+ 0x000000cc => "\x8c",
+ 0x000000cd => "\x8d",
+ 0x000000ce => "\x8e",
+ 0x000000cf => "\x8f",
+ 0x000000d0 => "\x90",
+ 0x000000d1 => "\x91",
+ 0x000000d2 => "\x92",
+ 0x000000d3 => "\x93",
+ 0x000000d4 => "\x94",
+ 0x000000d5 => "\x95",
+ 0x000000d6 => "\x96",
+ 0x000000d7 => "\x9e",
+ 0x000000d8 => "\xe9",
+ 0x000000d9 => "\x97",
+ 0x000000da => "\x98",
+ 0x000000db => "\x99",
+ 0x000000dc => "\x9a",
+ 0x000000dd => "\x9b",
+ 0x000000de => "\x9c",
+ 0x000000df => "\xfb",
+ 0x000000e0 => "\xd5",
+ 0x000000e1 => "\xd6",
+ 0x000000e2 => "\xd7",
+ 0x000000e3 => "\xd8",
+ 0x000000e4 => "\xd9",
+ 0x000000e5 => "\xda",
+ 0x000000e6 => "\xf1",
+ 0x000000e7 => "\xdb",
+ 0x000000e8 => "\xdc",
+ 0x000000e9 => "\xdd",
+ 0x000000ea => "\xde",
+ 0x000000eb => "\xdf",
+ 0x000000ec => "\xe0",
+ 0x000000ed => "\xe2",
+ 0x000000ee => "\xe4",
+ 0x000000ef => "\xe5",
+ 0x000000f0 => "\xe6",
+ 0x000000f1 => "\xe7",
+ 0x000000f2 => "\xec",
+ 0x000000f3 => "\xed",
+ 0x000000f4 => "\xee",
+ 0x000000f5 => "\xef",
+ 0x000000f6 => "\xf0",
+ 0x000000f7 => "\x9f",
+ 0x000000f8 => "\xf9",
+ 0x000000f9 => "\xf2",
+ 0x000000fa => "\xf3",
+ 0x000000fb => "\xf4",
+ 0x000000fc => "\xf6",
+ 0x000000fd => "\xf7",
+ 0x000000fe => "\xfc",
+ 0x000000ff => "\xfd",
+ 0x00000131 => "\xf5",
+ 0x00000141 => "\xe8",
+ 0x00000142 => "\xf8",
+ 0x00000152 => "\xea",
+ 0x00000153 => "\xfa",
+ 0x00000192 => "\xa6",
+ 0x000002c6 => "\xc3",
+ 0x000002c7 => "\xcf",
+ 0x000002cb => "\xc1",
+ 0x000002d8 => "\xc6",
+ 0x000002d9 => "\xc7",
+ 0x000002da => "\xca",
+ 0x000002db => "\xce",
+ 0x000002dc => "\xc4",
+ 0x000002dd => "\xcd",
+ 0x00002013 => "\xb1",
+ 0x00002014 => "\xd0",
+ 0x00002019 => "\xa9",
+ 0x0000201a => "\xb8",
+ 0x0000201c => "\xaa",
+ 0x0000201d => "\xba",
+ 0x0000201e => "\xb9",
+ 0x00002020 => "\xb2",
+ 0x00002021 => "\xb3",
+ 0x00002022 => "\xb7",
+ 0x00002026 => "\xbc",
+ 0x00002030 => "\xbd",
+ 0x00002039 => "\xac",
+ 0x0000203a => "\xad",
+ 0x00002044 => "\xa4",
+ 0x0000fb01 => "\xae",
+ 0x0000fb02 => "\xaf",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::NEXTSTEP - Conversion routines for NEXTSTEP
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for NEXTSTEP.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+
+ This charmap has been generated automatically from GNU libiconv
+ conversions.
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000000A0 | NO-BREAK SPACE
+ 81 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ 82 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ 83 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ 84 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ 85 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ 86 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ 87 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ 88 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ 89 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ 8A | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ 8B | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ 8C | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ 8D | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ 8E | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ 8F | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ 90 | 000000D0 | LATIN CAPITAL LETTER ETH
+ 91 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ 92 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ 93 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ 94 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ 95 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ 96 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ 97 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ 98 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ 99 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ 9B | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ 9C | 000000DE | LATIN CAPITAL LETTER THORN
+ 9D | 000000B5 | MICRO SIGN
+ 9E | 000000D7 | MULTIPLICATION SIGN
+ 9F | 000000F7 | DIVISION SIGN
+ A0 | 000000A9 | COPYRIGHT SIGN
+ A1 | 000000A1 | INVERTED EXCLAMATION MARK
+ A2 | 000000A2 | CENT SIGN
+ A3 | 000000A3 | POUND SIGN
+ A4 | 00002044 | FRACTION SLASH
+ A5 | 000000A5 | YEN SIGN
+ A6 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A4 | CURRENCY SIGN
+ A9 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ AA | 0000201C | LEFT DOUBLE QUOTATION MARK
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ AD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ AE | 0000FB01 | LATIN SMALL LIGATURE FI
+ AF | 0000FB02 | LATIN SMALL LIGATURE FL
+ B0 | 000000AE | REGISTERED SIGN
+ B1 | 00002013 | EN DASH
+ B2 | 00002020 | DAGGER
+ B3 | 00002021 | DOUBLE DAGGER
+ B4 | 000000B7 | MIDDLE DOT
+ B5 | 000000A6 | BROKEN BAR
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 00002022 | BULLET
+ B8 | 0000201A | SINGLE LOW-9 QUOTATION MARK
+ B9 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
+ BA | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 00002026 | HORIZONTAL ELLIPSIS
+ BD | 00002030 | PER MILLE SIGN
+ BE | 000000AC | NOT SIGN
+ BF | 000000BF | INVERTED QUESTION MARK
+ C0 | 000000B9 | SUPERSCRIPT ONE
+ C1 | 000002CB | MODIFIER LETTER GRAVE ACCENT
+ C2 | 000000B4 | ACUTE ACCENT
+ C3 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
+ C4 | 000002DC | SMALL TILDE
+ C5 | 000000AF | MACRON
+ C6 | 000002D8 | BREVE
+ C7 | 000002D9 | DOT ABOVE
+ C8 | 000000A8 | DIAERESIS
+ C9 | 000000B2 | SUPERSCRIPT TWO
+ CA | 000002DA | RING ABOVE
+ CB | 000000B8 | CEDILLA
+ CC | 000000B3 | SUPERSCRIPT THREE
+ CD | 000002DD | DOUBLE ACUTE ACCENT
+ CE | 000002DB | OGONEK
+ CF | 000002C7 | CARON
+ D0 | 00002014 | EM DASH
+ D1 | 000000B1 | PLUS-MINUS SIGN
+ D2 | 000000BC | VULGAR FRACTION ONE QUARTER
+ D3 | 000000BD | VULGAR FRACTION ONE HALF
+ D4 | 000000BE | VULGAR FRACTION THREE QUARTERS
+ D5 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ D6 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ D7 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ D8 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ D9 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ DA | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ DB | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ DC | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ DD | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ DE | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ DF | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ E0 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ E1 | 000000C6 | LATIN CAPITAL LETTER AE
+ E2 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ E3 | 000000AA | FEMININE ORDINAL INDICATOR
+ E4 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ E5 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ E6 | 000000F0 | LATIN SMALL LETTER ETH
+ E7 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ E8 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
+ E9 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ EA | 00000152 | LATIN CAPITAL LIGATURE OE
+ EB | 000000BA | MASCULINE ORDINAL INDICATOR
+ EC | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ ED | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ EE | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ EF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F0 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F1 | 000000E6 | LATIN SMALL LETTER AE
+ F2 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ F3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ F4 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ F5 | 00000131 | LATIN SMALL LETTER DOTLESS I
+ F6 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ F7 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ F8 | 00000142 | LATIN SMALL LETTER L WITH STROKE
+ F9 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ FA | 00000153 | LATIN SMALL LIGATURE OE
+ FB | 000000DF | LATIN SMALL LETTER SHARP S
+ FC | 000000FE | LATIN SMALL LETTER THORN
+ FD | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/SAMI_WS2.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/SAMI_WS2.pm
new file mode 100644
index 0000000..650bb2e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/SAMI_WS2.pm
@@ -0,0 +1,1137 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: SAMI_WS2.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for WIN-SAMI-2.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::SAMI_WS2;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x20ac,
+ 0xfffd,
+ 0x010c,
+ 0x0192,
+ 0x010d,
+ 0x01b7,
+ 0x0292,
+ 0x01ee,
+ 0x01ef,
+ 0x0110,
+ 0x0160,
+ 0x2039,
+ 0x0152,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x2018,
+ 0x2019,
+ 0x201c,
+ 0x201d,
+ 0x2022,
+ 0x2013,
+ 0x2014,
+ 0x0111,
+ 0x01e6,
+ 0x0161,
+ 0x203a,
+ 0x0153,
+ 0xfffd,
+ 0xfffd,
+ 0x0178,
+ 0x00a0,
+ 0x01e7,
+ 0x01e4,
+ 0x00a3,
+ 0x00a4,
+ 0x01e5,
+ 0x00a6,
+ 0x00a7,
+ 0x00a8,
+ 0x00a9,
+ 0x021e,
+ 0x00ab,
+ 0x00ac,
+ 0x00ad,
+ 0x00ae,
+ 0x021f,
+ 0x00b0,
+ 0x00b1,
+ 0x01e8,
+ 0x01e9,
+ 0x00b4,
+ 0x00b5,
+ 0x00b6,
+ 0x00b7,
+ 0x014a,
+ 0x014b,
+ 0x0166,
+ 0x00bb,
+ 0x0167,
+ 0x00bd,
+ 0x017d,
+ 0x017e,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x00c4,
+ 0x00c5,
+ 0x00c6,
+ 0x00c7,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x00cb,
+ 0x00cc,
+ 0x00cd,
+ 0x00ce,
+ 0x00cf,
+ 0x00d0,
+ 0x00d1,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x00d5,
+ 0x00d6,
+ 0x00d7,
+ 0x00d8,
+ 0x00d9,
+ 0x00da,
+ 0x00db,
+ 0x00dc,
+ 0x00dd,
+ 0x00de,
+ 0x00df,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x00e4,
+ 0x00e5,
+ 0x00e6,
+ 0x00e7,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x00eb,
+ 0x00ec,
+ 0x00ed,
+ 0x00ee,
+ 0x00ef,
+ 0x00f0,
+ 0x00f1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x00f6,
+ 0x00f7,
+ 0x00f8,
+ 0x00f9,
+ 0x00fa,
+ 0x00fb,
+ 0x00fc,
+ 0x00fd,
+ 0x00fe,
+ 0x00ff,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe2\x82\xac",
+ "\xef\xbf\xbd",
+ "\xc4\x8c",
+ "\xc6\x92",
+ "\xc4\x8d",
+ "\xc6\xb7",
+ "\xca\x92",
+ "\xc7\xae",
+ "\xc7\xaf",
+ "\xc4\x90",
+ "\xc5\xa0",
+ "\xe2\x80\xb9",
+ "\xc5\x92",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe2\x80\x98",
+ "\xe2\x80\x99",
+ "\xe2\x80\x9c",
+ "\xe2\x80\x9d",
+ "\xe2\x80\xa2",
+ "\xe2\x80\x93",
+ "\xe2\x80\x94",
+ "\xc4\x91",
+ "\xc7\xa6",
+ "\xc5\xa1",
+ "\xe2\x80\xba",
+ "\xc5\x93",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xc5\xb8",
+ "\xc2\xa0",
+ "\xc7\xa7",
+ "\xc7\xa4",
+ "\xc2\xa3",
+ "\xc2\xa4",
+ "\xc7\xa5",
+ "\xc2\xa6",
+ "\xc2\xa7",
+ "\xc2\xa8",
+ "\xc2\xa9",
+ "\xc8\x9e",
+ "\xc2\xab",
+ "\xc2\xac",
+ "\xc2\xad",
+ "\xc2\xae",
+ "\xc8\x9f",
+ "\xc2\xb0",
+ "\xc2\xb1",
+ "\xc7\xa8",
+ "\xc7\xa9",
+ "\xc2\xb4",
+ "\xc2\xb5",
+ "\xc2\xb6",
+ "\xc2\xb7",
+ "\xc5\x8a",
+ "\xc5\x8b",
+ "\xc5\xa6",
+ "\xc2\xbb",
+ "\xc5\xa7",
+ "\xc2\xbd",
+ "\xc5\xbd",
+ "\xc5\xbe",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xc3\x84",
+ "\xc3\x85",
+ "\xc3\x86",
+ "\xc3\x87",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xc3\x8b",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc3\x8e",
+ "\xc3\x8f",
+ "\xc3\x90",
+ "\xc3\x91",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xc3\x95",
+ "\xc3\x96",
+ "\xc3\x97",
+ "\xc3\x98",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xc3\x9b",
+ "\xc3\x9c",
+ "\xc3\x9d",
+ "\xc3\x9e",
+ "\xc3\x9f",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xc3\xa4",
+ "\xc3\xa5",
+ "\xc3\xa6",
+ "\xc3\xa7",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xc3\xab",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc3\xae",
+ "\xc3\xaf",
+ "\xc3\xb0",
+ "\xc3\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xc3\xb6",
+ "\xc3\xb7",
+ "\xc3\xb8",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc3\xbb",
+ "\xc3\xbc",
+ "\xc3\xbd",
+ "\xc3\xbe",
+ "\xc3\xbf",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000a0 => "\xa0",
+ 0x000000a3 => "\xa3",
+ 0x000000a4 => "\xa4",
+ 0x000000a6 => "\xa6",
+ 0x000000a7 => "\xa7",
+ 0x000000a8 => "\xa8",
+ 0x000000a9 => "\xa9",
+ 0x000000ab => "\xab",
+ 0x000000ac => "\xac",
+ 0x000000ad => "\xad",
+ 0x000000ae => "\xae",
+ 0x000000b0 => "\xb0",
+ 0x000000b1 => "\xb1",
+ 0x000000b4 => "\xb4",
+ 0x000000b5 => "\xb5",
+ 0x000000b6 => "\xb6",
+ 0x000000b7 => "\xb7",
+ 0x000000bb => "\xbb",
+ 0x000000bd => "\xbd",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c4 => "\xc4",
+ 0x000000c5 => "\xc5",
+ 0x000000c6 => "\xc6",
+ 0x000000c7 => "\xc7",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cb => "\xcb",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000ce => "\xce",
+ 0x000000cf => "\xcf",
+ 0x000000d0 => "\xd0",
+ 0x000000d1 => "\xd1",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xd5",
+ 0x000000d6 => "\xd6",
+ 0x000000d7 => "\xd7",
+ 0x000000d8 => "\xd8",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000db => "\xdb",
+ 0x000000dc => "\xdc",
+ 0x000000dd => "\xdd",
+ 0x000000de => "\xde",
+ 0x000000df => "\xdf",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e4 => "\xe4",
+ 0x000000e5 => "\xe5",
+ 0x000000e6 => "\xe6",
+ 0x000000e7 => "\xe7",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000eb => "\xeb",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000ee => "\xee",
+ 0x000000ef => "\xef",
+ 0x000000f0 => "\xf0",
+ 0x000000f1 => "\xf1",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f6 => "\xf6",
+ 0x000000f7 => "\xf7",
+ 0x000000f8 => "\xf8",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fb => "\xfb",
+ 0x000000fc => "\xfc",
+ 0x000000fd => "\xfd",
+ 0x000000fe => "\xfe",
+ 0x000000ff => "\xff",
+ 0x0000010c => "\x82",
+ 0x0000010d => "\x84",
+ 0x00000110 => "\x89",
+ 0x00000111 => "\x98",
+ 0x0000014a => "\xb8",
+ 0x0000014b => "\xb9",
+ 0x00000152 => "\x8c",
+ 0x00000153 => "\x9c",
+ 0x00000160 => "\x8a",
+ 0x00000161 => "\x9a",
+ 0x00000166 => "\xba",
+ 0x00000167 => "\xbc",
+ 0x00000178 => "\x9f",
+ 0x0000017d => "\xbe",
+ 0x0000017e => "\xbf",
+ 0x00000192 => "\x83",
+ 0x000001b7 => "\x85",
+ 0x000001e4 => "\xa2",
+ 0x000001e5 => "\xa5",
+ 0x000001e6 => "\x99",
+ 0x000001e7 => "\xa1",
+ 0x000001e8 => "\xb2",
+ 0x000001e9 => "\xb3",
+ 0x000001ee => "\x87",
+ 0x000001ef => "\x88",
+ 0x0000021e => "\xaa",
+ 0x0000021f => "\xaf",
+ 0x00000292 => "\x86",
+ 0x00002013 => "\x96",
+ 0x00002014 => "\x97",
+ 0x00002018 => "\x91",
+ 0x00002019 => "\x92",
+ 0x0000201c => "\x93",
+ 0x0000201d => "\x94",
+ 0x00002022 => "\x95",
+ 0x00002039 => "\x8b",
+ 0x0000203a => "\x9b",
+ 0x000020ac => "\x80",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::SAMI_WS2 - Conversion routines for SAMI_WS2
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for WIN-SAMI-2.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ source: E<lt>URL:http://www2.isl.uit.no/trond/ws2t.htmlE<gt> and
+ E<lt>URL:http://www.unicode.org/unicode/alloc/Pipeline.htmlE<gt>
+ author: Petter Reinholdtsen E<lt>pere@td.org.uit.noE<gt>
+ date: 1999-01-20
+ based on info from Trond Trosterud E<lt>Trond.Trosterud@hum.uit.noE<gt>.
+ This charmap is based on MS CP1252, not ISO 8859/1.
+ alias WS2
+ alias WINDOWS-SAMI2
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 000020AC | EURO SIGN
+ 82 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
+ 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
+ 84 | 0000010D | LATIN SMALL LETTER C WITH CARON
+ 85 | 000001B7 | LATIN CAPITAL LETTER EZH
+ 86 | 00000292 | LATIN SMALL LETTER EZH
+ 87 | 000001EE | LATIN CAPITAL LETTER EZH WITH CARON
+ 88 | 000001EF | LATIN SMALL LETTER EZH WITH CARON
+ 89 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
+ 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ 8C | 00000152 | LATIN CAPITAL LIGATURE OE
+ 91 | 00002018 | LEFT SINGLE QUOTATION MARK
+ 92 | 00002019 | RIGHT SINGLE QUOTATION MARK
+ 93 | 0000201C | LEFT DOUBLE QUOTATION MARK
+ 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK
+ 95 | 00002022 | BULLET
+ 96 | 00002013 | EN DASH
+ 97 | 00002014 | EM DASH
+ 98 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ 99 | 000001E6 | LATIN CAPITAL LETTER G WITH CARON
+ 9A | 00000161 | LATIN SMALL LETTER S WITH CARON
+ 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ 9C | 00000153 | LATIN SMALL LIGATURE OE
+ 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
+ A0 | 000000A0 | NO-BREAK SPACE
+ A1 | 000001E7 | LATIN SMALL LETTER G WITH CARON
+ A2 | 000001E4 | LATIN CAPITAL LETTER G WITH STROKE
+ A3 | 000000A3 | POUND SIGN
+ A4 | 000000A4 | CURRENCY SIGN
+ A5 | 000001E5 | LATIN SMALL LETTER G WITH STROKE
+ A6 | 000000A6 | BROKEN BAR
+ A7 | 000000A7 | SECTION SIGN
+ A8 | 000000A8 | DIAERESIS
+ A9 | 000000A9 | COPYRIGHT SIGN
+ AA | 0000021E | LATIN CAPITAL LETTER H WITH CARON
+ AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ AC | 000000AC | NOT SIGN
+ AD | 000000AD | SOFT HYPHEN
+ AE | 000000AE | REGISTERED SIGN
+ AF | 0000021F | LATIN SMALL LETTER H WITH CARON
+ B0 | 000000B0 | DEGREE SIGN
+ B1 | 000000B1 | PLUS-MINUS SIGN
+ B2 | 000001E8 | LATIN CAPITAL LETTER K WITH CARON
+ B3 | 000001E9 | LATIN SMALL LETTER K WITH CARON
+ B4 | 000000B4 | ACUTE ACCENT
+ B5 | 000000B5 | MICRO SIGN
+ B6 | 000000B6 | PILCROW SIGN
+ B7 | 000000B7 | MIDDLE DOT
+ B8 | 0000014A | LATIN CAPITAL LETTER ENG (Sami)
+ B9 | 0000014B | LATIN SMALL LETTER ENG (Sami)
+ BA | 00000166 | LATIN CAPITAL LETTER T WITH STROKE
+ BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ BC | 00000167 | LATIN SMALL LETTER T WITH STROKE
+ BD | 000000BD | VULGAR FRACTION ONE HALF
+ BE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
+ BF | 0000017E | LATIN SMALL LETTER Z WITH CARON
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
+ C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
+ C6 | 000000C6 | LATIN CAPITAL LETTER AE
+ C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+ CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
+ D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
+ D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
+ D7 | 000000D7 | MULTIPLICATION SIGN
+ D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
+ DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
+ E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
+ E6 | 000000E6 | LATIN SMALL LETTER AE
+ E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
+ EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
+ F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic)
+ F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
+ F7 | 000000F7 | DIVISION SIGN
+ F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
+ FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic)
+ FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/TIS_620.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/TIS_620.pm
new file mode 100644
index 0000000..2ec2914
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/TIS_620.pm
@@ -0,0 +1,1068 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: TIS_620.pm,v 1.1 2011-10-12 23:51:49 pertusus Exp $
+
+# Conversion routines for TIS-620.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::TIS_620;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x0002,
+ 0x0003,
+ 0x0004,
+ 0x0005,
+ 0x0006,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x0014,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x0019,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x001e,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0e01,
+ 0x0e02,
+ 0x0e03,
+ 0x0e04,
+ 0x0e05,
+ 0x0e06,
+ 0x0e07,
+ 0x0e08,
+ 0x0e09,
+ 0x0e0a,
+ 0x0e0b,
+ 0x0e0c,
+ 0x0e0d,
+ 0x0e0e,
+ 0x0e0f,
+ 0x0e10,
+ 0x0e11,
+ 0x0e12,
+ 0x0e13,
+ 0x0e14,
+ 0x0e15,
+ 0x0e16,
+ 0x0e17,
+ 0x0e18,
+ 0x0e19,
+ 0x0e1a,
+ 0x0e1b,
+ 0x0e1c,
+ 0x0e1d,
+ 0x0e1e,
+ 0x0e1f,
+ 0x0e20,
+ 0x0e21,
+ 0x0e22,
+ 0x0e23,
+ 0x0e24,
+ 0x0e25,
+ 0x0e26,
+ 0x0e27,
+ 0x0e28,
+ 0x0e29,
+ 0x0e2a,
+ 0x0e2b,
+ 0x0e2c,
+ 0x0e2d,
+ 0x0e2e,
+ 0x0e2f,
+ 0x0e30,
+ 0x0e31,
+ 0x0e32,
+ 0x0e33,
+ 0x0e34,
+ 0x0e35,
+ 0x0e36,
+ 0x0e37,
+ 0x0e38,
+ 0x0e39,
+ 0x0e3a,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0x0e3f,
+ 0x0e40,
+ 0x0e41,
+ 0x0e42,
+ 0x0e43,
+ 0x0e44,
+ 0x0e45,
+ 0x0e46,
+ 0x0e47,
+ 0x0e48,
+ 0x0e49,
+ 0x0e4a,
+ 0x0e4b,
+ 0x0e4c,
+ 0x0e4d,
+ 0x0e4e,
+ 0x0e4f,
+ 0x0e50,
+ 0x0e51,
+ 0x0e52,
+ 0x0e53,
+ 0x0e54,
+ 0x0e55,
+ 0x0e56,
+ 0x0e57,
+ 0x0e58,
+ 0x0e59,
+ 0x0e5a,
+ 0x0e5b,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+ 0xfffd,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\x02",
+ "\x03",
+ "\x04",
+ "\x05",
+ "\x06",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\x14",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\x19",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\x1e",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe0\xb8\x81",
+ "\xe0\xb8\x82",
+ "\xe0\xb8\x83",
+ "\xe0\xb8\x84",
+ "\xe0\xb8\x85",
+ "\xe0\xb8\x86",
+ "\xe0\xb8\x87",
+ "\xe0\xb8\x88",
+ "\xe0\xb8\x89",
+ "\xe0\xb8\x8a",
+ "\xe0\xb8\x8b",
+ "\xe0\xb8\x8c",
+ "\xe0\xb8\x8d",
+ "\xe0\xb8\x8e",
+ "\xe0\xb8\x8f",
+ "\xe0\xb8\x90",
+ "\xe0\xb8\x91",
+ "\xe0\xb8\x92",
+ "\xe0\xb8\x93",
+ "\xe0\xb8\x94",
+ "\xe0\xb8\x95",
+ "\xe0\xb8\x96",
+ "\xe0\xb8\x97",
+ "\xe0\xb8\x98",
+ "\xe0\xb8\x99",
+ "\xe0\xb8\x9a",
+ "\xe0\xb8\x9b",
+ "\xe0\xb8\x9c",
+ "\xe0\xb8\x9d",
+ "\xe0\xb8\x9e",
+ "\xe0\xb8\x9f",
+ "\xe0\xb8\xa0",
+ "\xe0\xb8\xa1",
+ "\xe0\xb8\xa2",
+ "\xe0\xb8\xa3",
+ "\xe0\xb8\xa4",
+ "\xe0\xb8\xa5",
+ "\xe0\xb8\xa6",
+ "\xe0\xb8\xa7",
+ "\xe0\xb8\xa8",
+ "\xe0\xb8\xa9",
+ "\xe0\xb8\xaa",
+ "\xe0\xb8\xab",
+ "\xe0\xb8\xac",
+ "\xe0\xb8\xad",
+ "\xe0\xb8\xae",
+ "\xe0\xb8\xaf",
+ "\xe0\xb8\xb0",
+ "\xe0\xb8\xb1",
+ "\xe0\xb8\xb2",
+ "\xe0\xb8\xb3",
+ "\xe0\xb8\xb4",
+ "\xe0\xb8\xb5",
+ "\xe0\xb8\xb6",
+ "\xe0\xb8\xb7",
+ "\xe0\xb8\xb8",
+ "\xe0\xb8\xb9",
+ "\xe0\xb8\xba",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xe0\xb8\xbf",
+ "\xe0\xb9\x80",
+ "\xe0\xb9\x81",
+ "\xe0\xb9\x82",
+ "\xe0\xb9\x83",
+ "\xe0\xb9\x84",
+ "\xe0\xb9\x85",
+ "\xe0\xb9\x86",
+ "\xe0\xb9\x87",
+ "\xe0\xb9\x88",
+ "\xe0\xb9\x89",
+ "\xe0\xb9\x8a",
+ "\xe0\xb9\x8b",
+ "\xe0\xb9\x8c",
+ "\xe0\xb9\x8d",
+ "\xe0\xb9\x8e",
+ "\xe0\xb9\x8f",
+ "\xe0\xb9\x90",
+ "\xe0\xb9\x91",
+ "\xe0\xb9\x92",
+ "\xe0\xb9\x93",
+ "\xe0\xb9\x94",
+ "\xe0\xb9\x95",
+ "\xe0\xb9\x96",
+ "\xe0\xb9\x97",
+ "\xe0\xb9\x98",
+ "\xe0\xb9\x99",
+ "\xe0\xb9\x9a",
+ "\xe0\xb9\x9b",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+ "\xef\xbf\xbd",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000002 => "\x02",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000005 => "\x05",
+ 0x00000006 => "\x06",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000014 => "\x14",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x00000019 => "\x19",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001e => "\x1e",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x00000e01 => "\xa1",
+ 0x00000e02 => "\xa2",
+ 0x00000e03 => "\xa3",
+ 0x00000e04 => "\xa4",
+ 0x00000e05 => "\xa5",
+ 0x00000e06 => "\xa6",
+ 0x00000e07 => "\xa7",
+ 0x00000e08 => "\xa8",
+ 0x00000e09 => "\xa9",
+ 0x00000e0a => "\xaa",
+ 0x00000e0b => "\xab",
+ 0x00000e0c => "\xac",
+ 0x00000e0d => "\xad",
+ 0x00000e0e => "\xae",
+ 0x00000e0f => "\xaf",
+ 0x00000e10 => "\xb0",
+ 0x00000e11 => "\xb1",
+ 0x00000e12 => "\xb2",
+ 0x00000e13 => "\xb3",
+ 0x00000e14 => "\xb4",
+ 0x00000e15 => "\xb5",
+ 0x00000e16 => "\xb6",
+ 0x00000e17 => "\xb7",
+ 0x00000e18 => "\xb8",
+ 0x00000e19 => "\xb9",
+ 0x00000e1a => "\xba",
+ 0x00000e1b => "\xbb",
+ 0x00000e1c => "\xbc",
+ 0x00000e1d => "\xbd",
+ 0x00000e1e => "\xbe",
+ 0x00000e1f => "\xbf",
+ 0x00000e20 => "\xc0",
+ 0x00000e21 => "\xc1",
+ 0x00000e22 => "\xc2",
+ 0x00000e23 => "\xc3",
+ 0x00000e24 => "\xc4",
+ 0x00000e25 => "\xc5",
+ 0x00000e26 => "\xc6",
+ 0x00000e27 => "\xc7",
+ 0x00000e28 => "\xc8",
+ 0x00000e29 => "\xc9",
+ 0x00000e2a => "\xca",
+ 0x00000e2b => "\xcb",
+ 0x00000e2c => "\xcc",
+ 0x00000e2d => "\xcd",
+ 0x00000e2e => "\xce",
+ 0x00000e2f => "\xcf",
+ 0x00000e30 => "\xd0",
+ 0x00000e31 => "\xd1",
+ 0x00000e32 => "\xd2",
+ 0x00000e33 => "\xd3",
+ 0x00000e34 => "\xd4",
+ 0x00000e35 => "\xd5",
+ 0x00000e36 => "\xd6",
+ 0x00000e37 => "\xd7",
+ 0x00000e38 => "\xd8",
+ 0x00000e39 => "\xd9",
+ 0x00000e3a => "\xda",
+ 0x00000e3f => "\xdf",
+ 0x00000e40 => "\xe0",
+ 0x00000e41 => "\xe1",
+ 0x00000e42 => "\xe2",
+ 0x00000e43 => "\xe3",
+ 0x00000e44 => "\xe4",
+ 0x00000e45 => "\xe5",
+ 0x00000e46 => "\xe6",
+ 0x00000e47 => "\xe7",
+ 0x00000e48 => "\xe8",
+ 0x00000e49 => "\xe9",
+ 0x00000e4a => "\xea",
+ 0x00000e4b => "\xeb",
+ 0x00000e4c => "\xec",
+ 0x00000e4d => "\xed",
+ 0x00000e4e => "\xee",
+ 0x00000e4f => "\xef",
+ 0x00000e50 => "\xf0",
+ 0x00000e51 => "\xf1",
+ 0x00000e52 => "\xf2",
+ 0x00000e53 => "\xf3",
+ 0x00000e54 => "\xf4",
+ 0x00000e55 => "\xf5",
+ 0x00000e56 => "\xf6",
+ 0x00000e57 => "\xf7",
+ 0x00000e58 => "\xf8",
+ 0x00000e59 => "\xf9",
+ 0x00000e5a => "\xfa",
+ 0x00000e5b => "\xfb",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::TIS_620 - Conversion routines for TIS-620
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for TIS-620.
+
+=head1 COMMENTS
+
+The following comments have been extracted from the original charmap:
+
+ version: 1.0
+ sources: Thai Industrial Standards Institute, ECMA registry, IANA
+ alias TIS620
+ alias TIS620-0
+ alias TIS620.2529-1
+ alias TIS620.2533-0
+ alias ISO-IR-166
+
+Please note that aliases listed above are not necessarily valid!
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ A1 | 00000E01 | THAI CHARACTER KO KAI
+ A2 | 00000E02 | THAI CHARACTER KHO KHAI
+ A3 | 00000E03 | THAI CHARACTER KHO KHUAT
+ A4 | 00000E04 | THAI CHARACTER KHO KHWAI
+ A5 | 00000E05 | THAI CHARACTER KHO KHON
+ A6 | 00000E06 | THAI CHARACTER KHO RAKHANG
+ A7 | 00000E07 | THAI CHARACTER NGO NGU
+ A8 | 00000E08 | THAI CHARACTER CHO CHAN
+ A9 | 00000E09 | THAI CHARACTER CHO CHING
+ AA | 00000E0A | THAI CHARACTER CHO CHANG
+ AB | 00000E0B | THAI CHARACTER SO SO
+ AC | 00000E0C | THAI CHARACTER CHO CHOE
+ AD | 00000E0D | THAI CHARACTER YO YING
+ AE | 00000E0E | THAI CHARACTER DO CHADA
+ AF | 00000E0F | THAI CHARACTER TO PATAK
+ B0 | 00000E10 | THAI CHARACTER THO THAN
+ B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO
+ B2 | 00000E12 | THAI CHARACTER THO PHUTHAO
+ B3 | 00000E13 | THAI CHARACTER NO NEN
+ B4 | 00000E14 | THAI CHARACTER DO DEK
+ B5 | 00000E15 | THAI CHARACTER TO TAO
+ B6 | 00000E16 | THAI CHARACTER THO THUNG
+ B7 | 00000E17 | THAI CHARACTER THO THAHAN
+ B8 | 00000E18 | THAI CHARACTER THO THONG
+ B9 | 00000E19 | THAI CHARACTER NO NU
+ BA | 00000E1A | THAI CHARACTER BO BAIMAI
+ BB | 00000E1B | THAI CHARACTER PO PLA
+ BC | 00000E1C | THAI CHARACTER PHO PHUNG
+ BD | 00000E1D | THAI CHARACTER FO FA
+ BE | 00000E1E | THAI CHARACTER PHO PHAN
+ BF | 00000E1F | THAI CHARACTER FO FAN
+ C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO
+ C1 | 00000E21 | THAI CHARACTER MO MA
+ C2 | 00000E22 | THAI CHARACTER YO YAK
+ C3 | 00000E23 | THAI CHARACTER RO RUA
+ C4 | 00000E24 | THAI CHARACTER RU
+ C5 | 00000E25 | THAI CHARACTER LO LING
+ C6 | 00000E26 | THAI CHARACTER LU
+ C7 | 00000E27 | THAI CHARACTER WO WAEN
+ C8 | 00000E28 | THAI CHARACTER SO SALA
+ C9 | 00000E29 | THAI CHARACTER SO RUSI
+ CA | 00000E2A | THAI CHARACTER SO SUA
+ CB | 00000E2B | THAI CHARACTER HO HIP
+ CC | 00000E2C | THAI CHARACTER LO CHULA
+ CD | 00000E2D | THAI CHARACTER O ANG
+ CE | 00000E2E | THAI CHARACTER HO NOKHUK
+ CF | 00000E2F | THAI CHARACTER PAIYANNOI
+ D0 | 00000E30 | THAI CHARACTER SARA A
+ D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT
+ D2 | 00000E32 | THAI CHARACTER SARA AA
+ D3 | 00000E33 | THAI CHARACTER SARA AM
+ D4 | 00000E34 | THAI CHARACTER SARA I
+ D5 | 00000E35 | THAI CHARACTER SARA II
+ D6 | 00000E36 | THAI CHARACTER SARA UE
+ D7 | 00000E37 | THAI CHARACTER SARA UEE
+ D8 | 00000E38 | THAI CHARACTER SARA U
+ D9 | 00000E39 | THAI CHARACTER SARA UU
+ DA | 00000E3A | THAI CHARACTER PHINTHU
+ DF | 00000E3F | THAI CHARACTER SYMBOL BAHT
+ E0 | 00000E40 | THAI CHARACTER SARA E
+ E1 | 00000E41 | THAI CHARACTER SARA AE
+ E2 | 00000E42 | THAI CHARACTER SARA O
+ E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN
+ E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI
+ E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO
+ E6 | 00000E46 | THAI CHARACTER MAIYAMOK
+ E7 | 00000E47 | THAI CHARACTER MAITAIKHU
+ E8 | 00000E48 | THAI CHARACTER MAI EK
+ E9 | 00000E49 | THAI CHARACTER MAI THO
+ EA | 00000E4A | THAI CHARACTER MAI TRI
+ EB | 00000E4B | THAI CHARACTER MAI CHATTAWA
+ EC | 00000E4C | THAI CHARACTER THANTHAKHAT
+ ED | 00000E4D | THAI CHARACTER NIKHAHIT
+ EE | 00000E4E | THAI CHARACTER YAMAKKAN
+ EF | 00000E4F | THAI CHARACTER FONGMAN
+ F0 | 00000E50 | THAI DIGIT ZERO
+ F1 | 00000E51 | THAI DIGIT ONE
+ F2 | 00000E52 | THAI DIGIT TWO
+ F3 | 00000E53 | THAI DIGIT THREE
+ F4 | 00000E54 | THAI DIGIT FOUR
+ F5 | 00000E55 | THAI DIGIT FIVE
+ F6 | 00000E56 | THAI DIGIT SIX
+ F7 | 00000E57 | THAI DIGIT SEVEN
+ F8 | 00000E58 | THAI DIGIT EIGHT
+ F9 | 00000E59 | THAI DIGIT NINE
+ FA | 00000E5A | THAI CHARACTER ANGKHANKHU
+ FB | 00000E5B | THAI CHARACTER KHOMUT
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/US_ASCII.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/US_ASCII.pm
new file mode 100644
index 0000000..8cdd916
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/US_ASCII.pm
@@ -0,0 +1,227 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+
+# Conversion routines for US-ASCII.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::US_ASCII;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ # FIXME: Maybe the lookup is cheaper than the call to chr().
+ $_[1] = join '',
+ map $_ > 0x7f ? '?' : chr $_,
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8') {
+ # FIXME: Maybe the lookup is cheaper than the call to chr().
+ $_[1] = join '',
+ map $_ > 0x7f ? "\xef\xbf\xbd" : chr $_, unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map { $_ > 0x7f ? 0xfffd : $_ } unpack 'C*', $_[1] ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::US_ASCII - Conversion routines for US-ASCII
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module contains the conversion tables and routines for US-ASCII.
+
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00000002 | START OF TEXT (STX)
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00000005 | ENQUIRY (ENQ)
+ 06 | 00000006 | ACKNOWLEDGE (ACK)
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00000014 | DEVICE CONTROL FOUR (DC4)
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00000019 | END OF MEDIUM (EM)
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 0000001E | RECORD SEPARATOR (IS2)
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/UTF_8.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/UTF_8.pm
new file mode 100644
index 0000000..8e4479f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/UTF_8.pm
@@ -0,0 +1,196 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: UTF_8.pm,v 1.1 2011-10-12 23:51:50 pertusus Exp $
+
+# Conversion routines for UTF-8 (perl < 5.8.0).
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::UTF_8;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ return $_[0]->_fromInternal ($_[1]);
+ } else {
+ return $_[0]->_toInternal ($_[1]);
+ }
+}
+
+# This routine assumes that the internal representation is always sane
+# and contains valid codes only.
+sub _fromInternal
+{
+ $_[1] = join '', map {
+ if ($_ <= 0x7f) {
+ chr $_;
+ } elsif ($_ <= 0x7ff) {
+ pack ("C2",
+ (0xc0 | (($_ >> 6) & 0x1f)),
+ (0x80 | ($_ & 0x3f)));
+ } elsif ($_ <= 0xffff) {
+ pack ("C3",
+ (0xe0 | (($_ >> 12) & 0xf)),
+ (0x80 | (($_ >> 6) & 0x3f)),
+ (0x80 | ($_ & 0x3f)));
+ } elsif ($_ <= 0x1fffff) {
+ pack ("C4",
+ (0xf0 | (($_ >> 18) & 0x7)),
+ (0x80 | (($_ >> 12) & 0x3f)),
+ (0x80 | (($_ >> 6) & 0x3f)),
+ (0x80 | ($_ & 0x3f)));
+ } elsif ($_ <= 0x3ffffff) {
+ pack ("C5",
+ (0xf0 | (($_ >> 24) & 0x3)),
+ (0x80 | (($_ >> 18) & 0x3f)),
+ (0x80 | (($_ >> 12) & 0x3f)),
+ (0x80 | (($_ >> 6) & 0x3f)),
+ (0x80 | ($_ & 0x3f)));
+ } else {
+ pack ("C6",
+ (0xf0 | (($_ >> 30) & 0x3)),
+ (0x80 | (($_ >> 24) & 0x1)),
+ (0x80 | (($_ >> 18) & 0x3f)),
+ (0x80 | (($_ >> 12) & 0x3f)),
+ (0x80 | (($_ >> 6) & 0x3f)),
+ (0x80 | ($_ & 0x3f)));
+ }
+ } @{$_[1]};
+ return 1;
+}
+
+# Decode UTF-8 into integers. We do not bother to care about possibly
+# configured replacement characters here and simply fall back to 0xfffd.
+# Rationale: the internal format is never output directly and the other
+# encoders will handle the replacement character correctly.
+sub _toInternal
+{
+ if ($] >= 5.006) {
+ $_[1] = [ unpack "U*", $_[1] ];
+ return 1;
+ }
+
+ # Sigh, we have to decode ourselves. FIXME: Should be optimized.
+ # The routine is awfully slow.
+ # It also does not necessarily detect illegal multi-byte sequences.
+
+ my @chars = ();
+ my @bytes = unpack "C*", $_[1];
+
+ BYTE: while (@bytes) {
+ my $byte = shift @bytes;
+ if ($byte < 0x80) {
+ push @chars, $byte;
+ } elsif ($byte < 0xc0 || $byte > 0xfd) {
+ push @chars, 0xfffd;
+ } else {
+ my $num_bytes;
+ my $char;
+ if ($byte < 0xe0) {
+ $char = $byte & 0x1f;
+ $num_bytes = 1;
+ } elsif ($byte < 0xf0) {
+ $char = $byte & 0xf;
+ $num_bytes = 2;
+ } elsif ($byte < 0xf8) {
+ $char = $byte & 0x7;
+ $num_bytes = 3;
+ } elsif ($byte < 0xfc) {
+ $char = $byte & 0x3;
+ $num_bytes = 4;
+ } else {
+ $char = $byte & 0x1;
+ $num_bytes = 5;
+ }
+ for (my $i = 0; $i < $num_bytes; ++$i) {
+ my $next = shift @bytes;
+ if (!defined $next || $next < 0x80 || $next > 0xbf) {
+ push @chars, 0xfffd;
+ next BYTE;
+ } else {
+ $char <<= 6;
+ $char |= $next & 0x3f;
+ }
+ }
+ push @chars, $char;
+ }
+ }
+
+ $_[1] = \@chars;
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::UTF_8 - Conversion routines for UTF-8
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This modules contains the conversion tables for UTF-8. It is capable of
+converting from UTF-8 to the internal format of libintl-perl and vice
+versa. It is only suitable for Perl versions E<lt>= 5.8.0. However,
+you do not have to bother about version checking, Locale::Recode(3)
+will do that for you.
+
+
+=head1 CHARACTER TABLE
+
+See http://www.unicode.org/.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/VISCII.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/VISCII.pm
new file mode 100644
index 0000000..a379c97
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/VISCII.pm
@@ -0,0 +1,1135 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: VISCII.pm,v 1.1 2011-10-12 23:51:50 pertusus Exp $
+
+# Conversion routines for VISCII.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
+# rights reserved.
+# This file is generated, do not edit!
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::VISCII;
+
+use strict;
+
+require Locale::RecodeData;
+use base qw(Locale::RecodeData);
+
+my @to_ucs4 = (
+ 0x0000,
+ 0x0001,
+ 0x1eb2,
+ 0x0003,
+ 0x0004,
+ 0x1eb4,
+ 0x1eaa,
+ 0x0007,
+ 0x0008,
+ 0x0009,
+ 0x000a,
+ 0x000b,
+ 0x000c,
+ 0x000d,
+ 0x000e,
+ 0x000f,
+ 0x0010,
+ 0x0011,
+ 0x0012,
+ 0x0013,
+ 0x1ef6,
+ 0x0015,
+ 0x0016,
+ 0x0017,
+ 0x0018,
+ 0x1ef8,
+ 0x001a,
+ 0x001b,
+ 0x001c,
+ 0x001d,
+ 0x1ef4,
+ 0x001f,
+ 0x0020,
+ 0x0021,
+ 0x0022,
+ 0x0023,
+ 0x0024,
+ 0x0025,
+ 0x0026,
+ 0x0027,
+ 0x0028,
+ 0x0029,
+ 0x002a,
+ 0x002b,
+ 0x002c,
+ 0x002d,
+ 0x002e,
+ 0x002f,
+ 0x0030,
+ 0x0031,
+ 0x0032,
+ 0x0033,
+ 0x0034,
+ 0x0035,
+ 0x0036,
+ 0x0037,
+ 0x0038,
+ 0x0039,
+ 0x003a,
+ 0x003b,
+ 0x003c,
+ 0x003d,
+ 0x003e,
+ 0x003f,
+ 0x0040,
+ 0x0041,
+ 0x0042,
+ 0x0043,
+ 0x0044,
+ 0x0045,
+ 0x0046,
+ 0x0047,
+ 0x0048,
+ 0x0049,
+ 0x004a,
+ 0x004b,
+ 0x004c,
+ 0x004d,
+ 0x004e,
+ 0x004f,
+ 0x0050,
+ 0x0051,
+ 0x0052,
+ 0x0053,
+ 0x0054,
+ 0x0055,
+ 0x0056,
+ 0x0057,
+ 0x0058,
+ 0x0059,
+ 0x005a,
+ 0x005b,
+ 0x005c,
+ 0x005d,
+ 0x005e,
+ 0x005f,
+ 0x0060,
+ 0x0061,
+ 0x0062,
+ 0x0063,
+ 0x0064,
+ 0x0065,
+ 0x0066,
+ 0x0067,
+ 0x0068,
+ 0x0069,
+ 0x006a,
+ 0x006b,
+ 0x006c,
+ 0x006d,
+ 0x006e,
+ 0x006f,
+ 0x0070,
+ 0x0071,
+ 0x0072,
+ 0x0073,
+ 0x0074,
+ 0x0075,
+ 0x0076,
+ 0x0077,
+ 0x0078,
+ 0x0079,
+ 0x007a,
+ 0x007b,
+ 0x007c,
+ 0x007d,
+ 0x007e,
+ 0x007f,
+ 0x1ea0,
+ 0x1eae,
+ 0x1eb0,
+ 0x1eb6,
+ 0x1ea4,
+ 0x1ea6,
+ 0x1ea8,
+ 0x1eac,
+ 0x1ebc,
+ 0x1eb8,
+ 0x1ebe,
+ 0x1ec0,
+ 0x1ec2,
+ 0x1ec4,
+ 0x1ec6,
+ 0x1ed0,
+ 0x1ed2,
+ 0x1ed4,
+ 0x1ed6,
+ 0x1ed8,
+ 0x1ee2,
+ 0x1eda,
+ 0x1edc,
+ 0x1ede,
+ 0x1eca,
+ 0x1ece,
+ 0x1ecc,
+ 0x1ec8,
+ 0x1ee6,
+ 0x0168,
+ 0x1ee4,
+ 0x1ef2,
+ 0x00d5,
+ 0x1eaf,
+ 0x1eb1,
+ 0x1eb7,
+ 0x1ea5,
+ 0x1ea7,
+ 0x1ea9,
+ 0x1ead,
+ 0x1ebd,
+ 0x1eb9,
+ 0x1ebf,
+ 0x1ec1,
+ 0x1ec3,
+ 0x1ec5,
+ 0x1ec7,
+ 0x1ed1,
+ 0x1ed3,
+ 0x1ed5,
+ 0x1ed7,
+ 0x1ee0,
+ 0x01a0,
+ 0x1ed9,
+ 0x1edd,
+ 0x1edf,
+ 0x1ecb,
+ 0x1ef0,
+ 0x1ee8,
+ 0x1eea,
+ 0x1eec,
+ 0x01a1,
+ 0x1edb,
+ 0x01af,
+ 0x00c0,
+ 0x00c1,
+ 0x00c2,
+ 0x00c3,
+ 0x1ea2,
+ 0x0102,
+ 0x1eb3,
+ 0x1eb5,
+ 0x00c8,
+ 0x00c9,
+ 0x00ca,
+ 0x1eba,
+ 0x00cc,
+ 0x00cd,
+ 0x0128,
+ 0x1ef3,
+ 0x0110,
+ 0x1ee9,
+ 0x00d2,
+ 0x00d3,
+ 0x00d4,
+ 0x1ea1,
+ 0x1ef7,
+ 0x1eeb,
+ 0x1eed,
+ 0x00d9,
+ 0x00da,
+ 0x1ef9,
+ 0x1ef5,
+ 0x00dd,
+ 0x1ee1,
+ 0x01b0,
+ 0x00e0,
+ 0x00e1,
+ 0x00e2,
+ 0x00e3,
+ 0x1ea3,
+ 0x0103,
+ 0x1eef,
+ 0x1eab,
+ 0x00e8,
+ 0x00e9,
+ 0x00ea,
+ 0x1ebb,
+ 0x00ec,
+ 0x00ed,
+ 0x0129,
+ 0x1ec9,
+ 0x0111,
+ 0x1ef1,
+ 0x00f2,
+ 0x00f3,
+ 0x00f4,
+ 0x00f5,
+ 0x1ecf,
+ 0x1ecd,
+ 0x1ee5,
+ 0x00f9,
+ 0x00fa,
+ 0x0169,
+ 0x1ee7,
+ 0x00fd,
+ 0x1ee3,
+ 0x1eee,
+);
+
+my @to_utf8 = (
+ "\x00",
+ "\x01",
+ "\xe1\xba\xb2",
+ "\x03",
+ "\x04",
+ "\xe1\xba\xb4",
+ "\xe1\xba\xaa",
+ "\x07",
+ "\x08",
+ "\x09",
+ "\x0a",
+ "\x0b",
+ "\x0c",
+ "\x0d",
+ "\x0e",
+ "\x0f",
+ "\x10",
+ "\x11",
+ "\x12",
+ "\x13",
+ "\xe1\xbb\xb6",
+ "\x15",
+ "\x16",
+ "\x17",
+ "\x18",
+ "\xe1\xbb\xb8",
+ "\x1a",
+ "\x1b",
+ "\x1c",
+ "\x1d",
+ "\xe1\xbb\xb4",
+ "\x1f",
+ "\x20",
+ "\x21",
+ "\x22",
+ "\x23",
+ "\x24",
+ "\x25",
+ "\x26",
+ "\x27",
+ "\x28",
+ "\x29",
+ "\x2a",
+ "\x2b",
+ "\x2c",
+ "\x2d",
+ "\x2e",
+ "\x2f",
+ "\x30",
+ "\x31",
+ "\x32",
+ "\x33",
+ "\x34",
+ "\x35",
+ "\x36",
+ "\x37",
+ "\x38",
+ "\x39",
+ "\x3a",
+ "\x3b",
+ "\x3c",
+ "\x3d",
+ "\x3e",
+ "\x3f",
+ "\x40",
+ "\x41",
+ "\x42",
+ "\x43",
+ "\x44",
+ "\x45",
+ "\x46",
+ "\x47",
+ "\x48",
+ "\x49",
+ "\x4a",
+ "\x4b",
+ "\x4c",
+ "\x4d",
+ "\x4e",
+ "\x4f",
+ "\x50",
+ "\x51",
+ "\x52",
+ "\x53",
+ "\x54",
+ "\x55",
+ "\x56",
+ "\x57",
+ "\x58",
+ "\x59",
+ "\x5a",
+ "\x5b",
+ "\x5c",
+ "\x5d",
+ "\x5e",
+ "\x5f",
+ "\x60",
+ "\x61",
+ "\x62",
+ "\x63",
+ "\x64",
+ "\x65",
+ "\x66",
+ "\x67",
+ "\x68",
+ "\x69",
+ "\x6a",
+ "\x6b",
+ "\x6c",
+ "\x6d",
+ "\x6e",
+ "\x6f",
+ "\x70",
+ "\x71",
+ "\x72",
+ "\x73",
+ "\x74",
+ "\x75",
+ "\x76",
+ "\x77",
+ "\x78",
+ "\x79",
+ "\x7a",
+ "\x7b",
+ "\x7c",
+ "\x7d",
+ "\x7e",
+ "\x7f",
+ "\xe1\xba\xa0",
+ "\xe1\xba\xae",
+ "\xe1\xba\xb0",
+ "\xe1\xba\xb6",
+ "\xe1\xba\xa4",
+ "\xe1\xba\xa6",
+ "\xe1\xba\xa8",
+ "\xe1\xba\xac",
+ "\xe1\xba\xbc",
+ "\xe1\xba\xb8",
+ "\xe1\xba\xbe",
+ "\xe1\xbb\x80",
+ "\xe1\xbb\x82",
+ "\xe1\xbb\x84",
+ "\xe1\xbb\x86",
+ "\xe1\xbb\x90",
+ "\xe1\xbb\x92",
+ "\xe1\xbb\x94",
+ "\xe1\xbb\x96",
+ "\xe1\xbb\x98",
+ "\xe1\xbb\xa2",
+ "\xe1\xbb\x9a",
+ "\xe1\xbb\x9c",
+ "\xe1\xbb\x9e",
+ "\xe1\xbb\x8a",
+ "\xe1\xbb\x8e",
+ "\xe1\xbb\x8c",
+ "\xe1\xbb\x88",
+ "\xe1\xbb\xa6",
+ "\xc5\xa8",
+ "\xe1\xbb\xa4",
+ "\xe1\xbb\xb2",
+ "\xc3\x95",
+ "\xe1\xba\xaf",
+ "\xe1\xba\xb1",
+ "\xe1\xba\xb7",
+ "\xe1\xba\xa5",
+ "\xe1\xba\xa7",
+ "\xe1\xba\xa9",
+ "\xe1\xba\xad",
+ "\xe1\xba\xbd",
+ "\xe1\xba\xb9",
+ "\xe1\xba\xbf",
+ "\xe1\xbb\x81",
+ "\xe1\xbb\x83",
+ "\xe1\xbb\x85",
+ "\xe1\xbb\x87",
+ "\xe1\xbb\x91",
+ "\xe1\xbb\x93",
+ "\xe1\xbb\x95",
+ "\xe1\xbb\x97",
+ "\xe1\xbb\xa0",
+ "\xc6\xa0",
+ "\xe1\xbb\x99",
+ "\xe1\xbb\x9d",
+ "\xe1\xbb\x9f",
+ "\xe1\xbb\x8b",
+ "\xe1\xbb\xb0",
+ "\xe1\xbb\xa8",
+ "\xe1\xbb\xaa",
+ "\xe1\xbb\xac",
+ "\xc6\xa1",
+ "\xe1\xbb\x9b",
+ "\xc6\xaf",
+ "\xc3\x80",
+ "\xc3\x81",
+ "\xc3\x82",
+ "\xc3\x83",
+ "\xe1\xba\xa2",
+ "\xc4\x82",
+ "\xe1\xba\xb3",
+ "\xe1\xba\xb5",
+ "\xc3\x88",
+ "\xc3\x89",
+ "\xc3\x8a",
+ "\xe1\xba\xba",
+ "\xc3\x8c",
+ "\xc3\x8d",
+ "\xc4\xa8",
+ "\xe1\xbb\xb3",
+ "\xc4\x90",
+ "\xe1\xbb\xa9",
+ "\xc3\x92",
+ "\xc3\x93",
+ "\xc3\x94",
+ "\xe1\xba\xa1",
+ "\xe1\xbb\xb7",
+ "\xe1\xbb\xab",
+ "\xe1\xbb\xad",
+ "\xc3\x99",
+ "\xc3\x9a",
+ "\xe1\xbb\xb9",
+ "\xe1\xbb\xb5",
+ "\xc3\x9d",
+ "\xe1\xbb\xa1",
+ "\xc6\xb0",
+ "\xc3\xa0",
+ "\xc3\xa1",
+ "\xc3\xa2",
+ "\xc3\xa3",
+ "\xe1\xba\xa3",
+ "\xc4\x83",
+ "\xe1\xbb\xaf",
+ "\xe1\xba\xab",
+ "\xc3\xa8",
+ "\xc3\xa9",
+ "\xc3\xaa",
+ "\xe1\xba\xbb",
+ "\xc3\xac",
+ "\xc3\xad",
+ "\xc4\xa9",
+ "\xe1\xbb\x89",
+ "\xc4\x91",
+ "\xe1\xbb\xb1",
+ "\xc3\xb2",
+ "\xc3\xb3",
+ "\xc3\xb4",
+ "\xc3\xb5",
+ "\xe1\xbb\x8f",
+ "\xe1\xbb\x8d",
+ "\xe1\xbb\xa5",
+ "\xc3\xb9",
+ "\xc3\xba",
+ "\xc5\xa9",
+ "\xe1\xbb\xa7",
+ "\xc3\xbd",
+ "\xe1\xbb\xa3",
+ "\xe1\xbb\xae",
+);
+
+my %from_ucs4 = (
+ 0x00000000 => "\x00",
+ 0x00000001 => "\x01",
+ 0x00000003 => "\x03",
+ 0x00000004 => "\x04",
+ 0x00000007 => "\x07",
+ 0x00000008 => "\x08",
+ 0x00000009 => "\x09",
+ 0x0000000a => "\x0a",
+ 0x0000000b => "\x0b",
+ 0x0000000c => "\x0c",
+ 0x0000000d => "\x0d",
+ 0x0000000e => "\x0e",
+ 0x0000000f => "\x0f",
+ 0x00000010 => "\x10",
+ 0x00000011 => "\x11",
+ 0x00000012 => "\x12",
+ 0x00000013 => "\x13",
+ 0x00000015 => "\x15",
+ 0x00000016 => "\x16",
+ 0x00000017 => "\x17",
+ 0x00000018 => "\x18",
+ 0x0000001a => "\x1a",
+ 0x0000001b => "\x1b",
+ 0x0000001c => "\x1c",
+ 0x0000001d => "\x1d",
+ 0x0000001f => "\x1f",
+ 0x00000020 => "\x20",
+ 0x00000021 => "\x21",
+ 0x00000022 => "\x22",
+ 0x00000023 => "\x23",
+ 0x00000024 => "\x24",
+ 0x00000025 => "\x25",
+ 0x00000026 => "\x26",
+ 0x00000027 => "\x27",
+ 0x00000028 => "\x28",
+ 0x00000029 => "\x29",
+ 0x0000002a => "\x2a",
+ 0x0000002b => "\x2b",
+ 0x0000002c => "\x2c",
+ 0x0000002d => "\x2d",
+ 0x0000002e => "\x2e",
+ 0x0000002f => "\x2f",
+ 0x00000030 => "\x30",
+ 0x00000031 => "\x31",
+ 0x00000032 => "\x32",
+ 0x00000033 => "\x33",
+ 0x00000034 => "\x34",
+ 0x00000035 => "\x35",
+ 0x00000036 => "\x36",
+ 0x00000037 => "\x37",
+ 0x00000038 => "\x38",
+ 0x00000039 => "\x39",
+ 0x0000003a => "\x3a",
+ 0x0000003b => "\x3b",
+ 0x0000003c => "\x3c",
+ 0x0000003d => "\x3d",
+ 0x0000003e => "\x3e",
+ 0x0000003f => "\x3f",
+ 0x00000040 => "\x40",
+ 0x00000041 => "\x41",
+ 0x00000042 => "\x42",
+ 0x00000043 => "\x43",
+ 0x00000044 => "\x44",
+ 0x00000045 => "\x45",
+ 0x00000046 => "\x46",
+ 0x00000047 => "\x47",
+ 0x00000048 => "\x48",
+ 0x00000049 => "\x49",
+ 0x0000004a => "\x4a",
+ 0x0000004b => "\x4b",
+ 0x0000004c => "\x4c",
+ 0x0000004d => "\x4d",
+ 0x0000004e => "\x4e",
+ 0x0000004f => "\x4f",
+ 0x00000050 => "\x50",
+ 0x00000051 => "\x51",
+ 0x00000052 => "\x52",
+ 0x00000053 => "\x53",
+ 0x00000054 => "\x54",
+ 0x00000055 => "\x55",
+ 0x00000056 => "\x56",
+ 0x00000057 => "\x57",
+ 0x00000058 => "\x58",
+ 0x00000059 => "\x59",
+ 0x0000005a => "\x5a",
+ 0x0000005b => "\x5b",
+ 0x0000005c => "\x5c",
+ 0x0000005d => "\x5d",
+ 0x0000005e => "\x5e",
+ 0x0000005f => "\x5f",
+ 0x00000060 => "\x60",
+ 0x00000061 => "\x61",
+ 0x00000062 => "\x62",
+ 0x00000063 => "\x63",
+ 0x00000064 => "\x64",
+ 0x00000065 => "\x65",
+ 0x00000066 => "\x66",
+ 0x00000067 => "\x67",
+ 0x00000068 => "\x68",
+ 0x00000069 => "\x69",
+ 0x0000006a => "\x6a",
+ 0x0000006b => "\x6b",
+ 0x0000006c => "\x6c",
+ 0x0000006d => "\x6d",
+ 0x0000006e => "\x6e",
+ 0x0000006f => "\x6f",
+ 0x00000070 => "\x70",
+ 0x00000071 => "\x71",
+ 0x00000072 => "\x72",
+ 0x00000073 => "\x73",
+ 0x00000074 => "\x74",
+ 0x00000075 => "\x75",
+ 0x00000076 => "\x76",
+ 0x00000077 => "\x77",
+ 0x00000078 => "\x78",
+ 0x00000079 => "\x79",
+ 0x0000007a => "\x7a",
+ 0x0000007b => "\x7b",
+ 0x0000007c => "\x7c",
+ 0x0000007d => "\x7d",
+ 0x0000007e => "\x7e",
+ 0x0000007f => "\x7f",
+ 0x000000c0 => "\xc0",
+ 0x000000c1 => "\xc1",
+ 0x000000c2 => "\xc2",
+ 0x000000c3 => "\xc3",
+ 0x000000c8 => "\xc8",
+ 0x000000c9 => "\xc9",
+ 0x000000ca => "\xca",
+ 0x000000cc => "\xcc",
+ 0x000000cd => "\xcd",
+ 0x000000d2 => "\xd2",
+ 0x000000d3 => "\xd3",
+ 0x000000d4 => "\xd4",
+ 0x000000d5 => "\xa0",
+ 0x000000d9 => "\xd9",
+ 0x000000da => "\xda",
+ 0x000000dd => "\xdd",
+ 0x000000e0 => "\xe0",
+ 0x000000e1 => "\xe1",
+ 0x000000e2 => "\xe2",
+ 0x000000e3 => "\xe3",
+ 0x000000e8 => "\xe8",
+ 0x000000e9 => "\xe9",
+ 0x000000ea => "\xea",
+ 0x000000ec => "\xec",
+ 0x000000ed => "\xed",
+ 0x000000f2 => "\xf2",
+ 0x000000f3 => "\xf3",
+ 0x000000f4 => "\xf4",
+ 0x000000f5 => "\xf5",
+ 0x000000f9 => "\xf9",
+ 0x000000fa => "\xfa",
+ 0x000000fd => "\xfd",
+ 0x00000102 => "\xc5",
+ 0x00000103 => "\xe5",
+ 0x00000110 => "\xd0",
+ 0x00000111 => "\xf0",
+ 0x00000128 => "\xce",
+ 0x00000129 => "\xee",
+ 0x00000168 => "\x9d",
+ 0x00000169 => "\xfb",
+ 0x000001a0 => "\xb4",
+ 0x000001a1 => "\xbd",
+ 0x000001af => "\xbf",
+ 0x000001b0 => "\xdf",
+ 0x00001ea0 => "\x80",
+ 0x00001ea1 => "\xd5",
+ 0x00001ea2 => "\xc4",
+ 0x00001ea3 => "\xe4",
+ 0x00001ea4 => "\x84",
+ 0x00001ea5 => "\xa4",
+ 0x00001ea6 => "\x85",
+ 0x00001ea7 => "\xa5",
+ 0x00001ea8 => "\x86",
+ 0x00001ea9 => "\xa6",
+ 0x00001eaa => "\x06",
+ 0x00001eab => "\xe7",
+ 0x00001eac => "\x87",
+ 0x00001ead => "\xa7",
+ 0x00001eae => "\x81",
+ 0x00001eaf => "\xa1",
+ 0x00001eb0 => "\x82",
+ 0x00001eb1 => "\xa2",
+ 0x00001eb2 => "\x02",
+ 0x00001eb3 => "\xc6",
+ 0x00001eb4 => "\x05",
+ 0x00001eb5 => "\xc7",
+ 0x00001eb6 => "\x83",
+ 0x00001eb7 => "\xa3",
+ 0x00001eb8 => "\x89",
+ 0x00001eb9 => "\xa9",
+ 0x00001eba => "\xcb",
+ 0x00001ebb => "\xeb",
+ 0x00001ebc => "\x88",
+ 0x00001ebd => "\xa8",
+ 0x00001ebe => "\x8a",
+ 0x00001ebf => "\xaa",
+ 0x00001ec0 => "\x8b",
+ 0x00001ec1 => "\xab",
+ 0x00001ec2 => "\x8c",
+ 0x00001ec3 => "\xac",
+ 0x00001ec4 => "\x8d",
+ 0x00001ec5 => "\xad",
+ 0x00001ec6 => "\x8e",
+ 0x00001ec7 => "\xae",
+ 0x00001ec8 => "\x9b",
+ 0x00001ec9 => "\xef",
+ 0x00001eca => "\x98",
+ 0x00001ecb => "\xb8",
+ 0x00001ecc => "\x9a",
+ 0x00001ecd => "\xf7",
+ 0x00001ece => "\x99",
+ 0x00001ecf => "\xf6",
+ 0x00001ed0 => "\x8f",
+ 0x00001ed1 => "\xaf",
+ 0x00001ed2 => "\x90",
+ 0x00001ed3 => "\xb0",
+ 0x00001ed4 => "\x91",
+ 0x00001ed5 => "\xb1",
+ 0x00001ed6 => "\x92",
+ 0x00001ed7 => "\xb2",
+ 0x00001ed8 => "\x93",
+ 0x00001ed9 => "\xb5",
+ 0x00001eda => "\x95",
+ 0x00001edb => "\xbe",
+ 0x00001edc => "\x96",
+ 0x00001edd => "\xb6",
+ 0x00001ede => "\x97",
+ 0x00001edf => "\xb7",
+ 0x00001ee0 => "\xb3",
+ 0x00001ee1 => "\xde",
+ 0x00001ee2 => "\x94",
+ 0x00001ee3 => "\xfe",
+ 0x00001ee4 => "\x9e",
+ 0x00001ee5 => "\xf8",
+ 0x00001ee6 => "\x9c",
+ 0x00001ee7 => "\xfc",
+ 0x00001ee8 => "\xba",
+ 0x00001ee9 => "\xd1",
+ 0x00001eea => "\xbb",
+ 0x00001eeb => "\xd7",
+ 0x00001eec => "\xbc",
+ 0x00001eed => "\xd8",
+ 0x00001eee => "\xff",
+ 0x00001eef => "\xe6",
+ 0x00001ef0 => "\xb9",
+ 0x00001ef1 => "\xf1",
+ 0x00001ef2 => "\x9f",
+ 0x00001ef3 => "\xcf",
+ 0x00001ef4 => "\x1e",
+ 0x00001ef5 => "\xdc",
+ 0x00001ef6 => "\x14",
+ 0x00001ef7 => "\xd6",
+ 0x00001ef8 => "\x19",
+ 0x00001ef9 => "\xdb",
+);
+
+sub _recode
+{
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = join '',
+ map $from_ucs4{$_}
+ || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
+ @{$_[1]};
+ } elsif ($_[0]->{_to} eq 'UTF-8',) {
+ $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
+ } else {
+ $_[1] = [ map
+ $to_ucs4[$_],
+ unpack 'C*', $_[1]
+ ];
+ }
+
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::VISCII - Conversion routines for VISCII
+
+=head1 SYNOPSIS
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module is generated and contains the conversion tables and
+routines for VISCII.
+=head1 CHARACTER TABLE
+
+The following table is sorted in the same order as the original charmap.
+All character codes are in hexadecimal. Please read 'ISO-10646' as
+'ISO-10646-UCS4'.
+
+ Local | ISO-10646 | Description
+-------+-----------+-------------------------------------------------
+ 00 | 00000000 | NULL (NUL)
+ 01 | 00000001 | START OF HEADING (SOH)
+ 02 | 00001EB2 | LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+ 03 | 00000003 | END OF TEXT (ETX)
+ 04 | 00000004 | END OF TRANSMISSION (EOT)
+ 05 | 00001EB4 | LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+ 06 | 00001EAA | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+ 07 | 00000007 | BELL (BEL)
+ 08 | 00000008 | BACKSPACE (BS)
+ 09 | 00000009 | CHARACTER TABULATION (HT)
+ 0A | 0000000A | LINE FEED (LF)
+ 0B | 0000000B | LINE TABULATION (VT)
+ 0C | 0000000C | FORM FEED (FF)
+ 0D | 0000000D | CARRIAGE RETURN (CR)
+ 0E | 0000000E | SHIFT OUT (SO)
+ 0F | 0000000F | SHIFT IN (SI)
+ 10 | 00000010 | DATALINK ESCAPE (DLE)
+ 11 | 00000011 | DEVICE CONTROL ONE (DC1)
+ 12 | 00000012 | DEVICE CONTROL TWO (DC2)
+ 13 | 00000013 | DEVICE CONTROL THREE (DC3)
+ 14 | 00001EF6 | LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+ 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
+ 16 | 00000016 | SYNCHRONOUS IDLE (SYN)
+ 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
+ 18 | 00000018 | CANCEL (CAN)
+ 19 | 00001EF8 | LATIN CAPITAL LETTER Y WITH TILDE
+ 1A | 0000001A | SUBSTITUTE (SUB)
+ 1B | 0000001B | ESCAPE (ESC)
+ 1C | 0000001C | FILE SEPARATOR (IS4)
+ 1D | 0000001D | GROUP SEPARATOR (IS3)
+ 1E | 00001EF4 | LATIN CAPITAL LETTER Y WITH DOT BELOW
+ 1F | 0000001F | UNIT SEPARATOR (IS1)
+ 20 | 00000020 | SPACE
+ 21 | 00000021 | EXCLAMATION MARK
+ 22 | 00000022 | QUOTATION MARK
+ 23 | 00000023 | NUMBER SIGN
+ 24 | 00000024 | DOLLAR SIGN
+ 25 | 00000025 | PERCENT SIGN
+ 26 | 00000026 | AMPERSAND
+ 27 | 00000027 | APOSTROPHE
+ 28 | 00000028 | LEFT PARENTHESIS
+ 29 | 00000029 | RIGHT PARENTHESIS
+ 2A | 0000002A | ASTERISK
+ 2B | 0000002B | PLUS SIGN
+ 2C | 0000002C | COMMA
+ 2D | 0000002D | HYPHEN-MINUS
+ 2E | 0000002E | FULL STOP
+ 2F | 0000002F | SOLIDUS
+ 30 | 00000030 | DIGIT ZERO
+ 31 | 00000031 | DIGIT ONE
+ 32 | 00000032 | DIGIT TWO
+ 33 | 00000033 | DIGIT THREE
+ 34 | 00000034 | DIGIT FOUR
+ 35 | 00000035 | DIGIT FIVE
+ 36 | 00000036 | DIGIT SIX
+ 37 | 00000037 | DIGIT SEVEN
+ 38 | 00000038 | DIGIT EIGHT
+ 39 | 00000039 | DIGIT NINE
+ 3A | 0000003A | COLON
+ 3B | 0000003B | SEMICOLON
+ 3C | 0000003C | LESS-THAN SIGN
+ 3D | 0000003D | EQUALS SIGN
+ 3E | 0000003E | GREATER-THAN SIGN
+ 3F | 0000003F | QUESTION MARK
+ 40 | 00000040 | COMMERCIAL AT
+ 41 | 00000041 | LATIN CAPITAL LETTER A
+ 42 | 00000042 | LATIN CAPITAL LETTER B
+ 43 | 00000043 | LATIN CAPITAL LETTER C
+ 44 | 00000044 | LATIN CAPITAL LETTER D
+ 45 | 00000045 | LATIN CAPITAL LETTER E
+ 46 | 00000046 | LATIN CAPITAL LETTER F
+ 47 | 00000047 | LATIN CAPITAL LETTER G
+ 48 | 00000048 | LATIN CAPITAL LETTER H
+ 49 | 00000049 | LATIN CAPITAL LETTER I
+ 4A | 0000004A | LATIN CAPITAL LETTER J
+ 4B | 0000004B | LATIN CAPITAL LETTER K
+ 4C | 0000004C | LATIN CAPITAL LETTER L
+ 4D | 0000004D | LATIN CAPITAL LETTER M
+ 4E | 0000004E | LATIN CAPITAL LETTER N
+ 4F | 0000004F | LATIN CAPITAL LETTER O
+ 50 | 00000050 | LATIN CAPITAL LETTER P
+ 51 | 00000051 | LATIN CAPITAL LETTER Q
+ 52 | 00000052 | LATIN CAPITAL LETTER R
+ 53 | 00000053 | LATIN CAPITAL LETTER S
+ 54 | 00000054 | LATIN CAPITAL LETTER T
+ 55 | 00000055 | LATIN CAPITAL LETTER U
+ 56 | 00000056 | LATIN CAPITAL LETTER V
+ 57 | 00000057 | LATIN CAPITAL LETTER W
+ 58 | 00000058 | LATIN CAPITAL LETTER X
+ 59 | 00000059 | LATIN CAPITAL LETTER Y
+ 5A | 0000005A | LATIN CAPITAL LETTER Z
+ 5B | 0000005B | LEFT SQUARE BRACKET
+ 5C | 0000005C | REVERSE SOLIDUS
+ 5D | 0000005D | RIGHT SQUARE BRACKET
+ 5E | 0000005E | CIRCUMFLEX ACCENT
+ 5F | 0000005F | LOW LINE
+ 60 | 00000060 | GRAVE ACCENT
+ 61 | 00000061 | LATIN SMALL LETTER A
+ 62 | 00000062 | LATIN SMALL LETTER B
+ 63 | 00000063 | LATIN SMALL LETTER C
+ 64 | 00000064 | LATIN SMALL LETTER D
+ 65 | 00000065 | LATIN SMALL LETTER E
+ 66 | 00000066 | LATIN SMALL LETTER F
+ 67 | 00000067 | LATIN SMALL LETTER G
+ 68 | 00000068 | LATIN SMALL LETTER H
+ 69 | 00000069 | LATIN SMALL LETTER I
+ 6A | 0000006A | LATIN SMALL LETTER J
+ 6B | 0000006B | LATIN SMALL LETTER K
+ 6C | 0000006C | LATIN SMALL LETTER L
+ 6D | 0000006D | LATIN SMALL LETTER M
+ 6E | 0000006E | LATIN SMALL LETTER N
+ 6F | 0000006F | LATIN SMALL LETTER O
+ 70 | 00000070 | LATIN SMALL LETTER P
+ 71 | 00000071 | LATIN SMALL LETTER Q
+ 72 | 00000072 | LATIN SMALL LETTER R
+ 73 | 00000073 | LATIN SMALL LETTER S
+ 74 | 00000074 | LATIN SMALL LETTER T
+ 75 | 00000075 | LATIN SMALL LETTER U
+ 76 | 00000076 | LATIN SMALL LETTER V
+ 77 | 00000077 | LATIN SMALL LETTER W
+ 78 | 00000078 | LATIN SMALL LETTER X
+ 79 | 00000079 | LATIN SMALL LETTER Y
+ 7A | 0000007A | LATIN SMALL LETTER Z
+ 7B | 0000007B | LEFT CURLY BRACKET
+ 7C | 0000007C | VERTICAL LINE
+ 7D | 0000007D | RIGHT CURLY BRACKET
+ 7E | 0000007E | TILDE
+ 7F | 0000007F | DELETE (DEL)
+ 80 | 00001EA0 | LATIN CAPITAL LETTER A WITH DOT BELOW
+ 81 | 00001EAE | LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+ 82 | 00001EB0 | LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+ 83 | 00001EB6 | LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+ 84 | 00001EA4 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+ 85 | 00001EA6 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+ 86 | 00001EA8 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ 87 | 00001EAC | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ 88 | 00001EBC | LATIN CAPITAL LETTER E WITH TILDE
+ 89 | 00001EB8 | LATIN CAPITAL LETTER E WITH DOT BELOW
+ 8A | 00001EBE | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+ 8B | 00001EC0 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+ 8C | 00001EC2 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ 8D | 00001EC4 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+ 8E | 00001EC6 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ 8F | 00001ED0 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+ 90 | 00001ED2 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+ 91 | 00001ED4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ 92 | 00001ED6 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+ 93 | 00001ED8 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ 94 | 00001EE2 | LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+ 95 | 00001EDA | LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+ 96 | 00001EDC | LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+ 97 | 00001EDE | LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+ 98 | 00001ECA | LATIN CAPITAL LETTER I WITH DOT BELOW
+ 99 | 00001ECE | LATIN CAPITAL LETTER O WITH HOOK ABOVE
+ 9A | 00001ECC | LATIN CAPITAL LETTER O WITH DOT BELOW
+ 9B | 00001EC8 | LATIN CAPITAL LETTER I WITH HOOK ABOVE
+ 9C | 00001EE6 | LATIN CAPITAL LETTER U WITH HOOK ABOVE
+ 9D | 00000168 | LATIN CAPITAL LETTER U WITH TILDE
+ 9E | 00001EE4 | LATIN CAPITAL LETTER U WITH DOT BELOW
+ 9F | 00001EF2 | LATIN CAPITAL LETTER Y WITH GRAVE
+ A0 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
+ A1 | 00001EAF | LATIN SMALL LETTER A WITH BREVE AND ACUTE
+ A2 | 00001EB1 | LATIN SMALL LETTER A WITH BREVE AND GRAVE
+ A3 | 00001EB7 | LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+ A4 | 00001EA5 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+ A5 | 00001EA7 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+ A6 | 00001EA9 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ A7 | 00001EAD | LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+ A8 | 00001EBD | LATIN SMALL LETTER E WITH TILDE
+ A9 | 00001EB9 | LATIN SMALL LETTER E WITH DOT BELOW
+ AA | 00001EBF | LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+ AB | 00001EC1 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+ AC | 00001EC3 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ AD | 00001EC5 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+ AE | 00001EC7 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+ AF | 00001ED1 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+ B0 | 00001ED3 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+ B1 | 00001ED5 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ B2 | 00001ED7 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+ B3 | 00001EE0 | LATIN CAPITAL LETTER O WITH HORN AND TILDE
+ B4 | 000001A0 | LATIN CAPITAL LETTER O WITH HORN
+ B5 | 00001ED9 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ B6 | 00001EDD | LATIN SMALL LETTER O WITH HORN AND GRAVE
+ B7 | 00001EDF | LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+ B8 | 00001ECB | LATIN SMALL LETTER I WITH DOT BELOW
+ B9 | 00001EF0 | LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ BA | 00001EE8 | LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+ BB | 00001EEA | LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+ BC | 00001EEC | LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+ BD | 000001A1 | LATIN SMALL LETTER O WITH HORN
+ BE | 00001EDB | LATIN SMALL LETTER O WITH HORN AND ACUTE
+ BF | 000001AF | LATIN CAPITAL LETTER U WITH HORN
+ C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
+ C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
+ C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+ C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
+ C4 | 00001EA2 | LATIN CAPITAL LETTER A WITH HOOK ABOVE
+ C5 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
+ C6 | 00001EB3 | LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+ C7 | 00001EB5 | LATIN SMALL LETTER A WITH BREVE AND TILDE
+ C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
+ C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
+ CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+ CB | 00001EBA | LATIN CAPITAL LETTER E WITH HOOK ABOVE
+ CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
+ CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
+ CE | 00000128 | LATIN CAPITAL LETTER I WITH TILDE
+ CF | 00001EF3 | LATIN SMALL LETTER Y WITH GRAVE
+ D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
+ D1 | 00001EE9 | LATIN SMALL LETTER U WITH HORN AND ACUTE
+ D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
+ D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
+ D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+ D5 | 00001EA1 | LATIN SMALL LETTER A WITH DOT BELOW
+ D6 | 00001EF7 | LATIN SMALL LETTER Y WITH HOOK ABOVE
+ D7 | 00001EEB | LATIN SMALL LETTER U WITH HORN AND GRAVE
+ D8 | 00001EED | LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+ D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
+ DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
+ DB | 00001EF9 | LATIN SMALL LETTER Y WITH TILDE
+ DC | 00001EF5 | LATIN SMALL LETTER Y WITH DOT BELOW
+ DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
+ DE | 00001EE1 | LATIN SMALL LETTER O WITH HORN AND TILDE
+ DF | 000001B0 | LATIN SMALL LETTER U WITH HORN
+ E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
+ E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
+ E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
+ E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
+ E4 | 00001EA3 | LATIN SMALL LETTER A WITH HOOK ABOVE
+ E5 | 00000103 | LATIN SMALL LETTER A WITH BREVE
+ E6 | 00001EEF | LATIN SMALL LETTER U WITH HORN AND TILDE
+ E7 | 00001EAB | LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+ E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
+ E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
+ EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
+ EB | 00001EBB | LATIN SMALL LETTER E WITH HOOK ABOVE
+ EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
+ ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
+ EE | 00000129 | LATIN SMALL LETTER I WITH TILDE
+ EF | 00001EC9 | LATIN SMALL LETTER I WITH HOOK ABOVE
+ F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
+ F1 | 00001EF1 | LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+ F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
+ F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
+ F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
+ F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
+ F6 | 00001ECF | LATIN SMALL LETTER O WITH HOOK ABOVE
+ F7 | 00001ECD | LATIN SMALL LETTER O WITH DOT BELOW
+ F8 | 00001EE5 | LATIN SMALL LETTER U WITH DOT BELOW
+ F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
+ FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
+ FB | 00000169 | LATIN SMALL LETTER U WITH TILDE
+ FC | 00001EE7 | LATIN SMALL LETTER U WITH HOOK ABOVE
+ FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
+ FE | 00001EE3 | LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+ FF | 00001EEE | LATIN CAPITAL LETTER U WITH HORN AND TILDE
+
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::RecodeData(3), Locale::Recode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/_Encode.pm b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/_Encode.pm
new file mode 100644
index 0000000..37d5a37
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/RecodeData/_Encode.pm
@@ -0,0 +1,100 @@
+#! /bin/false
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: _Encode.pm,v 1.1 2011-10-12 23:51:50 pertusus Exp $
+
+# Interface to Encode.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::RecodeData::_Encode;
+
+use strict;
+use integer;
+
+use Encode;
+
+require Locale::RecodeData;
+use base qw (Locale::RecodeData);
+
+sub _recode
+{
+ use bytes;
+
+ my $retval;
+
+ if ($_[0]->{_from} eq 'INTERNAL') {
+ $_[1] = pack "N*", @{$_[1]};
+ $retval = Encode::from_to ($_[1], 'UTF-32BE', $_[0]->{_to});
+ } elsif ($_[0]->{_to} eq 'INTERNAL') {
+ $retval = Encode::from_to ($_[1], $_[0]->{_from}, 'UTF-32BE');
+ return unless defined $retval;
+ $_[1] = [ unpack "N*", $_[1] ];
+ } else {
+ $retval = Encode::from_to ($_[1], $_[0]->{_from}, $_[0]->{_to});
+ }
+
+ return unless defined $retval;
+ return 1;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::RecodeData::_Encode - Internal wrapper around Encode
+
+=head1 SYNOPSIS
+
+use Locale::RecodeData::_Encode;
+
+This module is internal to libintl. Do not use directly!
+
+=head1 DESCRIPTION
+
+This module converts text with the help of Encode(3). It is
+tried first for conversions if libintl-perl detects the presence
+of Encode.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::Recode(3), Encode(3), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/TextDomain.pm b/tp/maintain/lib/libintl-perl/lib/Locale/TextDomain.pm
new file mode 100755
index 0000000..883fbbb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/TextDomain.pm
@@ -0,0 +1,1051 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: TextDomain.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# High-level interface to Perl i18n.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package __TiedTextDomain;
+
+use strict;
+
+sub TIEHASH
+{
+ my ($class, $function) = @_;
+ bless {
+ __function => $function,
+ }, $class;
+}
+
+sub FETCH
+{
+ my ($self, $msg) = @_;
+
+ &{$self->{__function}} ($msg);
+}
+
+sub FIRSTKEY
+{
+ my $self = shift;
+ my $reset_iterator = keys %$self;
+ return scalar each %$self;
+}
+
+sub NEXTKEY
+{
+ my $self = shift;
+ return scalar each %$self;
+}
+
+sub CLEAR {}
+sub STORE {}
+sub DELETE {}
+
+1;
+
+package Locale::TextDomain;
+
+use strict;
+
+use Locale::Messages qw (textdomain bindtextdomain dgettext dngettext dpgettext dnpgettext);
+use Cwd qw (abs_path);
+
+use vars qw ($VERSION);
+
+$VERSION = '1.20';
+
+require Exporter;
+
+use vars qw (@ISA @EXPORT %__ $__);
+
+@ISA = ('Exporter');
+@EXPORT = qw (__ __x __n __nx __xn __p __px __np __npx $__ %__
+ N__ N__n N__p N__np);
+
+my %textdomains = ();
+my %bound_dirs = ();
+my @default_dirs = ();
+
+sub __ ($);
+
+sub __find_domain ($);
+sub __expand ($%);
+sub __tied_gettext ($$);
+
+BEGIN {
+ # Tie the hash to gettext().
+ tie %__, '__TiedTextDomain', \&__tied_gettext;
+ $__ = \%__;
+
+ # Add default search directories, but only if they exist.
+ for my $dir (qw (/usr/share/locale /usr/local/share/locale)) {
+ if (-d $dir) {
+ @default_dirs = ($dir);
+ last;
+ }
+ }
+}
+
+# Normal gettext.
+sub __ ($)
+{
+ my $msgid = shift;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return dgettext $textdomain => $msgid;
+}
+
+# Called from tied hash.
+sub __tied_gettext ($$)
+{
+ my ($msgid) = @_;
+
+ my ($package) = caller (1);
+
+ my $textdomain = $textdomains{$package};
+ unless (defined $textdomain) {
+ my ($maybe_package, $filename, $line) = caller (2);
+ if (exists $textdomains{$maybe_package}) {
+ warn <<EOF;
+Probable use of \$__ or \%__ where __() should be used at $filename:$line.
+EOF
+ }
+ }
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return dgettext $textdomain => $msgid;
+}
+
+# With interpolation.
+sub __x ($@)
+{
+ my ($msgid, %vars) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return __expand ((dgettext $textdomain => $msgid), %vars);
+}
+
+# Plural.
+sub __n ($$$)
+{
+ my ($msgid, $msgid_plural, $count) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return dngettext $textdomain, $msgid, $msgid_plural, $count;
+}
+
+# Plural with interpolation.
+sub __nx ($$$@)
+{
+ my ($msgid, $msgid_plural, $count, %args) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return __expand ((dngettext $textdomain, $msgid, $msgid_plural, $count),
+ %args);
+}
+
+# Plural with interpolation.
+sub __xn ($$$@)
+{
+ my ($msgid, $msgid_plural, $count, %args) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return __expand ((dngettext $textdomain, $msgid, $msgid_plural, $count),
+ %args);
+}
+
+# Context. (p is for particular or special)
+sub __p ($$)
+{
+ my $msgctxt = shift;
+ my $msgid = shift;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return dpgettext $textdomain => $msgctxt, $msgid;
+}
+
+# With interpolation.
+sub __px ($$@)
+{
+ my ($msgctxt, $msgid, %vars) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return __expand ((dpgettext $textdomain => $msgctxt, $msgid), %vars);
+}
+
+# Context + Plural.
+sub __np ($$$$)
+{
+ my ($msgctxt, $msgid, $msgid_plural, $count) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count;
+}
+
+# Plural with interpolation.
+sub __npx ($$$$@)
+{
+ my ($msgctxt, $msgid, $msgid_plural, $count, %args) = @_;
+
+ my $package = caller;
+
+ my $textdomain = $textdomains{$package};
+
+ __find_domain $textdomain if
+ defined $textdomain && defined $bound_dirs{$textdomain};
+
+ return __expand ((dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count),
+ %args);
+}
+
+# Dummy functions for string marking.
+sub N__($)
+{
+ return shift;
+}
+
+sub N__n($$$)
+{
+ return @_;
+}
+
+sub N__p($$) {
+ return @_;
+}
+
+sub N__np($$$$) {
+ return @_;
+}
+
+sub import
+{
+ my ($self, $textdomain, @search_dirs) = @_;
+
+ # Check our caller.
+ my $package = caller;
+ return if exists $textdomains{$package};
+
+ # Was a textdomain specified?
+ $textdomain = textdomain unless defined $textdomain && length $textdomain;
+
+ # Remember the textdomain of that package.
+ $textdomains{$package} = $textdomain;
+
+ # Remember that we still have to bind that textdomain to
+ # a directory.
+ unless (exists $bound_dirs{$textdomain}) {
+ @search_dirs = map $_ . '/LocaleData', @INC, @default_dirs
+ unless @search_dirs;
+ $bound_dirs{$textdomain} = [@search_dirs];
+ }
+
+ Locale::TextDomain->export_to_level (1, $package, @EXPORT);
+
+ return;
+}
+
+# Private functions.
+sub __find_domain ($)
+{
+ my $domain = shift;
+
+ my $try_dirs = $bound_dirs{$domain};
+
+ if (defined $try_dirs) {
+ my $found_dir = '';
+
+ TRYDIR: foreach my $dir (map { abs_path $_ } grep { -d $_ } @$try_dirs) {
+ # Is there a message catalog? We have to search recursively
+ # for it. Since globbing is reported to be buggy under
+ # MS-DOS, we roll our own version.
+ local *DIR;
+ if (opendir DIR, $dir) {
+ my @files = map { "$dir/$_/LC_MESSAGES/$domain.mo" }
+ grep { ! /^\.\.?$/ } readdir DIR;
+
+ foreach my $file (@files) {
+ if (-f $file || -l $file) {
+ # If we find a non-readable file on our way,
+ # we access has been disabled on purpose.
+ # Therefore no -r check here.
+ $found_dir = $dir;
+ last TRYDIR;
+ }
+ }
+ }
+ }
+
+ # If there was no success, this will fall back to the default search
+ # directories.
+ bindtextdomain $domain => $found_dir;
+ }
+
+ # The search has completed.
+ undef $bound_dirs{$domain};
+
+ return 1;
+}
+
+sub __expand ($%)
+{
+ my ($translation, %args) = @_;
+
+ my $re = join '|', map { quotemeta $_ } keys %args;
+ $translation =~ s/\{($re)\}/defined $args{$1} ? $args{$1} : "{$1}"/ge;
+
+ return $translation;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::TextDomain - Perl Interface to Uniforum Message Translation
+
+=head1 SYNOPSIS
+
+ use Locale::TextDomain ('my-package', @locale_dirs);
+
+ use Locale::TextDomain qw (my-package);
+
+ my $translated = __"Hello World!\n";
+
+ my $alt = $__{"Hello World!\n"};
+
+ my $alt2 = $__->{"Hello World!\n"};
+
+ my @list = (N__"Hello",
+ N__"World");
+
+ printf (__n ("one file read",
+ "%d files read",
+ $num_files),
+ $num_files);
+
+ print __nx ("one file read", "{num} files read", $num_files,
+ num => $num_files);
+
+ my $translated_context = __p ("Verb, to view", "View");
+
+ printf (__np ("Files read from filesystems",
+ "one file read",
+ "%d files read",
+ $num_files),
+ $num_files);
+
+ print __npx ("Files read from filesystems",
+ "one file read",
+ "{num} files read",
+ $num_files,
+ num => $num_files);
+
+
+=head1 DESCRIPTION
+
+The module Locale::TextDomain(3pm) provides a high-level interface
+to Perl message translation.
+
+=head2 Textdomains
+
+When you request a translation for a given string, the system used
+in libintl-perl follows a standard strategy to find a suitable message
+catalog containing the translation: Unless you explicitely define
+a name for the message catalog, libintl-perl will assume that your
+catalog is called 'messages' (unless you have changed the default
+value to something else via Locale::Messages(3pm), method textdomain()).
+
+You might think that his default strategy leaves room for optimization
+and you are right. It would be a lot smarter if multiple software
+packages, all with their individual message catalogs, could be installed
+on one system, and it should also be possible that third-party
+components of your software (like Perl modules) can load their
+message catalogs, too, without interfering with yours.
+
+The solution is clear, you have to assign a unique name to your message
+database, and you have to specify that name at run-time. That unique
+name is the so-called I<textdomain> of your software package. The name is
+actually arbitrary but you should follow these best-practice guidelines
+to ensure maximum interoperability:
+
+=over 8
+
+=item File System Safety
+
+In practice, textdomains get mapped into file names, and you should
+therefore make sure that the textdomain you choose is a valid filename
+on every system that will run your software.
+
+=item Case-sensitivity
+
+Textdomains are always case-sensitive (i. e. 'Package' and 'PACKAGE'
+are not the same). However, since the message catalogs will be stored
+on file systems, that may or may not distinguish case when looking
+up file names, you should avoid potential conflicts here.
+
+=item Textdomain Should Match CPAN Name
+
+If your software is listed as a module on CPAN, you should simply
+choose the name on CPAN as your textdomain. The textdomain for
+libintl-perl is hence 'libintl-perl'. But please replace all
+periods ('.') in your package name with an underscore because ...
+
+=item Internet Domain Names as a Fallback
+
+... if your software is I<not> a module listed on CPAN, as a last
+resort you should use the Java(tm) package scheme, i. e. choose
+an internet domain that you are owner of (or ask the owner of an
+internet domain) and concatenate your preferred textdomain with the
+reversed internet domain. Example: Your company runs the web-site
+'www.foobar.org' and is the owner of the domain 'foobar.org'. The
+textdomain for your company's software 'barfoos' should hence be
+'org.foobar.barfoos'.
+
+=back
+
+If your software is likely to be installed in different versions on
+the same system, it is probably a good idea to append some version
+information to your textdomain.
+
+Other systems are less strict with the naming scheme for textdomains
+but the phenomena known as Perl is actually a plethora of small,
+specialized modules and it is probably wisest to postulate some
+namespace model in order to avoid chaos.
+
+=head2 Binding textdomains to directories
+
+Once the system knows the I<textdomain> of the message that you
+want to get translated into the user's language, it still has to
+find the correct message catalog. By default, libintl-perl will
+look up the string in the translation database found in the
+directories F</usr/share/locale> and F</usr/local/share/locale>
+(in that order).
+
+It is neither guaranteed that these directories exist on the target
+machine, nor can you be sure that the installation routine has write
+access to these locations. You can therefore instruct libintl-perl
+to search other directories prior to the default directories. Specifying
+a differnt search directory is called I<binding> a textdomain to a
+directory.
+
+B<Locale::TextDomain> extends the default strategy by a Perl
+specific approach. Unless told otherwise, it will look for a
+directory F<LocaleData> in every component found in the standard
+include path C<@INC> and check for a database containing the message
+for your textdomain there. Example: If the path
+F</usr/lib/perl/5.8.0/site_perl> is in your C<@INC>, you can
+install your translation files in F</usr/lib/perl/5.8.0/site_perl/LocaleData>,
+and they will be found at run-time.
+
+=head1 USAGE
+
+It is crucial to remember that you use Locale::TextDoamin(3) as
+specified in the section L</SYNOPSIS>, that means you have to
+B<use> it, not B<require> it. The module behaves quite differently
+compared to other modules.
+
+The most significant difference is the meaning of the list passed
+as an argument to the use() function. It actually works like this:
+
+ use Locale::TextDomain (TEXTDOMAIN, DIRECTORY, ...)
+
+The first argument (the first string passed to use()) is the textdomain
+of your package, optionally followed by a list of directories to search
+I<instead> of the Perl-specific directories (see above: F</LocaleData>
+appended to every part of C<@INC>).
+
+If you are the author of a package 'barfoos', you will probably put
+the line
+
+ use Locale::TextDomain 'barfoos';
+
+resp. for non-CPAN modules
+
+ use Locale::TextDomain 'org.foobar.barfoos';
+
+in every module of your package that contains translatable strings. If
+your module has been installed properly, including the message catalogs,
+it will then be able to retrieve these translations at run-time.
+
+If you have not installed the translation database in a directory
+F<LocaleData> in the standard include path C<@INC> (or in the system
+directories F</usr/share/locale> resp. F</usr/local/share/locale>), you
+have to explicitely specify a search path by giving the names of
+directories (as strings!) as additional arguments to use():
+
+ use Locale::TextDomain qw (barfoos ./dir1 ./dir2);
+
+Alternatively you can call the function bindtextdomain() with suitable
+arguments (see the entry for bindtextdomain() in
+L<Locale::Messages/FUNCTIONS>). If you do so, you should pass
+C<undef> as an additional argument in order to avoid unnecessary
+lookups:
+
+ use Locale::TextDomain ('barfoos', undef);
+
+You see that the arguments given to use() have nothing to do with
+what is imported into your namespace, but they are rather arguments
+to textdomain(), resp. bindtextdomain(). Does that mean that
+B<Locale::TextDomain> exports nothing into your namespace? Umh, not
+exactly ... in fact it imports I<all> functions listed below into
+your namespace, and hence you should not define conflicting functions
+(and variables) yourself.
+
+So, why has Locale::TextDomain to be different from other modules?
+If you have ever written software in C and prepared it for
+internationalization (i18n), you will probably have defined some
+preprocessor macros like:
+
+ #define _(String) dgettext ("my-textdomain", String)
+ #define N_(String) String
+
+You only have to define that once in C, and the textdomain for your
+package is automatically inserted into all gettext functions. In
+Perl there is no such mechanism (at least it is not portable,
+option -P) and using the gettext functions could become quite
+cumbersome without some extra fiddling:
+
+ print dgettext ("my-textdomain", "Hello world!\n");
+
+This is no fun. In C it would merely be a
+
+ printf (_("Hello world!\n"));
+
+Perl has to be more concise and shorter than C ... see the next
+section for how you can use B<Locale::TextDomain> to end up in Perl
+with a mere
+
+ print __"Hello World!\n";
+
+=head1 EXPORTED FUNCTIONS
+
+All functions have quite funny names on purpose. In fact the
+purpose for that is quite clear: They should be short, operator-like,
+and they should not yell for conflicts with existing functions in
+I<your> namespace. You will understand it, when you internationalize
+your first Perl program or module. Preparing it is more like marking
+strings as being translatable than inserting function calls. Here
+we go:
+
+=over 4
+
+=item B<__ MSGID>
+
+B<NOTE:> This is a I<double> underscore!
+
+The basic and most-used function. It is a short-cut for a call
+to gettext() resp. dgettext(), and simply returns the translation for
+B<MSGID>. If your old code reads like this:
+
+ print "permission denied";
+
+You will now write:
+
+ print __"permission denied";
+
+That's all, the string will be output in the user's preferred language,
+provided that you have installed a translation for it.
+
+Of course you can also use parentheses:
+
+ print __("permission denied");
+
+Or even:
+
+ print (__("permission denied"));
+
+In my eyes, the first version without parentheses looks best.
+
+=item B<__x MSGID, ID1 =E<gt> VAL1, ID2 =E<gt> VAL2, ...>
+
+One of the nicest features in Perl is its capability to interpolate
+variables into strings:
+
+ print "This is the $color $thing.\n";
+
+This nice feature might con you into thinking that you could now
+write
+
+ print __"This is the $color $thing.\n";
+
+Alas, that would be nice, but it is not possible. Remember that the
+function __() serves both as an operator for translating strings
+I<and> as a mark for translatable strings. If the above string would
+get extracted from your Perl code, the un-interpolated form would
+end up in the message catalog because when parsing your code it
+is unpredictable what values the variables C<$thing> and C<$color>
+will have at run-time (this fact is most probably one of the reasons
+you have written your program for).
+
+However, at run-time, Perl will have interpolated the values already
+I<before> __() (resp. the underlying gettext() function) has seen the
+original string. Consequently something like "This is the red car.\n"
+will be looked up in the message catalog, it will not be found (because
+only "This is the $color $thing.\n" is included in the database),
+and the original, untranslated string will be returned.
+Honestly, because this is almost always an error, the xgettext(1)
+program will bail out with a fatal error when it comes across that
+string in your code.
+
+There are two workarounds for that:
+
+ printf __"This is the %s %s.\n", $color, $thing;
+
+But that has several disadvantages: Your translator will only
+see the isolated string, and without the surrounding code it
+is almost impossible to interpret it correctly. Of course, GNU
+emacs and other software capable of editing PO translation files
+will allow you to examine the context in the source code, but it
+is more likely that your translator will look for a less challenging
+translation project when she frequently comes across such messages.
+
+And even if she does understand the underlying programming, what
+if she has to reorder the color and the thing like in French:
+
+ msgid "This is the red car.\n";
+ msgstr "Cela est la voiture rouge.\n"
+
+Zut alors! No way! You cannot portably reorder the arguments to
+printf() and friends in Perl (it is possible in C, but at the
+time of this writing not supported in Perl, and it would lead to
+other problems anyway).
+
+So what? The Perl backend to GNU gettext has defined an alternative
+format for interpolatable strings:
+
+ "This is the {color} {thing}.\n";
+
+Instead of Perl variables you use place-holders (legal Perl variables
+are also legal place-holders) in curly braces, and then you call
+
+ print __x ("This is the {color} {thing}.\n",
+ thing => $thang,
+ color => $color);
+
+The function __x() will take the additional hash and replace all
+occurencies of the hash keys in curly braces with the corresponding
+values. Simple, readable, understandable to translators, what else
+would you want? And if the translator forgets, misspells or otherwise
+messes up some "variables", the msgfmt(1) program, that is used to
+compile the textual translation file into its binary representation
+will even choke on these errors and refuse to compile the translation.
+
+=item B<__n MSGID, MSGID_PLURAL, COUNT>
+
+Whew! That looks complicated ... It is best explained with an example.
+We'll have another look at your vintage code:
+
+ if ($files_deleted > 1) {
+ print "All files have been deleted.\n";
+ } else {
+ print "One file has been deleted.\n";
+ }
+
+Your intent is clear, you wanted to avoid the cumbersome
+"1 files deleted". This is okay for English, but other languages
+have more than one plural form. For example in Russian it makes
+a difference whether you want to say 1 file, 3 files or 6 files.
+You will use three different forms of the noun 'file' in each
+case. [Note: Yep, very smart you are, the Russian word for 'file'
+is in fact the English word, and it is an invariable noun, but if you
+know that, you will also understand the rest despite this little
+simplification ...].
+
+That is the reason for the existance of the function ngettext(),
+that __n() is a short-cut for:
+
+ print __n"One file has been deleted.\n",
+ "All files have been deleted.\n",
+ $files_deleted;
+
+Alternatively:
+
+ print __n ("One file has been deleted.\n",
+ "All files have been deleted.\n",
+ $files_deleted);
+
+The effect is always the same: libintl-perl will find out which
+plural form to pick for your user's language, and the output string
+will always look okay.
+
+=item B<__nx MSGID, MSGID_PLURAL, COUNT, VAR1 =E<gt> VAL1, VAR2 =E<gt> VAL2, ...>
+
+Bringing it all together:
+
+ print __nx ("One file has been deleted.\n",
+ "{count} files have been deleted.\n",
+ $num_files,
+ count => $num_files);
+
+The function __nx() picks the correct plural form (also for English!)
+I<and> it is capable of interpolating variables into strings.
+
+Have a close look at the order of arguments: The first argument is the
+string in the singular, the second one is the plural string. The third
+one is an integer indicating the number of items. This third argument
+is I<only> used to pick the correct translation. The optionally
+following arguments make up the hash used for interpolation. In the
+beginning it is often a little confusing that the variable holding the
+number of items will usually be repeated somewhere in the interpolation
+hash.
+
+=item B<__xn MSGID, MSGID_PLURAL, COUNT, VAR1 =E<gt> VAL1, VAR2 =E<gt> VAL2, ...>
+
+Does exactly the same thing as __nx(). In fact it is a common typo
+promoted to a feature.
+
+=item B<__p MSGCTXT, MSGID>
+
+This is much like __. The "p" stands for "particular", and the MSGCTXT
+is used to provide context to the translator. This may be neccessary
+when your string is short, and could stand for multiple things. For example:
+
+ print __p"Verb, to view", "View";
+ print __p"Noun, a view", "View";
+
+The above may be "View" entries in a menu, where View->Source and File->View
+are different forms of "View", and likely need to be translated differently.
+
+A typical usage are GUI programs. Imagine a program with a main
+menu and the notorious "Open" entry in the "File" menu. Now imagine,
+there is another menu entry Preferences->Advanced->Policy where you have
+a choice between the alternatives "Open" and "Closed". In English, "Open"
+is the adequate text at both places. In other languages, it is very
+likely that you need two different translations. Therefore, you would
+now write:
+
+ __p"File|", "Open";
+ __p"Preferences|Advanced|Policy", "Open";
+
+In English, or if no translation can be found, the second argument
+(MSGID) is returned.
+
+This function was introduced in libintl-perl 1.17.
+
+=item B<__px MSGCTXT, MSGID, VAR1 =E<gt> VAL1, VAR2 =E<gt> VAL2, ...>
+
+Like __p(), but supports variable substitution in the string, like __x().
+
+ print __px("Verb, to view", "View {file}", file => $filename);
+
+See __p() and __x() for more details.
+
+This function was introduced in libintl-perl 1.17.
+
+=item B<__np MSGCTXT, MSGID, MSGID_PLURAL, COUNT>
+
+This adds context to plural calls. It should not be needed very often,
+if at all, due to the __nx() function. The type of variable substitution
+used in other gettext libraries (using sprintf-like sybols, like %s or %1)
+sometimes required context. For a (bad) example of this:
+
+ printf (__np("[count] files have been deleted",
+ "One file has been deleted.\n",
+ "%s files have been deleted.\n",
+ $num_files),
+ $num_files);
+
+NOTE: The above usage is discouraged. Just use the __nx() call, which
+provides inline context via the key names.
+
+This function was introduced in libintl-perl 1.17.
+
+=item B<__npx MSGCTXT, MSGID, MSGID_PLURAL, COUNT, VAR1 =E<gt> VAL1, VAR2 =E<gt> VAL2, ...>
+
+This is provided for comleteness. It adds the variable interpolation
+into the string to the previous method, __np().
+
+It's usage would be like so:
+
+ print __nx ("Files being permenantly removed",
+ "One file has been deleted.\n",
+ "{count} files have been deleted.\n",
+ $num_files,
+ count => $num_files);
+
+I cannot think of any situations requiring this, but we can easily
+support it, so here it is.
+
+This function was introduced in libintl-perl 1.17.
+
+=item B<N__ (ARG1, ARG2, ...)>
+
+A no-op function that simply echoes its arguments to the caller. Take
+the following piece of Perl:
+
+ my @options = (
+ "Open",
+ "Save",
+ "Save As",
+ );
+
+ ...
+
+ my $option = $options[1];
+
+Now say that you want to have this translatable. You could sometimes
+simply do:
+
+ my @options = (
+ __"Open",
+ __"Save",
+ __"Save As",
+ );
+
+ ...
+
+ my $option = $options[1];
+
+But often times this will not be what you want, for example when you
+also need the unmodified original string. Sometimes it may not even
+work, for example, when the preferred user language is not yet
+determined at the time that the list is initialized.
+
+In these cases you would write:
+
+ my @options = (
+ N__"Open",
+ N__"Save",
+ N__"Save As",
+ );
+
+ ...
+
+ my $option = __($options[1]);
+ # or: my $option = dgettext ('my-domain', $options[1]);
+
+Now all the strings in C<@options> will be left alone, since N__()
+returns its arguments (one ore more) unmodified. Nevertheless, the
+string extractor will be able to recognize the strings as being
+translatable. And you can still get the translation later by passing
+the variable instead of the string to one of the above translation
+functions.
+
+=item B<N__n (MSGID, MSGID_PLURAL, COUNT)>
+
+Does exactly the same as N__(). You will use this form if you have
+to mark the strings as having plural forms.
+
+=item B<N__p (MSGCTXT, MSGID)>
+
+Marks B<MSGID> as N__() does, but in the context B<MSGCTXT>.
+
+=item B<N__np (MSGCTXT, MSGID, MSGID_PLURAL, COUNT)>
+
+Marks B<MSGID> as N__n() does, but in the context B<MSGCTXT>.
+=back
+
+=head1 EXPORTED VARIABLES
+
+The module exports several variables into your namespace:
+
+=over 4
+
+=item B<%__>
+
+A tied hash. Its keys are your original messages, the values are
+their translations:
+
+ my $title = "<h1>$__{'My Homepage'}</h1>";
+
+This is much better for your translation team than
+
+ my $title = __"<h1>My Homepage</h1>";
+
+In the second case the HTML code will make it into the translation
+database and your translators have to be aware of HTML syntax when
+translating strings.
+
+B<Warning:> Do I<not> use this hash outside of double-quoted strings!
+The code in the tied hash object relies on the correct working of
+the function caller() (see "perldoc -f caller"), and this function
+will report incorrect results if the tied hash value is the argument
+to a function from another package, for example:
+
+ my $result = Other::Package::do_it ($__{'Some string'});
+
+The tied hash code will see "Other::Package" as the calling package,
+instead of your own package. Consequently it will look up the message
+in the wrong text domain. There is no workaround for this bug.
+Therefore:
+
+Never use the tied hash interpolated strings!
+
+=item B<$__>
+
+A reference to C<%__>, in case you prefer:
+
+ my $title = "<h1>$__->{'My Homepage'}</h1>";
+
+=back
+
+=head1 PERFORMANCE
+
+Message translation can be a time-consuming task. Take this little
+example:
+
+ 1: use Locale::TextDomain ('my-domain');
+ 2: use POSIX (:locale_h);
+ 3:
+ 4: setlocale (LC_ALL, '');
+ 5: print __"Hello world!\n";
+
+This will usually be quite fast, but in pathological cases it may
+run for several seconds. A worst-case scenario would be a
+Chinese user at a terminal that understands the codeset Big5-HKSCS.
+Your translator for Chinese has however chosen to encode the translations
+in the codeset EUC-TW.
+
+What will happen at run-time? First, the library will search and load a
+(maybe large) message catalog for your textdomain 'my-domain'. Then
+it will look up the translation for "Hello world!\n", it will find that
+it is encoded in EUC-TW. Since that differs from the output codeset
+Big5-HKSCS, it will first load a conversion table containing several
+ten-thousands of codepoints for EUC-TW, then it does the same with
+the smaller, but still very large conversion table for Big5-HKSCS,
+it will convert the translation on the fly from EUC-TW into Big5-HKSCS,
+and finally it will return the converted translation.
+
+A worst-case scenario but realistic. And for these five lines of codes,
+there is not much you can do to make it any faster. You should understand,
+however, I<when> the different steps will take place, so that you can
+arrange your code for it.
+
+You have learned in the section L</DESCRIPTION> that line 1 is
+responsible for locating your message database. However, the
+use() will do nothing more than remembering your settings. It will
+not search any directories, it will not load any catalogs or
+conversion tables.
+
+Somewhere in your code you will always have a call to
+POSIX::setlocale(), and the performance of this call may be time-consuming,
+depending on the architecture of your system. On some systems, this
+will consume very little time, on others it will only consume a
+considerable amount of time for the first call, and on others it may
+always be time-consuming. Since you cannot know, how setlocale() is
+implemented on the target system, you should reduce the calls to
+setlocale() to a minimum.
+
+Line 5 requests the translation for your string. Only now, the library
+will actually load the message catalog, and only now will it load
+eventually needed conversion tables. And from now on, all this information
+will be cached in memory. This strategy is used throughout libintl-perl,
+and you may describe it as 'load-on-first-access'. Getting the next
+translation will consume very little resources.
+
+However, although the translation retrieval is somewhat obfuscated
+by an operator-like function call, it is still a function call, and in
+fact it even involves a chain of function calls. Consequently, the
+following example is probably bad practice:
+
+ foreach (1 .. 100_000) {
+ print __"Hello world!\n";
+ }
+
+This example introduces a lot of overhead into your program. Better
+do this:
+
+ my $string = __"Hello world!\n";
+ foreach (1 .. 100_000) {
+ print $string;
+ }
+
+The translation will never change, there is no need to retrieve it
+over and over again. Although libintl-perl will of course cache
+the translation read from the file system, you can still avoid the
+overhead for the function calls.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::Messages(3pm), Locale::gettext_pp(3pm), perl(1),
+gettext(1), gettext(3)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/Util.pm b/tp/maintain/lib/libintl-perl/lib/Locale/Util.pm
new file mode 100644
index 0000000..44097d7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/Util.pm
@@ -0,0 +1,1208 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: Util.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Portable methods for locale handling.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::Util;
+
+use strict;
+
+use constant DEBUG => 0;
+
+use base qw (Exporter);
+
+use vars qw (@EXPORT_OK);
+
+@EXPORT_OK = qw (parse_http_accept_language
+ parse_http_accept_charset
+ set_locale set_locale_cache get_locale_cache
+ web_set_locale);
+
+# The following list maps languages to a rough guess of the country that
+# is most likely to be meant if no locale info for the country alone is
+# found. I have assembled the list to the best of my knowledge, preferring
+# the country that has the language as its official language, and in doubt
+# listing the country that has the most speakers of that language. Corrections
+# are welcome.
+use constant LANG2COUNTRY => {
+ aa => 'ET', # Afar => Ethiopia
+ ab => 'AB', # Abkhazian => Georgia
+ # ae => '??', # Avestan => ??, Iran?
+ af => 'za', # Afrikaans => South Africa
+ am => 'ET', # Amharic => Ethiopia
+ ar => 'EG', # Arabic => Egypt
+ as => 'IN', # Assamese => India
+ ay => 'BO', # Aymara => Bolivia
+ az => 'AZ', # Azerbaijani => Azerbaijan
+ ba => 'RU', # Bashkir => Russia
+ be => 'BY', # Belarusian => Belarus
+ bg => 'BG', # Bulgarian => Bulgaria
+ bh => 'IN', # Bihari => India
+ bi => 'VU', # Bislama => Vanuatu
+ bn => 'BD', # Bengali => Bangladesh
+ bo => 'CN', # Tibetan => China
+ br => 'FR', # Breton => France
+ bs => 'BA', # Bosnian => Bosnia and Herzegovina
+ ca => 'ES', # Catalan => Spain
+ ce => 'RU', # Chechen => Russia
+ ch => '??', # Chamorro => Guam (or mp?)
+ co => 'FR', # Corsican => France
+ cs => 'CZ', # Czech => Czech Republic
+ cu => 'BG', # Church Slavic => Bulgaria
+ cv => 'RU', # Chuvash => Russia
+ cy => 'GB', # Welsh => United Kingdom
+ da => 'DK', # Danish => Denmark
+ de => 'DE', # German => Germany
+ dz => 'BT', # Dzongkha => Bhutan
+ en => 'US', # English => United States
+ fa => 'IR', # Iran, Islamic Republic of
+ fi => 'FI', # Finnish => Finland
+ fj => 'FJ', # Fijian => Fiji
+ fo => 'FO', # Faeroese => Faroe Islands
+ fr => 'FR', # French => France
+ fy => 'FY', # Frisian => Netherlands
+ ga => 'IE', # Irish => Ireland
+ gd => 'GB', # Gaelic (Scots) => United Kingdom
+ gl => 'ES', # Gallegan => Spain
+ gn => 'PY', # Guarani => Paraguay
+ gu => 'IN', # Gujarati => IN
+ gv => 'GB', # Manx => United Kingdom
+ ha => 'NE', # Hausa => Niger (ng?)
+ he => 'IL', # Hebrew => Israel
+ hi => 'IN', # Hindi => India
+ ho => 'PG', # Hiri Motu => Papua New Guinea
+ hr => 'HR', # Croatian
+ hu => 'HU', # Hungarian => Hungary
+ hy => 'AM', # Armenian => Armenia
+ hz => 'NA', # Herero => Namibia
+ # ia => '??', # Interlingua (aka "latino sine flexione") => ??
+ id => 'ID', # Indonesian => Indonesia
+ # ie => '??', # Interlingue => ???
+ ik => 'US', # Inupiaq => United States
+ is => 'IS', # Icelandic => Iceland
+ it => 'IT', # Italian => Italy
+ iu => 'CA', # Inuktitut => Canada
+ iw => 'IL', # Hebrew => Israel
+ ja => 'JP', # Japanese => Japan
+ jw => 'ID', # Javanese => Indonesia
+ ka => 'GE', # Georgian => Georgia
+ ki => 'KE', # Kikuyu => Kenya
+ kj => 'AO', # Kuanyama => Angola (na?)
+ kk => 'KZ', # Kazakh => Kazakhstan
+ kl => 'GL', # Kalaallisut => Greenland
+ km => 'KH', # Khmer => Cambodia
+ kn => 'IN', # Kannada => India
+ ko => 'KR', # Korean => Korea, Republic of (more speakers than North Korea)
+ ks => 'IN', # Kashmiri => India
+ ku => 'TR', # Kurdish => Turkey
+ kv => 'RU', # Komi => Russia
+ kw => 'GB', # Cornish => United Kingdom
+ ky => 'KG', # Kirghyz => Kyrgyzstan
+ la => 'VA', # Latin => Holy See (Vatican City State)
+ lb => 'LU', # Letzeburgesch => Luxembourg
+ ln => 'CG', # Lingala => Republic of the Congo (cd?)
+ lo => 'LA', # Lao => Lao People's Democratic Republic
+ lt => 'LT', # Lithuanian => Lithuania
+ lv => 'LV', # Latvian => Latvia
+ mg => 'MG', # Malagasy => Madagascar
+ mh => 'MH', # Marshall => Marshall Islands
+ mi => 'NZ', # Maori => New Zealand
+ mk => 'MK', # Macedonian => Macedonia, the Former Yugoslav Republic of
+ ml => 'IN', # Malayalam => India
+ mn => 'MN', # Mongolian => Mongolia
+ mr => 'IN', # Marathi => India
+ ms => 'MY', # Malay => Malaysia (FIXME: not really sure ...)
+ mt => 'MT', # Maltese => Malta
+ my => 'MM', # Burmese => Myanmar
+ na => 'NR', # Nauru => Nauru
+ nb => 'NO', # Norwegian Bokmål => Norway
+ nd => 'ZA', # Ndebele, North => South Africa
+ ne => 'NP', # Nepali => Nepal
+ ng => 'NA', # Ndonga => Namibia
+ nl => 'NL', # Dutch => Netherlands
+ nn => 'NO', # Norwegian Nynorsk => Norway
+ no => 'NO', # Norwegian => Norway
+ nr => 'ZA', # Ndebele, South => South Africa
+ nv => 'US', # Navajo => United States
+ ny => 'MW', # Chichewa; Nyanja => Malawi
+ oc => 'FR', # Occitan (post 1500) => France
+ om => 'ET', # Oromo => Ethiopia
+ or => 'IN', # Oriya => India
+ os => 'RU', # Ossetian; Ossetic => Russia (FIXME: Or Georgia?)
+ pa => 'IN', # Panjabi => India
+ pi => 'IN', # Pali => India (FIXME: Or Thailand, Sri Lanka, Myanmar,
+ # Cambodia)
+ pl => 'PL', # Polish => Poland
+ ps => 'PK', # Pushto => Pakistan
+ pt => 'PT', # Portuguese => Portugal (following our rules this should
+ # actually be Brazil but that would be to unrealistic,
+ # people from Brazil set their locale to pt_BR).
+ qu => 'PE', # Quechua => Peru
+ rm => 'CH', # Rhaeto-Romance => Switzerland
+ rn => 'RW', # Rundi => Rwanda
+ ro => 'RO', # Romanian => Romania
+ ru => 'RU', # Russian => Russia
+ rw => 'RW', # Kinyarwanda => Rwanda
+ sa => 'IN', # Sanskrit => India
+ sc => 'IT', # Sardinian => Italy
+ sd => 'IN', # Sindhi => India
+ se => 'SE', # Sami => Sweden (Totally unsure here. The Sami languages
+ # are also spoken in Norway, Finland and Russia, but the
+ # largest part of the area seems to be in Sweden.
+ sg => '??', # Sango => Central African Republic
+ si => 'LK', # Sinhalese => Sri Lanka
+ sk => 'SK', # Slovakian => Slovakia
+ sl => 'SL', # Slovenian => Slovenia
+ sm => 'WS', # Samoan => Samoa
+ sh => 'ZW', # Shona => Zimbabwe (FIXME: Rather Mozambique?)
+ so => 'SO', # Somali => Somalia
+ sq => 'AL', # Albanian => Albania
+ sr => 'YU', # Serbian => Yugoslavia
+ ss => '??', # Swati => Swaziland (za?)
+ st => 'LS', # Sotho => Lesotho
+ su => 'IN', # Sundanese => Indonesia
+ sv => 'SE', # Swedish => Sweden
+ sw => 'TZ', # Suaheli => Tanzania, United Republic of
+ ta => 'LK', # Tamil => Sri Lanka
+ te => 'IN', # Telugu => India
+ tg => 'TJ', # Tajik => Tajikistan
+ th => 'TH', # Thai => Thailand
+ ti => 'ER', # Tigrinya => Eritrea
+ tk => 'TM', # Turkmen => Turkmenistan
+ tl => 'PH', # Tagalog => Philippines
+ tn => 'BW', # Tswana => Botswana
+ to => 'TO', # Tonga => Tonga
+ tr => 'TR', # Turkish => Turkish
+ tt => 'RU', # Tatar => Russia
+ tw => 'GH', # Twi => Ghana
+ ug => 'CN', # Uighur => China
+ uk => 'UA', # Ukrainian => Ukraine
+ ur => 'PK', # Urdu => Pakistan
+ uz => 'UZ', # Uzbek => Uzbekistan
+ vi => 'VN', # Vietnamese => Vietnam
+ # vo => '??', # Volapuk => Nowhere
+ wo => 'SN', # Wolof => Senegal
+ xh => 'ZA', # Xhosa => South Africa
+ yi => 'IL', # Yiddish => Israel (FIXME: Rather United States?)
+ yo => 'NG', # Yoruba => Nigeria
+ za => 'CN', # Zhuang => China
+ zh => 'CN', # Chinese => China
+ zu => 'ZA', # Zulu => South Africa
+};
+
+use constant WIN32LANGUAGE => {
+ aa => "Afar",
+ ab => "Abkhazian",
+ ae => "Avestan",
+ af => "Afrikaans",
+ am => "Amharic",
+ ar => "Arabic",
+ as => "Assamese",
+ ay => "Aymara",
+ az => "Azerbaijani",
+ ba => "Bashkir",
+ be => "Belarusian",
+ bg => "Bulgarian",
+ bh => "Bihari",
+ bi => "Bislama",
+ bn => "Bengali",
+ bo => "Tibetan",
+ br => "Breton",
+ bs => "Bosnian",
+ ca => "Catalan",
+ ce => "Chechen",
+ ch => "Chamorro",
+ co => "Corsican",
+ cs => "Czech",
+ cu => "Church Slavic",
+ cv => "Chuvash",
+ cy => "Welsh",
+ da => "Danish",
+ de => "German",
+ dz => "Dzongkha",
+ el => "Greek",
+ en => "English",
+ eo => "Esperanto",
+ es => "Spanish",
+ et => "Estonian",
+ eu => "Basque",
+ fa => "Persian",
+ fi => "Finnish",
+ fj => "Fijian",
+ fo => "Faeroese",
+ fr => "French",
+ fy => "Frisian",
+ ga => "Irish",
+ gd => "Gaelic (Scots)",
+ gl => "Gallegan",
+ gn => "Guarani",
+ gu => "Gujarati",
+ gv => "Manx",
+ ha => "Hausa",
+ he => "Hebrew",
+ hi => "Hindi",
+ ho => "Hiri Motu",
+ hr => "Croatian",
+ hu => "Hungarian",
+ hy => "Armenian",
+ hz => "Herero",
+ ia => "Interlingua",
+ id => "Indonesian",
+ ie => "Interlingue",
+ ik => "Inupiaq",
+ is => "Icelandic",
+ it => "Italian",
+ iu => "Inuktitut",
+ ja => "Japanese",
+ jw => "Javanese",
+ ka => "Georgian",
+ ki => "Kikuyu",
+ kj => "Kuanyama",
+ kk => "Kazakh",
+ kl => "Kalaallisut",
+ km => "Khmer",
+ kn => "Kannada",
+ ko => "Korean",
+ ks => "Kashmiri",
+ ku => "Kurdish",
+ kv => "Komi",
+ kw => "Cornish",
+ ky => "Kirghiz",
+ la => "Latin",
+ lb => "Letzeburgesch",
+ ln => "Lingala",
+ lo => "Lao",
+ lt => "Lithuanian",
+ lv => "Latvian",
+ mg => "Malagasy",
+ mh => "Marshall",
+ mi => "Maori",
+ # Sorry, lads, but that is what M$ calls your language ...
+ mk => "FYRO Macedonian",
+ ml => "Malayalam",
+ mn => "Mongolian",
+ mo => "Moldavian",
+ mr => "Marathi",
+ ms => "Malay",
+ mt => "Maltese",
+ my => "Burmese",
+ na => "Nauru",
+ nb => "Norwegian (Bokmål)",
+ nd => "Ndebele, North",
+ ne => "Nepali",
+ ng => "Ndonga",
+ nl => "Dutch",
+ nn => "Norwegian-Nynorsk",
+ no => "Norwegian-Nynorsk",
+ nr => "Ndebele, South",
+ nv => "Navajo",
+ ny => "Chichewa",
+ oc => "Occitan (post 1500)",
+ om => "Oromo",
+ or => "Oriya",
+ os => "Ossetian",
+ pa => "Panjabi",
+ pi => "Pali",
+ pl => "Polish",
+ ps => "Pushto",
+ pt => "Portuguese",
+ qu => "Quechua",
+ rm => "Rhaeto-Romance",
+ rn => "Rundi",
+ ro => "Romanian",
+ ru => "Russian",
+ rw => "Kinyarwanda",
+ sa => "Sanskrit",
+ sc => "Sardinian",
+ sd => "Sindhi",
+ se => "Sami",
+ sg => "Sango",
+ si => "Sinhalese",
+ sk => "Slovak",
+ sl => "Slovenian",
+ sm => "Samoan",
+ sn => "Shona",
+ so => "Somali",
+ sq => "Albanian",
+ sr => "Serbian",
+ ss => "Swati",
+ st => "Sotho",
+ su => "Sundanese",
+ sv => "Swedish",
+ sw => "Swahili",
+ ta => "Tamil",
+ te => "Telugu",
+ tg => "Tajik",
+ th => "Thai",
+ ti => "Tigrinya",
+ tk => "Turkmen",
+ tl => "Tagalog",
+ tn => "Tswana",
+ to => "Tonga",
+ tr => "Turkish",
+ ts => "Tsonga",
+ tt => "Tatar",
+ tw => "Twi",
+ ug => "Uighur",
+ uk => "Ukrainian",
+ ur => "Urdu",
+ uz => "Uzbek",
+ vi => "Vietnamese",
+ vo => "Volapuk",
+ wo => "Wolof",
+ xh => "Xhosa",
+ yi => "Yiddish",
+ yo => "Yoruba",
+ za => "Zhuang",
+ zh => "Chinese",
+ zu => "Zulu",
+};
+
+use constant WIN32COUNTRY => {
+ ad => "Andorra",
+ ae => "United Arab Emirates",
+ af => "Afghanistan",
+ ag => "Antigua and Barbuda",
+ ai => "Anguilla",
+ al => "Albania",
+ am => "Armenia",
+ an => "Netherlands Antilles",
+ ao => "Angola",
+ aq => "Antarctica",
+ ar => "Argentina",
+ as => "American Samoa",
+ at => "Austria",
+ au => "Australia",
+ aw => "Aruba",
+ ax => "Aland Islands",
+ az => "Azerbaijan",
+ ba => "Bosnia and Herzegovina",
+ bb => "Barbados",
+ bd => "Bangladesh",
+ be => "Belgium",
+ bf => "Burkina Faso",
+ bg => "Bulgaria",
+ bh => "Bahrain",
+ bi => "Burundi",
+ bj => "Benin",
+ bm => "Bermuda",
+ bn => "Brunei Darussalam",
+ bo => "Bolivia",
+ br => "Brazil",
+ bs => "Bahamas",
+ bt => "Bhutan",
+ bv => "Bouvet Island",
+ bw => "Botswana",
+ by => "Belarus",
+ bz => "Belize",
+ ca => "Canada",
+ cc => "Cocos (Keeling) Islands",
+ cd => "Congo, The Democratic Republic of the",
+ cf => "Central African Republic",
+ cg => "Congo",
+ ch => "Switzerland",
+ ci => "Cote D'Ivoire",
+ ck => "Cook Islands",
+ cl => "Chile",
+ cm => "Cameroon",
+ cn => "China",
+ co => "Colombia",
+ cr => "Costa Rica",
+ cs => "Serbia and Montenegro",
+ cu => "Cuba",
+ cv => "Cape Verde",
+ cx => "Christmas Island",
+ cy => "Cyprus",
+ cz => "Czech Republic",
+ de => "Germany",
+ dj => "Djibouti",
+ dk => "Denmark",
+ dm => "Dominica",
+ do => "Dominican Republic",
+ dz => "Algeria",
+ ec => "Ecuador",
+ ee => "Estonia",
+ eg => "Egypt",
+ eh => "Western Sahara",
+ er => "Eritrea",
+ es => "Spain",
+ et => "Ethiopia",
+ fi => "Finland",
+ fj => "Fiji",
+ fk => "Falkland Islands (Malvinas)",
+ fm => "Micronesia, Federated States of",
+ fo => "Faroe Islands",
+ fr => "France",
+ fx => "France, Metropolitan",
+ ga => "Gabon",
+ gb => "United Kingdom",
+ gd => "Grenada",
+ ge => "Georgia",
+ gf => "French Guiana",
+ gh => "Ghana",
+ gi => "Gibraltar",
+ gl => "Greenland",
+ gm => "Gambia",
+ gn => "Guinea",
+ gp => "Guadeloupe",
+ gq => "Equatorial Guinea",
+ gr => "Greece",
+ gs => "South Georgia and the South Sandwich Islands",
+ gt => "Guatemala",
+ gu => "Guam",
+ gw => "Guinea-Bissau",
+ gy => "Guyana",
+ hk => "Hong Kong",
+ hm => "Heard Island and McDonald Islands",
+ hn => "Honduras",
+ hr => "Croatia",
+ ht => "Haiti",
+ hu => "Hungary",
+ id => "Indonesia",
+ ie => "Ireland",
+ il => "Israel",
+ in => "India",
+ io => "British Indian Ocean Territory",
+ iq => "Iraq",
+ ir => "Iran",
+ is => "Iceland",
+ it => "Italy",
+ jm => "Jamaica",
+ jo => "Jordan",
+ jp => "Japan",
+ ke => "Kenya",
+ kg => "Kyrgyzstan",
+ kh => "Cambodia",
+ ki => "Kiribati",
+ km => "Comoros",
+ kn => "Saint Kitts and Nevis",
+ kp => "North-Korea",
+ kr => "Korea",
+ kw => "Kuwait",
+ ky => "Cayman Islands",
+ kz => "Kazakhstan",
+ la => "Laos",
+ lb => "Lebanon",
+ lc => "Saint Lucia",
+ li => "Liechtenstein",
+ lk => "Sri Lanka",
+ lr => "Liberia",
+ ls => "Lesotho",
+ lt => "Lithuania",
+ lu => "Luxembourg",
+ lv => "Latvia",
+ ly => "Libyan",
+ ma => "Morocco",
+ mc => "Monaco",
+ md => "Moldova",
+ mg => "Madagascar",
+ mh => "Marshall Islands",
+ mk => "Former Yugoslav Republic of Macedonia",
+ ml => "Mali",
+ mm => "Myanmar",
+ mn => "Mongolia",
+ mo => "Macao",
+ mp => "Northern Mariana Islands",
+ mq => "Martinique",
+ mr => "Mauritania",
+ ms => "Montserrat",
+ mt => "Malta",
+ mu => "Mauritius",
+ mv => "Maldives",
+ mw => "Malawi",
+ mx => "Mexico",
+ my => "Malaysia",
+ mz => "Mozambique",
+ na => "Namibia",
+ nc => "New Caledonia",
+ ne => "Niger",
+ nf => "Norfolk Island",
+ ng => "Nigeria",
+ ni => "Nicaragua",
+ nl => "Netherlands",
+ no => "Norway",
+ np => "Nepal",
+ nr => "Nauru",
+ nu => "Niue",
+ nz => "New Zealand",
+ om => "Oman",
+ pa => "Panama",
+ pe => "Peru",
+ pf => "French Polynesia",
+ pg => "Papua New Guinea",
+ ph => "Philippines",
+ pk => "Pakistan",
+ pl => "Poland",
+ pm => "Saint Pierre and Miquelon",
+ pn => "Pitcairn",
+ pr => "Puerto Rico",
+ ps => "Palestinian Territory, Occupied",
+ pt => "Portugal",
+ pw => "Palau",
+ py => "Paraguay",
+ qa => "Qatar",
+ re => "Reunion",
+ ro => "Romania",
+ ru => "Russian Federation",
+ rw => "Rwanda",
+ sa => "Saudi Arabia",
+ sb => "Solomon Islands",
+ sc => "Seychelles",
+ sd => "Sudan",
+ se => "Sweden",
+ sg => "Singapore",
+ sh => "Saint Helena",
+ si => "Slovenia",
+ sj => "Svalbard and Jan Mayen",
+ sk => "Slovakia",
+ sl => "Sierra Leone",
+ sm => "San Marino",
+ sn => "Senegal",
+ so => "Somalia",
+ sr => "Suriname",
+ st => "Sao Tome and Principe",
+ sv => "El Salvador",
+ sy => "Syrian Arab Republic",
+ sz => "Swaziland",
+ tc => "Turks and Caicos Islands",
+ td => "Chad",
+ tf => "French Southern Territories",
+ tg => "Togo",
+ th => "Thailand",
+ tj => "Tajikistan",
+ tk => "Tokelau",
+ tl => "Timor-Leste",
+ tm => "Turkmenistan",
+ tn => "Tunisia",
+ to => "Tonga",
+ tr => "Turkey",
+ tt => "Trinidad and Tobago",
+ tv => "Tuvalu",
+ tw => "Taiwan, Province of China",
+ tz => "Tanzania, United Republic of",
+ ua => "Ukraine",
+ ug => "Uganda",
+ um => "United States Minor Outlying Islands",
+ us => "United States",
+ uy => "Uruguay",
+ uz => "Uzbekistan",
+ va => "Holy See (Vatican City State)",
+ vc => "Saint Vincent and the Grenadines",
+ ve => "Venezuela",
+ vg => "Virgin Islands, British",
+ vi => "Virgin Islands, U.S.",
+ vn => "Vietnam",
+ vu => "Vanuatu",
+ wf => "Wallis and Futuna",
+ ws => "Samoa",
+ ye => "Yemen",
+ yt => "Mayotte",
+ za => "South Africa",
+ zm => "Zambia",
+ zw => "Zimbabwe",
+};
+
+my $locale_cache;
+
+sub parse_http_accept_language {
+ my ($string) = @_;
+
+ my @tokens = split / *, */, $string;
+
+ my %retval;
+ foreach my $token (@tokens) {
+ my $quality = 1;
+ # This RE is more forgiving than the standard. It accepts
+ # values greater than 1.0 and with more fractional digits
+ # than 3.
+ if ($token =~ s/ *; *q *= *([0-9]+(?:\.([0-9]+))?)$//) {
+ $quality = $1;
+ }
+ $retval{$token} = $quality;
+ }
+
+ # RFC 2616 only allows 1-8 characters for language and country
+ # but we are more forgiving.
+ return grep {
+ /^[A-Za-z]+(?:-[A-Za-z]+)?$/
+ } map {
+ $_ = 'C' if $_ eq '*'; $_
+ } sort {
+ $retval{$b} <=> $retval{$a}
+ } keys %retval;
+}
+
+sub parse_http_accept_charset {
+ my ($string) = @_;
+
+ my @tokens = split / *, */, $string;
+
+ my %retval;
+ foreach my $token (@tokens) {
+ my $quality = 1;
+ # This RE is more forgiving than the standard. It accepts
+ # values greater than 1.0 and with more fractional digits
+ # than 3.
+ if ($token =~ s/ *; *q *= *([0-9]+(?:\.([0-9]+))?)$//) {
+ $quality = $1;
+ }
+ $retval{$token} = $quality;
+ }
+
+ return grep {
+ # This is really allowed in character set names ...
+ /^[-!\#\$\%\&\'\+\.0-9A-Z_\`a-z\|\~]+$/
+ } map {
+ $_ = undef if $_ eq '*'; $_
+ } sort {
+ $retval{$b} <=> $retval{$a}
+ } keys %retval;
+}
+
+sub set_locale {
+ my ($category, $language, $country, $charset) = @_;
+
+ require POSIX;
+
+ $country = '' unless defined $country;
+ $charset = '' unless defined $charset;
+
+ my $set_locale;
+ # Look up the cache first.
+ if (my $retval = $locale_cache->{$language}->{$country}->{$charset}) {
+ my ($locale, $country) = @$retval;
+ POSIX::setlocale ($category, $locale);
+ return @$retval;
+ }
+
+ # Initialize the cache with the undefined value so that we can do
+ # error returns without setting it.
+ $locale_cache->{$language}->{$country}->{$charset} = undef;
+
+ my $windows = ($^O !~ /darwin/i && $^O =~ /win/i) ? 1 : 0;
+ if ($windows) {
+ return &__set_locale_windows;
+ }
+
+ my $set_language;
+ my $set_country;
+
+ # First we try to only use the language.
+ my @languages = ($language);
+ my @lc_languages = map { lc $_ } @languages;
+ my @uc_languages = map { uc $_ } @languages;
+ my %seen = ();
+
+ foreach my $language (@languages, @lc_languages, @uc_languages) {
+ next if $seen{$language}++;
+ warn "Trying lingua only setlocale '$language'.\n" if DEBUG;
+ my $result = POSIX::setlocale ($category, $language);
+ if ($result) {
+ $set_locale = $set_language = $result if $result;
+ last;
+ }
+ }
+
+ # Now try it with the country appended.
+ my @countries = length $country ? ($country) : ();
+ my @uc_countries = map { uc $_ } @countries;
+ my @lc_countries = map { uc $_ } @countries;
+ push @countries, @uc_countries, @lc_countries;
+
+ LINGUA: foreach my $language (@languages, @lc_languages, @uc_languages) {
+ my $count = 0;
+ my @guessed_countries = (LANG2COUNTRY->{lc $language},
+ lc LANG2COUNTRY->{lc $language},
+ uc LANG2COUNTRY->{lc $language});
+ foreach my $c (@countries, @guessed_countries) {
+ ++$count;
+ next unless defined $c && length $c;
+ my $try = $language . '_' . $c;
+ next if $seen{$try}++;
+ warn "Trying setlocale '$try'.\n" if DEBUG;
+ my $result = POSIX::setlocale ($category, $try);
+ if ($result) {
+ $set_locale = $result;
+ if ($count >= @countries) {
+ $set_country = $c;
+ } else {
+ $set_country = $country;
+ }
+
+ last LINGUA;
+ }
+ }
+ }
+
+ unless (length $charset) {
+ return unless defined $set_locale && length $set_locale;
+
+ $locale_cache->{$language}->{$country}->{$charset} =
+ [$set_locale, $set_country];
+ return wantarray ? ($set_locale, $set_country) : $set_locale;
+ }
+
+ my @charsets = ($charset);
+ my $cleaned = $charset;
+ push @charsets, $cleaned if $cleaned =~ s/-//g;
+ my @lc_charsets = map { lc $charset } @charsets;
+ my @uc_charsets = map { uc $charset } @charsets;
+ push @charsets, @lc_charsets, @uc_charsets;
+
+ %seen = ();
+ LINGUA2: foreach my $language (@languages,
+ @lc_languages, @uc_languages) {
+ my @guessed_countries = (LANG2COUNTRY->{lc $language},
+ lc LANG2COUNTRY->{lc $language},
+ uc LANG2COUNTRY->{lc $language});
+ my $count = 0;
+ foreach my $c (@countries, @guessed_countries) {
+ ++$count;
+ $c = '' unless defined $c && length $c;
+ my $country_try = $language;
+ $country_try .= (length $c) ? "_$c" : '';
+
+ foreach my $ch (@charsets, @lc_charsets, @uc_charsets) {
+ my $try = $country_try . '.' . $ch;
+ next if $seen{$try}++;
+ warn "Trying setlocale '$try'.\n" if DEBUG;
+
+ my $result = POSIX::setlocale ($category, $try);
+ if ($result) {
+ $set_locale = $result;
+ if ($count >= @countries) {
+ $set_country = $c;
+ } else {
+ $set_country = $country;
+ }
+
+ last LINGUA2;
+ }
+ }
+ }
+ }
+
+ return unless defined $set_locale && length $set_locale;
+
+ $locale_cache->{$language}->{$country}->{$charset} =
+ [$set_locale, $set_country];
+
+ return wantarray ? ($set_locale, $set_country) : $set_locale;
+}
+
+sub __set_locale_windows {
+ my ($category, $language, $country, $charset) = @_;
+
+ my $set_locale;
+
+ $country = '' unless defined $country;
+ $charset = '' unless defined $charset;
+
+ # First we try to only use the language.
+ my $long_language = WIN32LANGUAGE->{lc $language};
+ my @languages = ($long_language, $language);
+ my %seen = ();
+ foreach my $language (@languages) {
+ next if $seen{$language}++;
+ warn "Trying lingua only setlocale '$language'.\n" if DEBUG;
+ my $result = POSIX::setlocale ($category, $language);
+ if ($result) {
+ $set_locale = $result if $result;
+ last;
+ }
+ }
+
+ # Now try it with the country appended.
+ my $set_country;
+ if (length $country) {
+ COMBI: foreach my $language (@languages) {
+ # We do not need a fallback country here, because the "system" already
+ # provides the information.
+ my @short_countries = ($country);
+ my @countries = map {
+ WIN32COUNTRY->{lc $_}
+ } grep { length $_ } @short_countries;
+ foreach my $c (@countries) {
+ next unless defined $c && length $c;
+ my $try = $language . '_' . $c;
+ next if $seen{$try}++;
+ warn "Trying setlocale '$try'.\n" if DEBUG;
+ my $result = POSIX::setlocale ($category, $try);
+ if ($result) {
+ $set_locale = $result;
+ $set_country = $c;
+ last COMBI;
+ }
+ }
+ }
+ }
+
+ return unless defined $set_locale && length $set_locale;
+
+ # Apparently, there is no point in setting a charset. Even the new
+ # MS-DOS versions like 2000 or XP still have the concept of more or
+ # less fixed codepages. Switching to UTF-8 does not work.
+ $locale_cache->{$language}->{$country}->{$charset} =
+ [$set_locale, $set_country];
+ return wantarray ? ($set_locale, $set_country) : $set_locale;
+}
+
+sub get_locale_cache {
+ $locale_cache;
+}
+
+sub set_locale_cache {
+ if (ref $_[0] && 'HASH' eq ref $_[0]) {
+ $locale_cache = $_[0];
+ } else {
+ my %locale_cache = @_;
+ $locale_cache = \%locale_cache;
+ }
+}
+
+sub web_set_locale {
+ my ($accept_language, $accept_charset, $category, $available) = @_;
+
+ my %available;
+ if ($available) {
+ foreach (@$available) {
+ my $locale = $_;
+ $locale =~ s/[_\@\.].*//;
+ $available{lc $locale} = 1;
+ }
+ }
+
+ my @languages;
+ if (ref $accept_language && 'ARRAY' eq ref $accept_language) {
+ @languages = @$accept_language;
+ } else {
+ @languages = parse_http_accept_language $accept_language;
+ }
+
+ if ($available) {
+ my @all = @languages;
+ @languages = ();
+ foreach my $locale (@all) {
+ my $language = lc $locale;
+ $language =~ s/[_\@\.].*//;
+ push @languages, $locale if $available{$language};
+ }
+ }
+
+ my @charsets;
+ if (defined $accept_charset) {
+ if (ref $accept_charset && 'ARRAY' eq ref $accept_charset) {
+ @charsets = @$accept_charset;
+ } else {
+ @charsets = parse_http_accept_charset $accept_charset;
+ }
+ }
+
+ unless (defined $category) {
+ require POSIX;
+ $category = POSIX::LC_ALL();
+ }
+
+ my ($set_locale, $set_language, $set_country, $set_charset);
+ foreach my $lang (@languages) {
+ my ($language, $country) = split /-/, $lang, 2;
+
+ my ($locale, $country_used) =
+ set_locale ($category, $language, $country, $charsets[0]);
+
+ if (defined $locale) {
+ # If a country was specified, we have to check whether it
+ # was actually selected.
+ if (defined $country) {
+ if (!defined $country
+ || ($country ne $country_used)) {
+ $set_language = $language;
+ $set_locale = $locale;
+ $set_country = $country_used;
+ $set_charset = $charsets[0];
+ }
+ }
+
+ if (wantarray) {
+ return $locale, $lang, $country_used, $charsets[0];
+ } else {
+ return $locale;
+ }
+ }
+ }
+
+ if (defined $set_locale) {
+ if (wantarray) {
+ return $set_locale, $set_language, $set_country, $set_charset;
+ } else {
+ return $set_locale;
+ }
+ }
+
+ return;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::Util - Portable l10n and i10n functions
+
+=head1 SYNOPSIS
+
+ use Locale::Util;
+
+ my @linguas = parse_http_accept_language $ENV{HTTP_ACCEPT_LANGUAGE};
+
+ my @charsets = parse_http_accept_charset $ENV{HTTP_ACCEPT_CHARSET};
+
+ # Trie to set the locale to Brasilian Portuguese in UTF-8.
+ my $set_locale = set_locale LC_ALL, 'pt', 'BR', 'utf-8';
+
+ set_locale_cache $last_cache;
+
+ my $cache = get_locale_cache;
+
+ web_set_locale ($ENV{HTTP_ACCEPT_LANGUAGE}, $ENV_ACCEPT_CHARSET);
+
+ web_set_locale (['fr-BE', 'fr', 'it'], ['cp1252', 'utf-8']);
+
+=head1 DESCRIPTION
+
+This module provides portable functions dealing with localization
+(l10n) and internationalization(i10n). It doesn't export anything
+by default, you have to specify each function you need in the import
+list, or use the fully qualified name.
+
+The functions here have a focus on web development, although they
+are general enough to have them in the Locale:: namespace.
+
+This module is considered alpha code. The interface is not stable.
+Please contact the author if you want to use it in production code.
+
+This module was introduced in libintl-perl 1.17.
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item B<parse_http_accept_language STRING>
+
+Parses a string as passed in the HTTP header "Accept-Language".
+It returns a list of tokens sorted by the quality value, see RFC 2616
+for details.
+
+Example:
+
+ parse_http_accept ("fr-fr, fr; q=0.7, de; q=0.3");
+
+This means: Give me French for France with a quality value of 1.0
+(the maximum). Otherwise I will take any other French version
+(quality 0.7), German has a quality of 0.3 for me.
+
+The function will return a list of tokens in the order of their quality
+values, in this case "fr-fr", "fr" and "de".
+
+The function is more forgiving than RFC 2616. It accepts quality
+values greater than 1.0 and with more than 3 decimal places. It
+also accepts languages and country names with more than 8 characters.
+The language "*" is translated into "C".
+
+=item B<parse_http_accept_charset STRING>
+
+Parses a string as passed in the HTTP header "Accept-Charset".
+It returns a list of tokens sorted by the quality value, see RFC 2616
+for details.
+
+The special character set "*" (means all character sets) will be
+translated to the undefined value.
+
+=item B<set_locale CATEGORY, LANGUAGE[, COUNTRY, CHARSET]>
+
+Tries to set the user locale by means of POSIX::setlocale(). The latter
+function has the disadvantage, that its second argument (the locale
+description string) is completely non-standard and system-dependent.
+This function tries its best at guessing the system's notion of a locale
+dientifier, with the arguments supplied:
+
+=over 8
+
+=item B<CATEGORY>
+
+An integer argument for a valid locale category. These are the
+LC_* constants (LC_ALL, LC_CTIME, LC_COLLATE, ...) defined in both
+Locale::Messages(3pm) and POSIX(3pm).
+
+=item B<LANGUAGE>
+
+A 2-letter language identifier as per ISO 639. Case doesn't matter,
+but an unchanged version (ie. not lower-cased) of the language you
+provided will always be tried to.
+
+=item B<COUNTRY>
+
+A 2-letter language identifier as per ISO 639. Case doesn't matter,
+but an unchanged version (ie. not lower-cased) of the language you
+provided will always be tried to.
+
+This parameter is optional. If it is not defined, the function will
+try to guess an appropriate country, otherwise leave it to the
+operating system.
+
+=item B<CHARSET>
+
+A valid charset name. Valid means valid! The charset "utf8" is not
+valid (it is "utf-8"). Charset names that are accepted by the
+guessing algorithms in Encode(3pm) are also not necessarily valid.
+
+If the parameter is undefined, it is ignored. It is always ignored
+under Windows.
+
+=back
+
+The function tries to approach the desired locale in loops, refining
+it on every success. It will first try to set the language (for
+any country), then try to select the correct language, and finally
+try to select the correct charset.
+
+The return value is false in case of failure, or the return value
+of the underlying POSIX::setlocale() call in case of success.
+
+In array context, the function returns the country name
+that was passed in the successful
+call to POSIX::setlocale(). If this string is equal to the country
+name you passed as an argument, you can be reasonably sure that
+the settings for this country are really used. If it is not
+equal, the function has taken a guess at the country (it has a list
+of "default" countries for each language). It seems that under
+Windows, POSIX::setlocale() also succeeds, if you pass a country
+name that is actually not supported. Therefore, the information
+is not completely reliable.
+
+Please note that this function is intended for server processes
+(especially web applications) that need to switch in a portable
+way to a certain locale. It is B<not> the recommended way to set
+the program locale for a regular application. In a regular application
+you should do the following:
+
+ use POSIX qw (setlocale LC_ALL);
+ setlocale LC_ALL, '';
+
+The empty string as the second argument means, that the system
+should switch to the user's default locale.
+
+=item B<get_locale_cache>
+
+The function set_locale() is potentially expansive, especially when
+it fails, because it can try a lot of different combinations, and
+the system may have to load a lot of locale definitions from its
+internal database.
+
+In order to speed up things, results are internally cached in a
+hash, keys are the languages, subkeys countries, subsubkeys the
+charsets. You can get a reference to this hash with get_locale_cache().
+
+The function cannot fail.
+
+=item B<set_locale_cache HASH>
+
+Sets the internal cache. You can either pass a hash or a hash reference.
+The function will use this as its cache, discarding its old cache.
+This allows you to keep the hash persistent.
+
+The function cannot fail.
+
+=item B<web_set_locale (ACCEPT_LANGUAGE, ACCEPT_CHARSET, CATEGORY,
+ AVAILABLE)>
+
+Try to change the locale to the settings described by ACCEPT_LANGUAGE
+and ACCEPT_CHARSET. For each argument you can either pass a string
+as in the corresponding http header, or a reference to an array
+of language resp. charset identifiers.
+
+Currently only the first charset passed is used as an argument.
+You are strongly encouraged to pass a hard-coded value here, so
+that you have control about your output.
+
+The argument B<CATEGORY> specifies the category (one of the LC_*
+constants as defined in Locale::Messages(3pm) or in POSIX(3pm)).
+The category defaults to LC_ALL.
+
+You can pass an optional reference to a list of locales in
+XPG4 format that are available in your application. This is
+useful if you know which languages are supported by your application.
+In fact, only the language part of the values in the list are
+considered (for example for "en_US", only "en" is used). The
+country or other parts are ignored.
+
+The function returns the return value of the underlying set_locale()
+call, or false on failure.
+
+The function returns false on failure. On success it returns the
+return value of the underlying set_locale() call. This value can
+be used directly in subsequent calls to POSIX::setlocale(). In
+array context, it additionally returns the identifiers for the language,
+the country, and the charset actually used.
+
+=back
+
+=head1 BUGS
+
+The function set_locale() probably fails to guess the correct locale
+identifier on a lot of systems. If you have found such a case,
+please submit it as a bug report.
+
+The bug tracking system for this packags is at
+http://rt.cpan.org/NoAuth/Bugs.html?libintl-perl
+
+Please note that this module is considered alpha code, and the interface
+is not stable. Please contact the author, if you want to use it in
+production code.
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+POSIX(3pm), perl(1)
+
+=cut
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/gettext_pp.pm b/tp/maintain/lib/libintl-perl/lib/Locale/gettext_pp.pm
new file mode 100755
index 0000000..584bd5d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/gettext_pp.pm
@@ -0,0 +1,1031 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: gettext_pp.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Pure Perl implementation of Uniforum message translation.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+package Locale::gettext_pp;
+
+use strict;
+
+require 5.004;
+
+use vars qw ($__gettext_pp_default_dir
+ $__gettext_pp_textdomain
+ $__gettext_pp_domain_bindings
+ $__gettext_pp_domain_codeset_bindings
+ $__gettext_pp_domains
+ $__gettext_pp_recoders
+ $__gettext_pp_unavailable_dirs
+ $__gettext_pp_domain_cache
+ $__gettext_pp_alias_cache
+ $__gettext_pp_context_glue);
+
+use locale;
+
+BEGIN {
+ $__gettext_pp_textdomain = 'messages';
+ $__gettext_pp_domain_bindings = {};
+ $__gettext_pp_domain_codeset_bindings = {};
+ $__gettext_pp_domains = {};
+ $__gettext_pp_recoders = {};
+ $__gettext_pp_unavailable_dirs = {};
+ $__gettext_pp_domain_cache = {};
+ $__gettext_pp_alias_cache = {};
+ # The separator between msgctxt and msgid in a .mo file. */
+ $__gettext_pp_context_glue = "\004";
+
+ $__gettext_pp_default_dir = '';
+
+ for my $dir (qw (/usr/share/locale /usr/local/share/locale)) {
+ if (-d $dir) {
+ $__gettext_pp_default_dir = $dir;
+ last;
+ }
+ }
+}
+
+BEGIN {
+ require POSIX;
+ require Exporter;
+ use IO::Handle;
+ require Locale::Recode;
+
+ local $@;
+ my ($has_messages, $five_ok);
+
+ $has_messages = eval '&POSIX::LC_MESSAGES';
+
+ unless (defined $has_messages && length $has_messages) {
+ $five_ok = ! grep {my $x = eval "&POSIX::$_" || 0; $x eq '5';}
+ qw (LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_ALL);
+ if ($five_ok) {
+ $five_ok = POSIX::setlocale (5, '');
+ }
+ }
+
+ if (defined $has_messages && length $has_messages) {
+eval <<'EOF';
+sub LC_MESSAGES()
+{
+ local $!; # Do not clobber errno!
+
+ return &POSIX::LC_MESSAGES;
+}
+EOF
+ } elsif ($five_ok) {
+eval <<'EOF';
+sub LC_MESSAGES()
+{
+ local $!; # Do not clobber errno!
+
+ # Hack: POSIX.pm deems LC_MESSAGES an invalid macro until
+ # Perl 5.8.0. However, on LC_MESSAGES should be 5 ...
+ return 5;
+}
+EOF
+ } else {
+eval <<'EOF';
+sub LC_MESSAGES()
+{
+ local $!; # Do not clobber errno!
+
+ # This fallback value is widely used,
+ # when LC_MESSAGES is not available.
+ return 1729;
+}
+EOF
+ }
+}
+
+use vars qw (%EXPORT_TAGS @EXPORT_OK @ISA $VERSION);
+
+%EXPORT_TAGS = (locale_h => [ qw (
+ gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ )
+ ],
+ libintl_h => [ qw (LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL)
+ ],
+ );
+
+@EXPORT_OK = qw (gettext
+ dgettext
+ dcgettext
+ ngettext
+ dngettext
+ dcngettext
+ pgettext
+ dpgettext
+ dcpgettext
+ npgettext
+ dnpgettext
+ dcnpgettext
+ textdomain
+ bindtextdomain
+ bind_textdomain_codeset
+ nl_putenv
+ LC_CTYPE
+ LC_NUMERIC
+ LC_TIME
+ LC_COLLATE
+ LC_MONETARY
+ LC_MESSAGES
+ LC_ALL);
+@ISA = qw (Exporter);
+
+my $has_nl_langinfo;
+
+sub __load_catalog;
+sub __load_domain;
+sub __locale_category;
+
+sub LC_NUMERIC()
+{
+ &POSIX::LC_NUMERIC;
+}
+
+sub LC_CTYPE()
+{
+ &POSIX::LC_CTYPE;
+}
+
+sub LC_TIME()
+{
+ &POSIX::LC_TIME;
+}
+
+sub LC_COLLATE()
+{
+ &POSIX::LC_COLLATE;
+}
+
+sub LC_MONETARY()
+{
+ &POSIX::LC_MONETARY;
+}
+
+sub LC_ALL()
+{
+ &POSIX::LC_ALL;
+}
+
+sub textdomain(;$)
+{
+ my $new_domain = shift;
+
+ $__gettext_pp_textdomain = $new_domain if defined $new_domain &&
+ length $new_domain;
+
+ return $__gettext_pp_textdomain;
+}
+
+sub bindtextdomain($;$)
+{
+ my ($domain, $directory) = @_;
+
+ my $retval;
+ if (defined $domain && length $domain) {
+ if (defined $directory && length $directory) {
+ $retval = $__gettext_pp_domain_bindings->{$domain}
+ = $directory;
+ } elsif (exists $__gettext_pp_domain_bindings->{$domain}) {
+ $retval = $__gettext_pp_domain_bindings->{$domain};
+ } else {
+ $retval = $__gettext_pp_default_dir;
+ }
+ $retval = '/usr/share/locale' unless defined $retval &&
+ length $retval;
+ return $retval;
+ } else {
+ return;
+ }
+}
+
+sub bind_textdomain_codeset($;$)
+{
+ my ($domain, $codeset) = @_;
+
+ if (defined $domain && length $domain) {
+ if (defined $codeset && length $codeset) {
+ return $__gettext_pp_domain_codeset_bindings->{$domain} = $codeset;
+ } elsif (exists $__gettext_pp_domain_codeset_bindings->{$domain}) {
+ return $__gettext_pp_domain_codeset_bindings->{$domain};
+ }
+ }
+
+ return;
+}
+
+sub gettext($)
+{
+ my ($msgid) = @_;
+
+ return dcnpgettext ('', undef, $msgid, undef, undef, undef);
+}
+
+sub dgettext($$)
+{
+ my ($domainname, $msgid) = @_;
+
+ return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef);
+}
+
+sub dcgettext($$$)
+{
+ my ($domainname, $msgid, $category) = @_;
+
+ return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef);
+}
+
+sub ngettext($$$)
+{
+ my ($msgid, $msgid_plural, $n) = @_;
+
+ return dcnpgettext ('', undef, $msgid, $msgid_plural, $n, undef);
+}
+
+sub dngettext($$$$)
+{
+ my ($domainname, $msgid, $msgid_plural, $n) = @_;
+
+ return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, undef);
+}
+
+sub dcngettext($$$$$)
+{
+ my ($domainname, $msgid, $msgid_plural, $n, $category) = @_;
+
+ return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, , $category);
+}
+
+
+sub pgettext($$)
+{
+ my ($msgctxt, $msgid) = @_;
+
+ return dcnpgettext ('', $msgctxt, $msgid, undef, undef, undef);
+}
+
+sub dpgettext($$$)
+{
+ my ($domainname, $msgctxt, $msgid) = @_;
+
+ return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef);
+}
+
+sub dcpgettext($$$$)
+{
+ my ($domainname, $msgctxt, $msgid, $category) = @_;
+
+ return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef);
+}
+
+sub npgettext($$$$)
+{
+ my ($msgctxt, $msgid, $msgid_plural, $n) = @_;
+
+ return dcnpgettext ('', $msgctxt, $msgid, $msgid_plural, $n, undef);
+}
+
+sub dnpgettext($$$$$)
+{
+ my ($domainname, $msgctxt, $msgid, $msgid_plural, $n) = @_;
+
+ return dcnpgettext ($domainname, $msgctxt, $msgid, $msgid_plural, $n, undef);
+}
+
+sub dcnpgettext($$$$$$)
+{
+ my ($domainname, $msgctxt, $msgid, $msgid_plural, $n, $category) = @_;
+
+ return unless defined $msgid;
+
+ my $plural = defined $msgid_plural;
+ my $msg_ctxt_id = defined $msgctxt ? join($__gettext_pp_context_glue, ($msgctxt, $msgid)) : $msgid;
+
+ local $!; # Do not clobber errno!
+
+ # This is also done in __load_domain but we need a proper value.
+ $domainname = $__gettext_pp_textdomain
+ unless defined $domainname && length $domainname;
+
+ # Category is always LC_MESSAGES (other categories are ignored).
+ my $category_name = 'LC_MESSAGES';
+ $category = LC_MESSAGES;
+
+ my $domains = __load_domain ($domainname, $category, $category_name);
+
+ my @trans = ();
+ my $domain;
+ my $found;
+ foreach my $this_domain (@$domains) {
+ if ($this_domain && defined $this_domain->{messages}->{$msg_ctxt_id}) {
+ @trans = @{$this_domain->{messages}->{$msg_ctxt_id}};
+ shift @trans;
+ $domain = $this_domain;
+ $found = 1;
+ last;
+ }
+ }
+ @trans = ($msgid, $msgid_plural) unless @trans;
+
+ my $trans = $trans[0];
+ if ($plural) {
+ if ($domain) {
+ my $nplurals = 0;
+ ($nplurals, $plural) = &{$domain->{plural_func}} ($n);
+ $plural = 0 unless defined $plural;
+ $nplurals = 0 unless defined $nplurals;
+ $plural = 0 if $nplurals <= $plural;
+ } else {
+ $plural = $n != 1 || 0;
+ }
+
+ $trans = $trans[$plural] if defined $trans[$plural];
+ }
+
+ if ($found && defined $domain->{po_header}->{charset}) {
+ my $input_codeset = $domain->{po_header}->{charset};
+ # Convert into output charset.
+ my $output_codeset = $__gettext_pp_domain_codeset_bindings->{$domainname};
+
+ $output_codeset = $ENV{OUTPUT_CHARSET} unless defined $output_codeset;
+ $output_codeset = __get_codeset ($category, $category_name,
+ $domain->{locale_id})
+ unless defined $output_codeset;
+
+ unless (defined $output_codeset) {
+ # Still no point.
+ my $lc_ctype = __locale_category (POSIX::LC_CTYPE(),
+ 'LC_CTYPE');
+ $output_codeset = $1
+ if $lc_ctype =~ /^[a-z]{2}(?:_[A-Z]{2})?\.([^@]+)/;
+ }
+
+ # No point. :-(
+ $output_codeset = $domain->{po_header}->{charset}
+ unless defined $output_codeset;
+
+ if (exists $__gettext_pp_domain_cache->{$output_codeset}) {
+ $output_codeset = $__gettext_pp_domain_cache->{$output_codeset};
+ } else {
+ $output_codeset = 'utf-8' if lc $output_codeset eq 'utf8';
+ $output_codeset =
+ $__gettext_pp_domain_cache->{$output_codeset} =
+ Locale::Recode->resolveAlias ($output_codeset);
+ }
+
+ if (defined $output_codeset &&
+ $output_codeset ne $domain->{po_header}->{charset}) {
+ # We have to convert.
+ my $recoder;
+
+ if (exists
+ $__gettext_pp_recoders->{$input_codeset}->{$output_codeset}) {
+ $recoder = $__gettext_pp_recoders->{$input_codeset}->{$output_codeset};
+ } else {
+ $recoder =
+ $__gettext_pp_recoders->{$input_codeset}->{$output_codeset} =
+ Locale::Recode->new (from => $input_codeset,
+ to => $output_codeset,
+ );
+ }
+
+ $recoder->recode ($trans);
+ }
+ }
+
+ return $trans;
+}
+
+sub nl_putenv ($)
+{
+ my ($envspec) = @_;
+ return unless defined $envspec;
+ return unless length $envspec;
+ return if substr ($envspec, 0, 1) eq '=';
+
+ my ($var, $value) = split /=/, $envspec, 2;
+
+ # In Perl we *could* set empty environment variables even under
+ # MS-DOS, but for compatibility reasons, we implement the
+ # brain-damaged behavior of the Microsoft putenv().
+ if ($^O eq 'MSWin32') {
+ $value = '' unless defined $value;
+ if (length $value) {
+ $ENV{$var} = $value;
+ } else {
+ delete $ENV{$var};
+ }
+ } else {
+ if (defined $value) {
+ $ENV{$var} = $value;
+ } else {
+ delete $ENV{$var};
+ }
+ }
+
+ return 1;
+}
+
+sub __load_domain
+{
+ my ($domainname, $category, $category_name) = @_;
+
+ $domainname = $__gettext_pp_textdomain
+ unless defined $domainname && length $domainname;
+
+ my $dir = bindtextdomain ($domainname, '');
+ $dir = $__gettext_pp_default_dir unless defined $dir && length $dir;
+ return [] unless defined $dir && length $dir;
+
+ my @locales;
+ my $cache_key;
+
+ if (defined $ENV{LANGUAGE} && length $ENV{LANGUAGE}) {
+ @locales = split /:/, $ENV{LANGUAGE};
+ $cache_key = $ENV{LANGUAGE};
+ } else {
+ @locales = $cache_key = __locale_category ($category, $category_name);
+ }
+
+ # Have we looked that one up already?
+ my $domains = $__gettext_pp_domain_cache->{$dir}->{$cache_key}->{$category_name}->{$domainname};
+
+ if (@locales && !defined $domains) {
+ my @dirs = ($dir);
+ my @tries = (@locales);
+ my %locale_lookup = map { $_ => $_ } @tries;
+
+ foreach my $locale (@locales) {
+ if ($locale =~ /^([a-z][a-z])
+ (?:(_[A-Z][A-Z])?
+ (\.[-_A-Za-z0-9]+)?
+ )?
+ (\@[-_A-Za-z0-9]+)?$/x) {
+
+ if (defined $3) {
+ defined $2 ?
+ push @tries, $1 . $2 . $3 : push @tries, $1 . $3;
+ }
+ if (defined $2) {
+ push @tries, $1 . $2;
+ $locale_lookup{$1 . $2} = $locale;
+ }
+ if (defined $1) {
+ push @tries, $1 if defined $1;
+ $locale_lookup{$1} = $locale;
+ }
+ }
+ }
+
+ push @dirs, $__gettext_pp_default_dir
+ if $__gettext_pp_default_dir && $dir ne $__gettext_pp_default_dir;
+
+ my %seen = ();
+ foreach my $basedir (@dirs) {
+ foreach my $try (@tries) {
+ my $fulldir = "$basedir/$try/$category_name";
+
+ next if $seen{$fulldir}++;
+
+ # If the cache for unavailable directories is removed,
+ # the three lines below should be replaced by:
+ # 'next unless -d $fulldir;'
+ next if $__gettext_pp_unavailable_dirs->{$fulldir};
+ ++$__gettext_pp_unavailable_dirs->{$fulldir} and next
+ unless -d $fulldir;
+
+ my $domain = __load_catalog $fulldir, $domainname;
+ next unless $domain;
+
+ unless (defined $domain->{po_header}->{charset} &&
+ length $domain->{po_header}->{charset} &&
+ $try =~ /^(?:[a-z][a-z])
+ (?:(?:_[A-Z][A-Z])?
+ (\.[-_A-Za-z0-9]+)?
+ )?
+ (?:\@[-_A-Za-z0-9]+)?$/x) {
+ $domain->{po_header}->{charset} = $1;
+ }
+
+ if (defined $domain->{po_header}->{charset}) {
+ $domain->{po_header}->{charset} =
+ Locale::Recode->resolveAlias ($domain->{po_header}->{charset});
+ }
+ $domain->{locale_id} = $locale_lookup{$try};
+ push @$domains, $domain;
+ }
+ }
+ $__gettext_pp_domain_cache->{$dir}->{$cache_key}->{$category_name}->{$domainname} = $domains;
+ }
+
+ $domains = [] unless defined $domains;
+ return $domains;
+}
+
+sub __load_catalog
+{
+ my ($directory, $domainname) = @_;
+
+ my $filename = "$directory/$domainname.mo";
+
+ # Alternatively we could check the filename for evil characters ...
+ # (Important for CGIs).
+ return unless -f $filename && -r $filename;
+
+ local $/;
+ local *HANDLE;
+
+ open HANDLE, "<$filename"
+ or return;
+ binmode HANDLE;
+ my $raw = <HANDLE>;
+ close HANDLE;
+
+ # Corrupted?
+ return if ! defined $raw || length $raw < 28;
+
+ my $filesize = length $raw;
+
+ # Read the magic number in order to determine the byte order.
+ my $domain = {};
+ my $unpack = 'N';
+ $domain->{potter} = unpack $unpack, substr $raw, 0, 4;
+
+ if ($domain->{potter} == 0xde120495) {
+ $unpack = 'V';
+ } elsif ($domain->{potter} != 0x950412de) {
+ return;
+ }
+ my $domain_unpack = $unpack x 6;
+
+ my ($revision, $num_strings, $msgids_off, $msgstrs_off,
+ $hash_size, $hash_off) =
+ unpack (($unpack x 6), substr $raw, 4, 24);
+
+ return unless $revision == 0; # Invalid revision number.
+
+ $domain->{revision} = $revision;
+ $domain->{num_strings} = $num_strings;
+ $domain->{msgids_off} = $msgids_off;
+ $domain->{msgstrs_off} = $msgstrs_off;
+ $domain->{hash_size} = $hash_size;
+ $domain->{hash_off} = $hash_off;
+
+ return if $msgids_off + 4 * $num_strings > $filesize;
+ return if $msgstrs_off + 4 * $num_strings > $filesize;
+
+ my @orig_tab = unpack (($unpack x (2 * $num_strings)),
+ substr $raw, $msgids_off, 8 * $num_strings);
+ my @trans_tab = unpack (($unpack x (2 * $num_strings)),
+ substr $raw, $msgstrs_off, 8 * $num_strings);
+
+ my $messages = {};
+
+ for (my $count = 0; $count < 2 * $num_strings; $count += 2) {
+ my $orig_length = $orig_tab[$count];
+ my $orig_offset = $orig_tab[$count + 1];
+ my $trans_length = $trans_tab[$count];
+ my $trans_offset = $trans_tab[$count + 1];
+
+ return if $orig_offset + $orig_length > $filesize;
+ return if $trans_offset + $trans_length > $filesize;
+
+ my @origs = split /\000/, substr $raw, $orig_offset, $orig_length;
+ my @trans = split /\000/, substr $raw, $trans_offset, $trans_length;
+
+ # The singular is the key, the plural plus all translations is the
+ # value.
+ my $msgid = $origs[0];
+ $msgid = '' unless defined $msgid && length $msgid;
+ my $msgstr = [ $origs[1], @trans ];
+ $messages->{$msgid} = $msgstr;
+ }
+
+ $domain->{messages} = $messages;
+
+ # Try to find po header information.
+ my $po_header = {};
+ my $null_entry = $messages->{''}->[1];
+ if ($null_entry) {
+ my @lines = split /\n/, $null_entry;
+ foreach my $line (@lines) {
+ my ($key, $value) = split /:/, $line, 2;
+ $key =~ s/-/_/g;
+ $po_header->{lc $key} = $value;
+ }
+ }
+ $domain->{po_header} = $po_header;
+
+ if (exists $domain->{po_header}->{content_type}) {
+ my $content_type = $domain->{po_header}->{content_type};
+ if ($content_type =~ s/.*=//) {
+ $domain->{po_header}->{charset} = $content_type;
+ }
+ }
+
+ my $code = $domain->{po_header}->{plural_forms} || '';
+
+ # Whitespace, locale-independent.
+ my $s = '[ \t\r\n\013\014]';
+
+ # Untaint the plural header.
+ # Keep line breaks as is (Perl 5_005 compatibility).
+ if ($code =~ m{^($s*
+ nplurals$s*=$s*[0-9]+
+ $s*;$s*
+ plural$s*=$s*(?:$s|[-\?\|\&=!<>+*/\%:;a-zA-Z0-9_\(\)])+
+ )}xms) {
+ $domain->{po_header}->{plural_forms} = $1;
+ } else {
+ $domain->{po_header}->{plural_forms} = '';
+ }
+
+ # Determine plural rules.
+ # The leading and trailing space is necessary to be able to match
+ # against word boundaries.
+ my $plural_func;
+
+ if ($domain->{po_header}->{plural_forms}) {
+ my $code = ' ' . $domain->{po_header}->{plural_forms} . ' ';
+ $code =~
+ s/([^_a-zA-Z0-9]|\A)([_a-z][_A-Za-z0-9]*)([^_a-zA-Z0-9])/$1\$$2$3/g;
+
+ $code = "sub { my \$n = shift;
+ my (\$plural, \$nplurals);
+ $code;
+ return (\$nplurals, \$plural ? \$plural : 0); }";
+
+ # Now try to evaluate the code. There is no need to run the code in
+ # a Safe compartment. The above substitutions should have destroyed
+ # all evil code. Corrections are welcome!
+ $plural_func = eval $code;
+ undef $plural_func if $@;
+ }
+
+ # Default is Germanic plural (which is incorrect for French).
+ $plural_func = eval "sub { (2, 1 != shift || 0) }" unless $plural_func;
+
+ $domain->{plural_func} = $plural_func;
+
+ return $domain;
+}
+
+sub __locale_category
+{
+ my ($category, $category_name) = @_;
+
+ local $@;
+ my $value = eval {POSIX::setlocale ($category)};
+
+ # We support only XPG syntax, i. e.
+ # language[_territory[.codeset]][@modifier].
+ undef $value unless (defined $value &&
+ length $value &&
+ $value =~ /^[a-z][a-z]
+ (?:_[A-Z][A-Z]
+ (?:\.[-_A-Za-z0-9]+)?
+ )?
+ (?:\@[-_A-Za-z0-9]+)?$/x);
+
+ unless ($value) {
+ $value = $ENV{LC_ALL};
+ $value = $ENV{$category_name} unless defined $value && length $value;
+ $value = $ENV{LANG} unless defined $value && length $value;
+ return 'C' unless defined $value && length $value;
+ }
+
+ return $value if $value ne 'C' && $value ne 'POSIX';
+}
+
+sub __get_codeset
+{
+ my ($category, $category_name, $locale_id) = @_;
+
+ local $@;
+ unless (defined $has_nl_langinfo) {
+ eval {
+ require I18N::Langinfo;
+ };
+ $has_nl_langinfo = !$@;
+ }
+
+ if ($has_nl_langinfo) {
+ # Try to set the locale via the specified id.
+ my $saved_locale = eval { POSIX::setlocale (LC_ALL) };
+ my $saved_lc_all = $ENV{LC_ALL};
+
+ # Now try to set the locale via the environment. There is no
+ # point in calling the langinfo routines if this fails.
+ $ENV{LC_ALL} = $locale_id;
+ my $codeset;
+ my $lc_all = eval { POSIX::setlocale (LC_ALL, $locale_id); };
+ $codeset = I18N::Langinfo::langinfo (I18N::Langinfo::CODESET())
+ if defined $lc_all;
+
+ if ($saved_locale) {
+ eval { POSIX::setlocale (LC_ALL, $saved_locale); }
+ }
+ return $codeset;
+ }
+
+ return;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Locale::gettext_pp - Pure Perl Implementation of Uniforum Message Translation
+
+=head1 SYNOPSIS
+
+ use gettext_pp (:locale_h :libintl_h);
+
+ gettext $msgid;
+ dgettext $domainname, $msgid;
+ dcgettext $domainname, $msgid, LC_MESSAGES;
+ ngettext $msgid, $msgid_plural, $count;
+ dngettext $domainname, $msgid, $msgid_plural, $count;
+ dcngettext $domainname, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ pgettext $msgctxt, $msgid;
+ dpgettext $domainname, $msgctxt, $msgid;
+ dcpgettext $domainname, $msgctxt, $msgid, LC_MESSAGES;
+ npgettext $msgctxt, $msgid, $msgid_plural, $count;
+ dnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count;
+ dcnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ textdomain $domainname;
+ bindtextdomain $domainname, $directory;
+ bind_textdomain_codeset $domainname, $encoding;
+ my $category = LC_CTYPE;
+ my $category = LC_NUMERIC;
+ my $category = LC_TIME;
+ my $category = LC_COLLATE;
+ my $category = LC_MONETARY;
+ my $category = LC_MESSAGES;
+ my $category = LC_ALL;
+
+=head1 DESCRIPTION
+
+The module B<Locale::gettext_pp> is the low-level interface to
+message translation according to the Uniforum approach that is
+for example used in GNU gettext and Sun's Solaris.
+
+Normally you should not use this module directly, but the high
+level interface Locale::TextDomain(3) that provides a much simpler
+interface. This description is therefore deliberately kept
+brief. Please refer to the GNU gettext documentation available at
+L<http://www.gnu.org/manual/gettext/> for in-depth and background
+information on the topic.
+
+=head1 FUNCTIONS
+
+The module exports by default nothing. Every function has to be
+imported explicitely or via an export tag (L<"EXPORT TAGS">).
+
+=over 4
+
+=item B<gettext MSGID>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dgettext TEXTDOMAIN, MSGID>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dcgettext TEXTDOMAIN, MSGID, CATEGORY>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<ngettext MSGID, MSGID_PLURAL, COUNT>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dngettext TEXTDOMAIN, MSGID, MSGID_PLURAL, COUNT>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dcngettext TEXTDOMAIN, MSGID, MSGID_PLURAL, COUNT, CATEGORY>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<pgettext MSGCTXT, MSGID>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dpgettext TEXTDOMAIN, MSGCTXT, MSGID>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dcpgettext TEXTDOMAIN, MSGCTXT, MSGID, CATEGORY>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<npgettext MSGCTXT, MSGID, MSGID_PLURAL, COUNT>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dnpgettext TEXTDOMAIN, MSGCTXT, MSGID, MSGID_PLURAL, COUNT>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<dcnpgettext TEXTDOMAIN, MSGCTXT, MSGID, MSGID_PLURAL, COUNT, CATEGORY>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<textdomain TEXTDOMAIN>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<bindtextdomain TEXTDOMAIN, DIRECTORY>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=item B<bind_textdomain_codeset TEXTDOMAIN, ENCODING>
+
+=item B<nl_putenv ENVSPEC>
+
+See L<Locale::Messages/FUNCTIONS>.
+
+=back
+
+=head1 CONSTANTS
+
+You can (maybe) get the same constants from POSIX(3); see there for
+a detailed description
+
+=over 4
+
+=item B<LC_CTYPE>
+
+=item B<LC_NUMERIC>
+
+=item B<LC_TIME>
+
+=item B<LC_COLLATE>
+
+=item B<LC_MONETARY>
+
+=item B<LC_MESSAGES>
+
+=item B<LC_ALL>
+
+See L<Locale::Messages/CONSTANTS> for more information.
+
+=back
+
+=head1 EXPORT TAGS
+
+This module does not export anything unless explicitely requested.
+You can import groups of functions via two tags:
+
+=over 4
+
+=item B<use Locale::gettext_pp (':locale_h')>
+
+Imports the functions that are normally defined in the C include
+file F<locale.h>:
+
+=over 8
+
+=item B<gettext()>
+
+=item B<dgettext()>
+
+=item B<dcgettext()>
+
+=item B<ngettext()>
+
+=item B<dngettext()>
+
+=item B<dcngettext()>
+
+=item B<pgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<dpgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<dcpgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<npgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<dnpgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<dcnpgettext()>
+
+Introduced with libintl-perl 1.17.
+
+=item B<textdomain()>
+
+=item B<bindtextdomain()>
+
+=item B<bind_textdomain_codeset()>
+
+=back
+
+=item B<use Locale::gettext_pp (':libintl_h')>
+
+Imports the locale category constants:
+
+=over 8
+
+=item B<LC_CTYPE>
+
+=item B<LC_NUMERIC>
+
+=item B<LC_TIME>
+
+=item B<LC_COLLATE>
+
+=item B<LC_MONETARY>
+
+=item B<LC_MESSAGES>
+
+=item B<LC_ALL>
+
+=back
+
+=back
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::TextDomain(3pm), Locale::Messages(3pm), Encode(3pm),
+perllocale(3pm), POSIX(3pm), perl(1), gettext(1), gettext(3)
+
+=cut
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/gettext_xs.pod b/tp/maintain/lib/libintl-perl/lib/Locale/gettext_xs.pod
new file mode 100755
index 0000000..4de9585
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/gettext_xs.pod
@@ -0,0 +1,109 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: gettext_xs.pod,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# Pure Perl implementation of Uniforum message translation.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+=head1 NAME
+
+Locale::gettext_xs - XS Implementation of Uniforum Message Translation
+
+=head1 SYNOPSIS
+
+ use gettext_xs (:locale_h :libintl_h);
+
+ gettext $msgid;
+ dgettext $domainname, $msgid;
+ dcgettext $domainname, $msgid, LC_MESSAGES;
+ ngettext $msgid, $msgid_plural, $count;
+ dngettext $domainname, $msgid, $msgid_plural, $count;
+ dcngettext $domainname, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ pgettext $msgctxt, $msgid;
+ dpgettext $domainname, $msgctxt, $msgid;
+ dcpgettext $domainname, $msgctxt, $msgid, LC_MESSAGES;
+ npgettext $msgctxt, $msgid, $msgid_plural, $count;
+ dnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count;
+ dcnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES;
+ textdomain $domainname;
+ bindtextdomain $domainname, $directory;
+ bind_textdomain_codeset $domainname, $encoding;
+ my $category = LC_CTYPE;
+ my $category = LC_NUMERIC;
+ my $category = LC_TIME;
+ my $category = LC_COLLATE;
+ my $category = LC_MONETARY;
+ my $category = LC_MESSAGES;
+ my $category = LC_ALL;
+
+=head1 DESCRIPTION
+
+The module B<Locale::gettext_xs> is the low-level interface to
+message translation according to the Uniforum approach that is
+for example used in GNU gettext and Sun's Solaris.
+
+The module does not necessarily work on your system. It depends
+on the presence of shared libraries that are not always available.
+The higher-level modules Locale::TextDomain::(3), resp.
+Locale::Messages(3) will fall back to a pure Perl version if
+boostrapping B<Locale::gettext_xs> fails.
+
+The interface of B<Locale::gettext_xs> is mostly identical to the pure
+Perl version as described in Locale::gettext_pp(3), see there for details.
+Differences are outlined below.
+
+B<Locale::gettext_xs> is downwards compatible to Locale::gettext(3)
+by Phillip Vandry <vandry@Mlink.NET>. You can use it as replacement
+for Locale::gettext(3).
+
+Please note that directory names passed to the function bindtextdomain()
+are automatically converted from Perl semantics (slash as directory
+separator) to local semantics (for example the backslash for MS-DOS).
+
+=head1 AUTHOR
+
+Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
+rights reserved. See the source code for details.
+
+The module is based on the work of Phillip Vandry <vandry@Mlink.NET>
+in Locale::gettext(3).
+
+This software is contributed to the Perl community by Imperia
+(L<http://www.imperia.net/>).
+
+=head1 SEE ALSO
+
+Locale::TextDomain(3pm), Locale::gettext_pp(3pm), Locale::gettext(3pm),
+Locale::Messages(3pm), File::Spec(3), perl(1)
+
+=cut
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
+=cut
diff --git a/tp/maintain/lib/libintl-perl/lib/Locale/libintlFAQ.pod b/tp/maintain/lib/libintl-perl/lib/Locale/libintlFAQ.pod
new file mode 100644
index 0000000..1980c0b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/lib/Locale/libintlFAQ.pod
@@ -0,0 +1,258 @@
+#! /bin/false
+
+# vim: set autoindent shiftwidth=4 tabstop=4:
+# $Id: libintlFAQ.pod,v 1.1 2011-10-12 23:51:27 pertusus Exp $
+
+# High-level interface to Perl i18n.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+=head1 NAME
+
+Locale::TextDomain::FAQ - Frequently asked questions for libintl-perl
+
+=head1 DESCRIPTION
+
+This FAQ
+
+=head1 QUESTIONS AND ANSWERS
+
+=head2 Why is libintl-perl so big? Why don't you use Encode(3pm) for character
+set conversion instead of rolling your own version?
+
+Encode(3pm) requires at least Perl 5.7.x, whereas libintl-perl needs
+to be operational on Perl 5.004. Internally, libintl-perl uses Encode(3pm)
+if it is available.
+
+
+=head2 Why do the gettext functions always unset the utf-8 flag on the strings
+it returns?
+
+Because the gettext functions do not know whether the string is encoded
+in utf-8 or not. Instead of taking guesses, it rather unsets the flag.
+
+
+=head2 Can I set the utf-8 flag on strings returned by the gettext family of
+functions?
+
+Yes, but it is not recommended. If you absolutely want to do it,
+use the function bind_textdomain_filter in Locale::Messages for it.
+
+The strings returned by gettext and friends are by default encoded in
+the preferred charset for the user's locale, but there is no portable
+way to find out, whether this is utf-8 or not. That means, you either
+have to enforce utf-8 as the output character set (by means of
+bind_textdomain_codeset() and/or the environment variable
+OUTPUT_CHARSET) and override the user preference, or you run the risk
+of marking strings as utf-8 which really aren't utf-8.
+
+The whole concept behind that utf-8 flag introduced in Perl 5.6 is
+seriously broken, and the above described dilemma is a proof for that.
+The best thing you can do with that flag is get rid of it, and turn
+it off. Your code will benefit from it and become less error prone,
+more portable and faster.
+
+
+=head2 Why do non-ASCII characters in my Gtk2 application look messed up?
+
+The Perl binding of Gtk2 has a design flaw. It expects all UI messages
+to be in UTF-8 and it also expects messages to be flagged as utf-8. The
+only solution for you is to enforce all your po files to be encoded
+in utf-8 (convert them manually, if you need to), and also enforce that
+charset in your application, regardless of the user's locale settings.
+Assumed that your textdomain is "org.bar.foo", you have to code the
+following into your main module or script:
+
+ BEGIN {
+ bind_textdomain_filter 'org.bar.foo', \&turn_utf_8_on;
+ bind_textdomain_codeset 'org.bar.foo', 'utf-8';
+ }
+
+See the File GTestRunner.pm of Test::Unit::GTestRunner(3pm) for details.
+
+
+=head2 How do I interface Glade2 UI definitions with libintl-perl?
+
+Gtk2::GladeXML(3pm) seems to ignore calls to bind_textdomain().
+See the File GTestRunner.pm of Test::Unit::GTestRunner(3pm) for a
+possible solution.
+
+
+=head2 Why does Locale::TextDomain use a double underscore? I am used
+to a single underscore from C or other languages.
+
+Function names that consist of exactly one non-alphanumerical character
+make the function automatically global in Perl. Besides, in Perl
+6 the concatenation operator will be the underscore instead of the
+dot.
+
+=head2 How do I switch languages or force a certain language independently
+from user settings read from the environment?
+
+The simple answer is:
+
+ use POSIX qw (setlocale LC_ALL);
+
+ my $language = 'fr';
+ my $country = 'FR';
+ my $charset = 'iso-8859-1';
+
+ setlocale LC_ALL, "${language}_$country.$charset";
+
+Sadly enough, this will fail in many cases. The problem is that locale
+identifiers are not standardized and are completely system-dependent. Not
+only their overall format, but also other details like case-sensitivity.
+Some systems are very forgiving about the system - for example normalizing
+charset descriptions - others very strict. In order to be reasonably
+platform independent, you should try a list of possible locale identifiers
+for your desired settings. This is about what I would try for achieving the
+above:
+
+ my @tries = qw (
+ fr_FR.iso-8859-1 fr_FR.iso8859-1 fr_FR.iso88591
+ fr_FR.ISO-8859-1 fr_FR.ISO8859-1 fr_FR.ISO88591
+ fr.iso-8859-1 fr.iso8859-1 fr.iso88591
+ fr.ISO-8859-1 fr.ISO8859-1 fr.ISO88591
+ fr_FR
+ French_France.iso-8859-1 French_France.iso8859-1 French_France.iso88591
+ French_France.ISO-8859-1 French_France.ISO8859-1 French_France.ISO88591
+ French.iso-8859-1 French.iso8859-1 French.iso88591
+ French.ISO-8859-1 French.ISO8859-1 French.ISO88591
+ );
+ foreach my $try (@tries) {
+ last if setlocale LC_ALL, $try;
+ }
+
+Set Locale::Util(3pm) for functions that help you with this.
+
+Alternatively, you can force a certain language by setting the environment
+variables LANGUAGE, LANG and OUTPUT_CHARSET, but this is only guaranteed
+to work, if you use the pure Perl implementation of gettext (see the
+documentation for select_package() in Locale::Messages(3pm)). You would
+do the above like this:
+
+ use Locale::Messages qw (nl_putenv);
+
+ # LANGUAGE is a colon separated list of languages.
+ nl_putenv("LANGUAGE=fr_FR");
+
+ # If LANGUAGE is set, LANG should be set to the primary language.
+ # This is not needed for gettext, but for other parts of the system
+ # it is.
+ nl_putenv("LANG=fr_FR");
+
+ # Force an output charset like this:
+ nl_putenv("OUTPUT_CHARSET=iso-8859-1");
+
+ setlocale (LC_MESSAGES, 'C');
+
+These environment variables are GNU extensions, and they are also
+honored by libintl-perl. Still, you should always try to set the
+locale with setlocale for the catch-all category LC_ALL. If you miss
+to do so, your program's output maybe cluttered, mixing languages
+and charsets, if the system runs in a locale that is not compatible
+with your own language settings.
+
+Remember that these environment variables are not guaranteed to
+work, if you use an XS version of gettext. In order to force usage
+of the pure Perl implementation, do the following:
+
+ Locale::Messages->select_package ('gettext_pp');
+
+If you think, this is brain-damaged, you are right, but I cannot help
+you. Actually there should be a more flexible API than setlocale,
+but at the time of this writing there isn't. Until then, the recommentation
+goes like this:
+
+ 1) Try setting LC_ALL with Locale::Util.
+ 2) If that does not succeed, either give up or ...
+ 3) Reset LC_MESSAGES to C/POSIX.
+ 4) Switch to pure Perl for gettext.
+ 5) Set the environment variables LANGUAGE, LANG,
+ and OUTPUT_CHARSET to your desired values.
+
+=head2 What is the advantage of libintl-perl over Locale::Maketext?
+
+Of course, I can only give my personal opinion as an answer.
+
+Locale::Maketext claims to fix design flaws in gettext. These alleged
+design flaws, however, boil down to one pathological case which always
+has a workaround. But both programmers and translators pay this
+fix with an unnecessarily complicated interface.
+
+The paramount advantage of libintl-perl is that it uses an approved
+technology and concept. Except for Java(tm) programs, this is the
+state-of-the-art concept for localizing Un*x software. Programmers
+that have already localized software in C, C++, C#, Python, PHP,
+or a number of other languages will feel instantly at home, when
+localizing software written in Perl with libintl-perl. The same
+holds true for the translators, because the files they deal with
+have exactly the same format as those for other programming languages.
+They can use the same set of tools, and even the commands they have
+to execute are the same.
+
+With libintl-perl refactoring of the software is painless, even if
+you modify, add or delete translatable strings. The gettext tools
+are powerful enough to reduce the effort of the translators to the
+bare minimum. Maintaining the message catalogs of Locale::Maketext
+in larger scale projects, is IMHO unfeasible.
+
+Editing the message catalogs of Locale::Maketext - they are really
+Perl modules - asks too much from most translators, unless
+they are programmers. The portable object (po) files used by
+libintl-perl have a simple syntax, and there are a bunch of specialized
+GUI editors for these files, that facilitate the translation process
+and hide most complexity from the user.
+
+Furthermore, libintl-perl makes it possible to mix programming
+languages without a paradigm shift in localization. Without any special
+efforts, you can write a localized software that has modules written
+in C, modules in Perl, and builds a Gtk user interface with Glade.
+All translatable strings end up in one single message catalog.
+
+Last but not least, the interface used by libintl-perl is plain
+simple: Prepend translatable strings with a double underscore,
+and you are done in most cases.
+
+=head2 Why do single-quoted strings not work?
+
+You probably write something like this:
+
+ print __'Hello';
+
+And you get an error message like "Can't find string terminator "'" anywhere
+before EOF at ...", or even "Bareword found where operator expected at
+... Might be a runaway multi-line '' string starting on". The above line
+is (really!) essentially the same as writing:
+
+ print __::Hello';
+
+A lesser know feature of Perl is that you can use a single quote ("'") as
+the separator in packages instead of the double colon (":"). What the
+Perl parser sees in the first example is a valid package name ("__")
+followed by the separator ("'"), then another valid package name ("Hello")
+followed by a lone single quote. It is therefore not a problem in
+libintl-perl but simple wrong Perl syntax. You have to correct alternatives:
+
+ print __ 'Hello'; # Insert a space to disambiguate.
+
+Or use double-quotes:
+
+ print __"Hello";
+
+Thanks to Slavi Agafonkin for pointing me to the solution of this mystery.
diff --git a/tp/maintain/lib/libintl-perl/sample/README b/tp/maintain/lib/libintl-perl/sample/README
new file mode 100644
index 0000000..ac0448c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/README
@@ -0,0 +1,462 @@
+This is a simple, respectively stupid Perl package that shows how the
+complete internationalization process for a Perl package *could* be
+done. It does not claim to be the smartest or the only possible
+solution, but it provides at least a skeleton for real packages. If
+libintl-perl should someday become an "established" Perl package, it
+would probably be a lot better to seamlessly integrate the process
+into ExtUtils::MakeMaker, but for now it's all we have.
+
+The example focuses on the packaging process, i. e. on the things you
+have to do to maintain an internationalized Perl package, so that
+users of your package will benefit from translations you provide. It
+therefore doesn't make use of any of the nitty-gritty details of
+message translation like plural handling or the like.
+
+Requirements
+------------
+
+The only requirement is a Perl aware version of GNU gettext. Perl
+support was introduced only recently in GNU gettext, and you will have
+to check whether your copy of GNU gettext already supports Perl.
+Support for Perl was introduced in version 0.12.2 of GNU gettext. If
+your version is older, you have to update GNU gettext.
+
+First test
+----------
+
+The subdirectory "simplecal" contains a regular Perl package like the
+ones you will find on the CPAN. You should first try to build and
+use the package:
+
+ cd simplecal
+ perl Makefile.PL
+ make
+
+If you see a warning that the prerequisite Locale::TextDomain is not
+found, then you have to install libintl-perl first.
+
+You should never "make install", the package is only a stupid example
+and you will not really want to install it. You can simply try it out
+from the installation directory itself:
+
+ perl -Ilib bin/simplecal.pl
+
+It should print a crude calendar representation in English, or even in
+your preferred language, depending on your system settings.
+
+The Programming
+---------------
+
+Now we should dig into the sources. All relevant files are commented
+and should give you a pretty good idea of what's going on. Change
+your directory to the package directory "simplecal" and inspect the
+source files.
+
+The heart of the library is found in the file lib/SimpleCal.pm. This
+Perl module defines functions that map numeric values to month names
+or abbreviated week day names. You will find nothing unusual in this
+module except for a line at the beginning of the file that reads:
+
+ use Locale::TextDomain qw (org.imperia.simplecal);
+
+In case you are not familiar with the operator "qw", this is an
+equivalent writing of
+
+ use Locale::TextDomain ('org.imperia.simplecal');
+
+That line in the code does three things: It imports the module
+Locale::TextDomain, *and* it states that the text domain (or
+identifier) for this package is "org.imperia.simplecal", *and* it says
+that the translations for this package can be found in the
+subdirectory "LocaleDate" of any component of @INC (unless it can be
+found in one of the system locations). See the POD in
+Locale::TextDomain for more information.
+
+You may also find out that some strings have a "__" or a "N__" in
+front of them. The explanation to these funny things has two sides:
+First, they mark the following strings as being translatable, so that the
+parser "xgettext" included in GNU gettext can find them. Yet, at runtime
+both "__" and "N__" are really function names, and they will look up
+their argument in the translation database. There is more
+documentation available on this. Guess where! Yepp, in the POD of
+Locale::TextDomain.
+
+The library is used by a Perl script "bin/simplecal.pl". Let's have a
+look at that script now. The first remarkable line is the one that
+calls POSIX::setlocale():
+
+ setlocale (LC_MESSAGES, '');
+
+The POD of the POSIX module gives additional information on the
+function setlocale(). In brief, that call initializes the locale
+settings for the category "LC_MESSAGES" to the pre-selected user
+settings (this is indicated by the empty second argument). The
+constant LC_MESSAGES is exported by Locale::Messages, which is always
+a safe choice. If your script is only intended to run with Perl 5.8
+or better, you can also import LC_MESSAGES from the POSIX module.
+
+The rest of the program only prints a calendar for the current month.
+It retrieves the name of the month and the abbreviated weekday names
+from our little SimpleCal.pm module which provides this information in
+a localized form.
+
+A Dutch Calendar
+----------------
+
+We want to see the calendar in Dutch now. All you have to do is to
+set the environment variable LANGUAGE to the value "nl". If you don't
+know how to do this, add the following line somewhere at the top of
+"bin/simplecal.pl":
+
+ $ENV{LANGUAGE} = "nl";
+
+Now run the script again:
+
+ perl -Ilib bin/simplecal.pl
+
+It should print out the calendar in Dutch. Look at the *.po files in
+the subdirectory "po" for a list of other translations I have
+prepared. You can try them out in a similar manner.
+
+Please see the file "README-NLS" in subdirectory "sample/simplecal"
+for details on how to set the language via environment variables.
+
+The Subdirectory "po"
+---------------------
+
+This directory contains the raw translations and a Makefile that will
+compile and install them. If you enter this directory and type "make"
+you will see a list of the available Makefile targets.
+
+The first one is the target "pot", a so-called phony target, i. e. it
+is not related to a file with the name of "pot". The command "make
+pot" will remake the master catalog of the package and place the
+result in the file "org.imperia.simplecal.pot"
+("org.imperia.simplecal" is the text domain resp. identifier for our
+package). Type the command "make pot" now to see how the master
+catalog is actually generated. If the output says something like
+"nothing to be done for `pot'", then delete the file
+"org.imperia.simplecal.pot" and try again.
+
+You should see now that the target file "org.imperia.simplecal.pot" is
+generated by the program xgettext with a plethora of options:
+
+ xgettext --output=./org.imperia.simplecal.pox --from-code=utf-8 \
+ --add-comments=TRANSLATORS: --files-from=./POTFILES.in \
+ --copyright-holder="Imperia AG Huerth/Germany" \
+ --keyword --keyword='$__' --keyword=__ --keyword=__x \
+ --keyword=__n:1,2 --keyword=__nx:1,2 --keyword=__xn \
+ --keyword=N__ --language=perl && \
+ rm -f org.imperia.simplecal.pot && \
+ mv org.imperia.simplecal.pox org.imperia.simplecal.pot
+
+Type "xgettext --help" for a detailled explanation of the command line
+options. In brief this invocation causes xgettext to read a list of
+files from the file "POTFILES.in", extract all messages from these
+source files and place the result in the output file
+"org.imperia.simplecal.pox". If the command succeeds, the old ".pot"
+file is replaced by the new ".pox" file.
+
+Yes, this is complicated, and that is why this skeleton Makefile is
+provided here. You can copy it without any modification into your
+package to use it.
+
+The file POTFILES.in contains a list of source files to be scanned for
+translatable strings. Have a look at it, and you will understand it.
+
+The Makefile also includes a file called "PACKAGE". This file contains
+all package-dependent information in a couple of Makefile variables:
+
+- TEXTDOMAIN
+This Makefile variable should contain the text domain/identifier
+for your package. Please see the POD of Locale::TextDomain for advice
+on a reasonable naming.
+
+- LINGUAS
+The language codes of all languages supported by your package. Each
+entry corresponds to a po file in the po subdirectory.
+
+- COPYRIGHT_HOLDER
+Usually your name. Whatever you put here will be included as the
+copyright holder in the header of the po files.
+
+- MSGID_BUGS_ADDRESS
+Usually your name and e-mail address. It will also be included in the
+po header and translators will check this entry when they come across
+a bug in a msgid, or when they have difficulties to translate a certain
+message because of awkward coding on your side.
+
+Okay, after "make pot" we have updated the master message catalog
+TEXTDOMAIN.pot, in our case "org.imperia.simplecal.pot". Have a look
+into the file now. It contains the original English messages that
+xgettext has extracted from our source files and blank translations.
+The po files (the files the names of which end with ".po") contain
+previous translations provided by our package translators. Whenever
+you change the Perl sources, the list of messages may change. This
+results in a maybe new .pot file and requires an update of all po
+files. Try that now and type "make update-po"
+
+You will see confusing output from "make" but you may get the idea
+that every single po file (every language that the package supports)
+gets updated, and the new strings are inserted into the po
+files. Since nothing really changed here (we did not change the source
+files yet) you can now try to update the compiled po files which end in
+".mo" with "make update-mo".
+
+Again, you will see maybe cryptic output from "make" that signifies
+that all compiled files are re-generated now by a program called
+"msgfmt".
+
+The last step requires that you copy the (possibly changed) mo files
+into your package by "make install". This will copy the mo files into
+the subdirectory "LocaleData" of your package so that libintl-perl is
+able to find them at runtime.
+
+You can perform all these steps at once by typing "make all" although
+this is mostly useful for testing purposes. In reality the workflow
+is different:
+
+- You change your source files, messages may have been added, deleted
+ or modified. You will have to update the master message catalog by
+ typing "make pot".
+
+- Since the translations may have gotten out-of-date, you will have to
+ merge your changes into all po files by "make update-po".
+
+- Your translators will get copies of the po files, reflect your
+ changes in the po files and send them back to you.
+
+- When you have received the updates, it is time to compile the po
+ files into a binary representation with "make update-mo".
+
+- These binary mo files have to be installed under "LocaleData", and
+ you have to "make install". Note that "make install" installs the
+ mo files in your source package, not in the system location!
+
+- Now that you have updated the translations for your package, you
+ will want to upload a new version to the CPAN.
+
+Note that all these steps are *only* necessary for package
+maintainers. As a user of the package, you will only see the
+resulting mo files under "LocaleData". End users do *not* need any of
+the gettext tools, and they do not have to perform any of the above
+steps theirselves!
+
+Changing the Sources
+--------------------
+
+You may wonder whether your translators have to re-translate
+everything from scratch whenever you change your Perl sources. This
+is, of course, not the case. Let's say, you want to add a welcome and
+a good-bye message to the program output. Have a look into
+"bin/simplecal.pl" and you will see that this is already prepared but
+commented out (search for "Welcome to" and "Bye" if you can't find
+it). Uncomment these lines and see what happens to the po files in
+that case.
+
+Before you proceed, you should have a look at the Dutch translation
+file "nl.po". At the bottom you will find some lines that are
+commented out with "#~" and that proove that I have already prepared
+that case. The comment sign "#~" in po files signifies that a
+particular translation is obsoleted, i. e. no longer needed because it
+is no longer present in the source files.
+
+Say, that you have really changed your mind, and you want to
+re-introduce the welcome and good-bye messages to your program and you
+uncomment the corresponding lines in "bin/simplecal.pl". You will
+have to re-make the master catalog "org.imperia.simplecal.pot" by
+"make pot", and then "make update-po" to update the po files. In
+fact, "make update-po" is sufficient because it will also update the
+pot file if it is out-of-date (i. e. if any of the source files have
+changed in the meantime).
+
+Type "make update-po" now, and look again at "po/nl.po". You will see
+that the previously translated welcome and good-bye messages have been
+re-activated from the obsoleted entries. In fact your translators
+will have nothing to do, because their old translations are still
+valid. Type "make install" and then re-run "perl -Ilib
+bin/simplecal.pl", set the environment variable "LANG" to any of the
+available languages, and things will still work perfectly.
+
+Of course, it is a rare case that messages are discarded and later
+re-activated in programming sources. It is more likely that you will
+modify a message, or maybe add a message that is similar to former
+ones. Let's say that you want to change the exclamation mark in the
+good-bye message at the bottom of the script to a simple full stop.
+Look for the line that reads
+
+ print __"Bye!\n";
+
+and change it into
+
+ print __"Bye.\n";
+
+Change into the directory "po", update the translation files with
+"make update-po" and inspect the file "nl.po". At first glance, you
+may not see any change. But then: The entry for the good-bye message
+has an additional comment "#, fuzzy". The fuzzy mark signifies that
+the msgerge program has found that a message is very similar to a
+previous message (even obsoleted ones are taken into account), and
+that it proposes an old translation here. The translator will
+normally modify the translation accordingly (without having to re-type
+everything), remove the fuzzy mark and send back the translation to
+you.
+
+In fact you could also install translations that have not been revised
+by the translator and are still marked as fuzzy. This is not
+recommended however! The algorithm used in msgmerge is quite smart
+and seldom fails to detect minimal changes in the source message and
+propose the old translation. However, it often proposes translations
+from other valid or obsoleted entries that are only vaguely related to
+the real meaning. You should understand the fuzzy merging mechanism
+as a helpful feature to the translator only and never install fuzzy
+translations unless you absolutely know what you are doing.
+
+Pass Comments to Translators
+----------------------------
+
+The po files contain references for every message to the corresponding
+source files as comments. But you still may feel a need for giving
+hints to the translators. You may want to tell the translators, that
+the good-bye message can be somewhat sloppy (or whatever you like).
+This is simple to do. Have a look at the good-bye message in
+"bin/simplecal.pl" and you will see that it is preceded by a comment
+introduced with the string "TRANSLATORS:". If you start your Perl
+comment like this, it will end up as a comment for translators in the
+resulting po (resp. pot) file and may serve as a hint for translators.
+
+In fact, the string "TRANSLATORS:" is arbitrarily chosen. If you
+prefer another string, change it in the invocation of "xgettext" in
+the skeleton Makefile provided here.
+
+Informational Files
+-------------------
+
+You should put two additional files in your distribution. The first
+one is "README-NLS". It should be a verbatim copy of the most recent
+version found in the "simplecal" sample package. Please send
+corrections or improvements to this file to the maintainer Guido
+Flohr <guido@imperia.net>, and add package-specific notes to your
+documentation instead. Users expect this file to have a standard
+contents, and they will not check it for changes on a regular basis.
+
+The file "TRANSLATIONS" should reflect the current translation status
+of your package. It should list all currently availabe translations,
+their completeness, and it should also inform your user which translations
+are actively maintained, and which are not. You can find a sample
+in the "simplecal" sample package.
+
+Bringing It All Together
+------------------------
+
+The above sounds definitely more complicated than it is. In practice
+you code as before but mark all your strings with "__" and friends
+like described in the POD of Locale::TextDomain. Before a new release
+you change into the directory "po" of your distribution and type "make
+update-po" to update the available translations. Distribute the
+modified po files to your translators, and once you have collected
+them all, type "make install" to add them to your distribution.
+
+That's all, all translations will be available in your package now.
+
+Internationalizing Existing Packages
+------------------------------------
+
+Internationalizing an already existing package with libintl-perl is
+less painful than you think. The following roadmap should do it with
+minimal effort.
+
+First create a subdirectory "po" in your sources, copy the "Makefile"
+from this sample, and copy and edit the files "TEXTDOMAIN" and
+"LINGUAS" (LINGUAS can set the Makefile variable "LINGUAS" to the
+empty string and TEXTDOMAIN should set "TEXTDOMAIN" to a name as
+advised in the POD of Locale::TextDomain).
+
+Next you have to mark the translatable strings in your sources with
+"__" and friends. You can do that by hand, but isn't that the kind of
+job that you have bought a computer for? List your source files in
+"po/POTFILES.in" and then try
+
+ xgettext -a --files-from=POTFILES.in -o all.pot
+
+The option "-a" instructs xgettext to extract *all* strings from your
+sources. This option may miss a few strings (consider a bug report in
+that case), it will issue a lot of warnings about "illegal variable
+interpolations" (see the POD of Locale::TextDomain for workarounds)
+and will put a lot of strings extracted from your sources into the
+file "all.pot".
+
+Now, load the file "all.pot" into an editor of your choice. If your
+choice is "GNU emacs" you will have maximum comfort: Select an entry,
+type "s" and you can cycle through the source files that this
+particular entry originates from. Other PO editors like KBabel or
+PO-Edit provide similar functionality. But even with the "Notepad" on
+MS-DOS you will be able to navigate to the corresponding source file.
+Once you have found the origin in your sources, you have to decide
+whether this is a false positive, and you simply ignore it. If it is
+a translatable string you either simply mark it with "__" or you
+"repair" it.
+
+What does "repair" mean? Again, the POD of Locale::TextDomain... In
+brief: Your Perl sources will be full of stuff like:
+
+ die "Cannot open file '$filename': $!\n";
+
+This string is not suitable for translation, because it is not
+constant. It may change depending on the value of the variable
+$filename and the value of $!. You will have to change that into
+something like:
+
+ die __x ("Cannot open file '{filename}': {err}\n",
+ filename => $filename, err => $err);
+
+Once you are done with marking the strings, you can try to run your
+scripts/modules and you will see a lot of complaints by Perl that it
+doesn't know about "__" (in various incarnations). Remember that "__"
+is really a function call and you have to import the function "__" and
+its relatives into your namespace.
+
+What you have to do is to invent an identifier for your package (see
+Locale::TextDomain for hints) and then add the following line to all
+of your source files that produced errors:
+
+ use Locale::TextDomain ('Name-Of-My-Package');
+
+You will be happy if "Name-Of-My-Package" is the same as the Makefile
+variable "TEXTDOMAIN" in the file "po/TEXTDOMAIN" that you have
+created in the beginning.
+
+For the common case of a pure library: Is that really all I have to
+do? Yes! What about POSIX::setlocale(), don't I have to make a call
+somewhere? No, not for a library! And what about calls to textdomain()
+and bindtextdomain() that I know from C or other languages? No, this
+is all hidden in "use TextDomain (PACKAGENAME)" for Perl.
+
+To make it clear again: A library should NEVER change the locale
+settings. The script that uses a library (or multiple libraries)
+should do that, and this boils down to three lines of Perl:
+
+ use POSIX qw (setlocale);
+ use Locale::Messages (LC_MESSAGES);
+
+ setlocale (LC_MESSAGES, "");
+
+That means: The *calling* Perl script, the one that uses possibly
+internationalized libraries, should initialize the locale settings to
+the user preferences. Libraries should honor that setting but should
+never change it. If a script misses a call to setlocale(), your
+internationalized library will happily continue to work flawlessly
+with the original English messages, it is up to the client programmer
+to reveal the i18n features in your code!
+
+If you are new to internationalization (i + 18 characters + n = i18n),
+you will probably only understand half of the above. Visit
+http://ml.imperia.org/listinfo/libintl-perl/, subscribe to the mailing
+list libintl-perl@imperia.net and ask there. And don't blame me, the
+author, for any difficulties. libintl-perl is as complicated as i18n
+itself, it even simplifies a lot of things. The complicated rest is
+inevitable. ;-)
+
+Good luck!
+
+Guido
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/MANIFEST b/tp/maintain/lib/libintl-perl/sample/simplecal/MANIFEST
new file mode 100644
index 0000000..dedb0ff
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/MANIFEST
@@ -0,0 +1,30 @@
+MANIFEST
+Makefile.PL
+bin/simplecal.pl
+lib/SimpleCal.pm
+po/Makefile
+po/PACKAGE
+po/POTFILES.in
+po/ar.po
+po/ar_SA.po
+po/de.po
+po/de_AT.po
+po/fr.po
+po/ga.po
+po/it.po
+po/nl.po
+po/org.imperia.simplecal.pot
+po/pt.po
+po/pt_BR.po
+po/ru.po
+lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mo
+lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mo
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/Makefile.PL b/tp/maintain/lib/libintl-perl/sample/simplecal/Makefile.PL
new file mode 100644
index 0000000..8754aeb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/Makefile.PL
@@ -0,0 +1,54 @@
+#! /usr/local/bin/perl -w # -*- perl -*-
+
+# vim: tabstop=4
+# $Id: Makefile.PL,v 1.1 2011-10-12 23:51:51 pertusus Exp $
+
+# Makefile generator for libintl-perl.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+use ExtUtils::MakeMaker;
+
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+
+WriteMakefile(
+ NAME => 'simplecal',
+ VERSION_FROM => 'bin/simplecal.pl',
+ PREREQ_PM => {
+ Locale::TextDomain => 0,
+ },
+ EXE_FILES => [ 'bin/simplecal.pl' ],
+ AUTHOR => 'Guido Flohr <guido@imperia.net>',
+ ABSTRACT => 'Demonstration package for libintl-perl',
+);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/README-NLS b/tp/maintain/lib/libintl-perl/sample/simplecal/README-NLS
new file mode 100644
index 0000000..9f77651
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/README-NLS
@@ -0,0 +1,200 @@
+Notes on National Language Support (NLS)
+****************************************
+
+This package is internationalized with libintl-perl, a free
+internationalization library for Perl, you will need to install a copy of
+libintl-perl in order to use the package. You can get libintl-perl from the
+Comprehensive Perl Archive Network CPAN at http://www.cpan.org/.
+
+The following notes are meant to be a quick start guide for somewhat
+experienced users and system administrators and many important details had to
+be omitted for brevity. If you have any difficulties with the
+internationalization features of this package, no matter if you are a
+programmer, a translator, or an end user, feel free to ask at the mailing list
+for libintl-perl. To do so, send an e-mail to the address
+<libintl-perl AT imperia DOT net> (please replace "AT" with a "@", and "DOT"
+with a dot ".").
+
+You can subscribe to this list at
+
+ http://ml.imperia.org/mailman/listinfo/libintl-perl
+
+A searchable archive of earlier postings is located at
+
+ http://ml.imperia.org/libintl-perl/
+
+You may already find an answer to your question there.
+
+Feel free to include this document in your own Perl packages internationalized
+with libintl-perl, no severe copyright restrictions apply. You should send
+corrections or improvements to the author Guido Flohr <guido AT imperia DOT
+net>, so that others can benefit from your changes.
+
+The End User's View
+===================
+
+The installation routine for this package will automatically take care that
+your system has a sufficient version of libintl-perl installed. This is
+basically sufficient for proper operation, but - especially if
+internationalized software is new to you - you should read on carefully in
+order to fully benefit from the internationalization (I18N) features of this
+package.
+
+Perl Setup
+----------
+
+The I18N library libintl-perl will run with a wide range of Perl versions (at
+least from Perl version 5.005_03 to Perl 5.8.0) but you will experience slight
+difference in features and performance depending on the version of Perl you
+use.
+
+With Perl versions prior to 5.7.3 you can use the package for all European
+scripts (including those with Greek or Cyrillic scripts), and also for many
+scripts used outside Europe, like Arabic, Hebrew, Georgian, Vietnamese or
+Thai, more general all scripts using 8 bit charsets. Other scripts are only
+available if the translations in this package are provided in Unicode and they
+can only be output in Unicode.
+
+Beginning with Perl 5.7.3 the module Encode became part of the Perl core, and
+it offers you a much wider range of possible scripts. If you plan to use some
+of the lesser used scripts for Chinese, Japanese, and Korean, you should also
+install the module Encode::HanExtra.
+
+Setting Your Language
+---------------------
+
+Most modern systems are already prepared and configured for
+internationalization, and the user interface of the software you have
+installed will already be configured for your preferred language. Packages
+internationalized with libintl-perl will honor these configuration settings
+and will also operate in your preferred language if the necessary translations
+are available.
+
+The environment variable "LANGUAGE" has the highest precedence for
+translations. The most common format for this environment variable is a
+(lowercase) two-letter language code and an (uppercase) two-letter country
+code separated by an underscore "_", for example:
+
+ LANGUAGE=fr_BE
+ export LANGUAGE
+
+This will set your language preferences to French ("fr") for Belgium ("BE").
+Other examples are French for France ("fr_FR"), German for Austria ("de_AT"),
+and so on. You can also omit the country part ("FR", "DE", "IT", "RU", ...)
+in which case a default setting for the country will be assumed.
+
+If there are no translations available for your selected languages, the
+original message (normally in English) will be displayed.
+
+You can also define a chain of languages to be tried separated by a colon:
+
+ LANGUAGE=fr_BE:fr_FR:fr:it
+
+Read this as: "I want translations in French for Belgium. If they are not
+available try French for France, then any French translation, and finally
+Italian". Please note that this chain notation is only allowed for the
+environment variable "LANGUAGE", it is not valid for any of the following
+variables.
+
+If "LANGUAGE" is not set, the library checks the variable "LANG". It has the
+same syntax as "LANGUAGE" but does not allow the preferences chain with the
+colon syntax. After "LANG" the variable "LC_MESSAGES" (think "locale category
+messages") is tried, and finally "LC_ALL".
+
+Note for Microsoft Windows users: The locale preferences you have configured
+for your system cannot yet be evaluated by libintl-perl. This may change for
+future versions of libintl-perl but for the moment you have to make do with
+the instructions given above. In order to set environment variables, you have
+to right-click on the icon "My Computer" on your desktop, select "Properties"
+in the context menu, and then click the tab labelled "Environment variables".
+
+Setting the Output Charset
+--------------------------
+
+Even if you have managed to properly select your preferred language, you may
+still have difficulties reading the program languages, because libintl-perl
+was unable to determine the correct charset to use for messages. For example,
+it may assume Unicode ("UTF-8") but you really need ISO-Latin-1 (also known as
+"Latin-1" or "ISO-8859-1"). If this is the case, please set the environment
+variable "OUTPUT_CHARSET" to the appropriate value, for example:
+
+ OUTPUT_CHARSET=iso-8859-1
+ export OUTPUT_CHARSET
+
+Charset names are case-insensitive, i. e. "LATIN-1" is the equivalent to
+"Latin-1" or even "lAtIn-1".
+
+Note: The output charset "utf8" is NOT recognized. Please use the correct
+abbreviation "utf-8" (with a hyphen) instead.
+
+The Translator's View
+=====================
+
+If you want to contribute a new translation to this package, please contact
+the author first. Somebody may have already started this translation, and
+furthermore the package author will be able to give you detailled instructions
+and help.
+
+Translating a Perl package is not much work and it does not require any
+technical skills. If you are able to use the software itself, you will also
+be able to contribute a translation for your language. But why should you do
+that? You are able to read and understand this text and you will also be able
+to understand the English messages that the software spits out by default.
+
+Computers are an integral part of today's society. Computers are used to
+explore new sources of information, forbidding computers would be a modern
+form of censorship. Computers may also improve social life, the internet
+helps people to find contacts in their area and all over the world, even if
+they would otherwise be deprived from that because of a handicap, lack of money
+for traveling, or other reasons. In many societies, the ability to use and
+handle a computer also has a strong impact on your perspectives in life, you
+may not be able to find an adequate job because of your lack of computer
+experience, or you may even lose your job because of that.
+
+Everybody should benefit from computers, regardless of cultural
+background. Computers are expansive goods, and their price is already a high
+barrier to cross. If computers speak in a foreign language, the learning
+curve gets steeper and the barrier gets even higher. You can help the people
+that share your native language by contributing a translation. The author of
+this package has already prepared everything, the rest is up to you!
+
+The Programmer's View
+=====================
+
+You have downloaded this package because you want to use it in your own
+project(s). The fact that the package is internationalized with libintl-perl
+does not affect its usability in any way. But you should keep in mind that
+textual messages produced by the package may change according to the locale
+settings at run-time. This can lead to errors. For example, if you parse
+error messages produced by the package, you will most probably fail to detect
+what you are looking for, if these error messages are suddenly presented in
+another language or another output charset.
+
+It is probably needless to say that this is bad practice and an indicator for
+a poorly written interface. Either you have missed the correct method for
+determining the substance of the message in a locale-independent manner, or
+the author of the package has mis-designed the package interface. In any
+case, this is a technical problem that should be solved by technicians. You
+should not put that burden on the shoulders of your users but rather solve the
+problem in cooperation with the author of the module that causes it.
+
+If this is absolutely impossible, as a temporary workaround you can completely
+switch off the native language support of the package by setting the
+environment variable "LANGUAGE" to the special value "C":
+
+ BEGIN {
+ $ENV{LANGUAGE} = $ENV{LANG} = "C";
+ }
+
+The value "C" instructs libintl-perl to leave all messages untouched, and you
+can use the package as if it was not internationalized at all.
+
+If the project you are working on is not yet internationalized, you should
+consider to prepare it for internationalization now. Doing so is only little
+work for yourself, but results in a large benefit for the users of your
+software. The package "libintl-perl" ships with exhaustive documentation for
+programmers and a sample package that you can use as a skeleton for your own
+project(s). Internationalizing Perl software with libintl-perl is easy, the
+package that this file is a part of, prooves that.
+
+Guido Flohr
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/TRANSLATIONS b/tp/maintain/lib/libintl-perl/sample/simplecal/TRANSLATIONS
new file mode 100644
index 0000000..9c90da4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/TRANSLATIONS
@@ -0,0 +1,41 @@
+This package is internationalized with libintl-perl. It can be configured
+to speak in different languages. If your language is still missing, you
+should take a look into the file "README-NLS" (section "The Translator's
+View") where you will find instructions for contributing a translation
+into your language to this package.
+
+You can see the translation status of this package for various languages
+in the following table. If your language is completely missing in the
+table, your translation will be welcomed as a contribution to the
+project.
+
+Translation Status for "simplecal"
+==================================
+
+Language | Code | Status | Current Translator
+--------------------+-------+---+----+---------------------------------
+Arabic | ar | O | C | Guido Flohr
+Arabic/Saudi Arabia | ar_SA | O | C | Guido Flohr
+Dutch | nl | O | C | Guido Flohr
+French | fr | O | C | Guido Flohr
+German | de | A | C | Guido Flohr
+German/Austria | de_AT | O | C | Guido Flohr
+Irish | ga | O | C | Guido Flohr
+Italian | it | O | C | Guido Flohr
+Portuguese | pt | O | C | Guido Flohr
+Portuguese/Brazil | pt_BR | O | C | Guido Flohr
+Russian | ru | O | C | Guido Flohr
+
+Legend: The status is displayed in two columns. The left column informs
+you whether somebody is already in charge of that translation, the right
+columns reflects the status of the translation itself.
+
+Left: (O) - Orphaned: The translation needs a new maintainer. You?
+ (A) - Assigned: The translation already has a maintainer.
+
+Right: (C) - Complete: All messages are translated.
+ (M) - Mostly: Most (all important) messages are translated.
+ (P) - Partially: The translation is only partially done.
+ (-) - Missing: No translation is currently available.
+
+Messages for missing translations will be displayed in English.
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/bin/simplecal.pl b/tp/maintain/lib/libintl-perl/sample/simplecal/bin/simplecal.pl
new file mode 100644
index 0000000..23f7606
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/bin/simplecal.pl
@@ -0,0 +1,105 @@
+#! /usr/local/bin/perl -w
+# vim: tabstop=4
+
+use strict;
+
+# Include our little library.
+use SimpleCal;
+
+# For setlocale.
+use POSIX qw (setlocale);
+use Locale::Messages qw (LC_MESSAGES);
+
+# Our script contains translatable messages. We have to assign
+# it a text domain. Note that this is only needed here because the
+# script *itself* contains translatable messages from the text domain
+# "org.imperia.simplecal".
+use Locale::TextDomain ('org.imperia.simplecal');
+
+use vars qw ($VERSION);
+$VERSION = '1.0';
+
+# Set the locale according to the environment.
+setlocale (LC_MESSAGES, "");
+
+# Print a greeting message. We want to be flexible with the package
+# name, and so we will make this a placeholder.
+my $package_name = "SimpleCal";
+#print __x("Welcome to {package}!\n", package => $package_name);
+
+# Inquire current date and time.
+my @now = localtime;
+my $year = $now[5] + 1900; # Current year.
+my $month = $now[4]; # Current month in the range of 0-11.
+
+# Print the header for our calendar.
+my $month_name = SimpleCal::month_name ($month);
+print "\t$month_name $year\n";
+
+# And now print the abbreviation for every day of the week.
+foreach my $i (0 .. 6) {
+ # This makes the (insecure!) assumption that the abbreviated
+ # week day is no longer than 5 characters.
+ printf "%6s", abbr_week_day ($i);
+}
+# And a final newline.
+print "\n";
+
+# The rest of the program only prints out the day numbers and is not
+# particularly interesting.
+
+# We will start at a Sunday where month day <= 0 and suppress negative dates
+# later.
+my $first_day = $now[3] - $now[6];
+if ($first_day > 0) {
+ $first_day %= 7;
+ $first_day -= 7;
+}
+
+my $last_day;
+if ($month == 1) {
+ if (SimpleCal::is_leap_year ($year)) {
+ $last_day = 29;
+ } else {
+ $last_day = 28;
+ }
+} elsif ($month == 3 || $month == 5 || $month == 8 || $month == 10) {
+ $last_day = 30;
+} else {
+ $last_day = 31;
+}
+
+my $day_of_week = 0; # Sunday.
+foreach my $mday ($first_day .. $last_day) {
+ if ($mday <= 0) {
+ printf "%6s", ' ';
+ } else {
+ printf "% 6d", $mday;
+ }
+ ++$day_of_week;
+ if ($day_of_week == 7) {
+ $day_of_week = 0;
+ print "\n";
+ }
+}
+
+print "\n" if $day_of_week;
+
+# Say good bye.
+# TRANSLATORS: This may be a colloquial way of saying good bye to the user.
+#print __"Bye.\n";
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..857fbc2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..0a22eca
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ar_SA/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..6667ba4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..d7224e3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/de_AT/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..9edb5ca
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/fr/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..e5a3fd9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ga/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..69497c6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/it/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..65c34ac
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/nl/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..4d86f9c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..514a6cd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/pt_BR/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mo b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mo
new file mode 100644
index 0000000..2501b65
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/LocaleData/ru/LC_MESSAGES/org.imperia.simplecal.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/lib/SimpleCal.pm b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/SimpleCal.pm
new file mode 100644
index 0000000..1d01118
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/lib/SimpleCal.pm
@@ -0,0 +1,136 @@
+#! /bin/false
+# vim: tabstop=4
+
+package SimpleCal;
+
+use strict;
+
+# The text domain (identifier) of our package is 'org.imperia.simplecal',
+# following the advice in the pod of Locale::TextDomain.
+use Locale::TextDomain qw (org.imperia.simplecal);
+
+use base qw (Exporter);
+use vars qw (@EXPORT);
+
+@EXPORT = qw (month_name abbr_week_day is_leap_year);
+
+sub month_name ($)
+{
+ my $month = shift;
+ $month = 0 unless $month;
+ $month %= 12;
+
+ # This is of course stupid but explains things best. See the
+ # function abbr_week_day() for a smarter approach.
+ if ($month == 0) {
+ return __"January";
+ } elsif ($month == 1) {
+ return __"February";
+ } elsif ($month == 2) {
+ return __"March";
+ } elsif ($month == 3) {
+ return __"April";
+ } elsif ($month == 4) {
+ return __"May";
+ } elsif ($month == 5) {
+ return __"June";
+ } elsif ($month == 6) {
+ return __"July";
+ } elsif ($month == 7) {
+ return __"August";
+ } elsif ($month == 8) {
+ return __"September";
+ } elsif ($month == 9) {
+ return __"October";
+ } elsif ($month == 10) {
+ return __"November";
+ } else {
+ return __"December";
+ }
+}
+
+# This is smarter. We initialize an array with the English names first.
+# The function N__() is exported by Locale::TextDomain and returns
+# its argument unmodified. Its sole purpose is to mark the string as
+# being translatable, so that it will make it into the pot file for
+# our package.
+#
+# It is dangerous to use __() here! Why? Then the array will be translated
+# only once, at compile time. It is very likely that the locale settings
+# have not yet been initialized to the user preferences at this point
+# of time, and since the array is already created, the translation
+# will not produce the correct results.
+#
+# This should become clearer if you imagine that our library would be
+# part of a daemon that is running for days or even years. The array
+# would be initialized with the language that was set at program startup
+# and would then never change again, because you actually cache the
+# translations.
+my @abbr_week_days = (
+ N__"Sun",
+ N__"Mon",
+ N__"Tue",
+ N__"Wed",
+ N__"Thu",
+ N__"Fri",
+ N__"Sat",
+);
+
+sub abbr_week_day ($)
+{
+ my $wday = shift;
+ $wday = 0 unless $wday;
+ $wday %= 7;
+
+ # The argument to __() is simply a string, not necessarily a string
+ # constant. The following line will look up the English name in the
+ # array, and then translates that string on the fly into the current
+ # user language.
+ return __($abbr_week_days[$wday]);
+ # This can still be suboptimal because it translates the string again
+ # and again. In situations where you are absolutely sure that the
+ # user language will not change again, you may prefer to cache the
+ # translations despite of the above hints, especially if you
+ # call the function very many times. In a library you can usually
+ # not be sure whether the user language can change or not and you
+ # should avoid that. The message lookup is quite fast.
+
+ # Instead of the above return directive we could also have written:
+ #
+ # return $__{$abbr_week_days[$wday]};
+ #
+ # resp.
+ #
+ # return $__->{$abbr_week_days[$wday]};
+ #
+ # It is basically a matter of taste whether you prefer the tied
+ # hash lookup or the function call.
+}
+
+# Check whether the argument is a leap year.
+sub is_leap_year
+{
+ my $year = shift;
+ $year = 0 unless $year;
+
+ return 1 if $year % 4 == 0 && ($year % 100 != 0 || $year % 400 == 0);
+
+ return;
+}
+
+1;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/Makefile b/tp/maintain/lib/libintl-perl/sample/simplecal/po/Makefile
new file mode 100644
index 0000000..6fb37b1
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/Makefile
@@ -0,0 +1,97 @@
+# Makefile for various po files.
+
+srcdir = .
+libdir = ../lib
+
+#CATALOGS = $(addsuffix .po, LINGUAS)
+CATALOGS = $(LINGUAS)
+MO_FILES = $(addsuffix .mo, $(LINGUAS))
+
+MSGMERGE = msgmerge
+MSGFMT = msgfmt
+XGETTEXT = xgettext
+CATOBJEXT = .po
+
+include PACKAGE
+
+TD = $(strip $(TEXTDOMAIN))
+
+default: help
+
+all: $(TD).pot update-po update-mo install
+
+help:
+ @echo "Available targets:"
+ @echo " pot - remake master catalog"
+ @echo " update-po - merge po files"
+ @echo " update-mo - regenerate mo files"
+ @echo " install - install mo files"
+ @echo " all - all of the above"
+
+POTFILES = $(srcdir)/POTFILES.in \
+ $(shell cat $(srcdir)/POTFILES.in)
+
+pot: $(TD).pot
+
+clean:
+ rm -f *~ *.bak *.mo
+
+# FIXME: The parameter --from-code is only needed if your sources contain
+# any 8 bit data (even in comments). UTF-8 is only a guess here, but it
+# will at least accept any 8 bit data.
+#
+# The parameter "--language=perl" is not strictly needed because the
+# source language of all our files will be auto-detected by xgettext
+# by their filename extension. You should even avoid this parameter
+# if you want to extract strings from multiple source languages.
+$(TD).pot: $(POTFILES)
+ $(XGETTEXT) --output=$(srcdir)/$(TD).pox --from-code=utf-8 \
+ --add-comments=TRANSLATORS: --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder="$(COPYRIGHT_HOLDER)" \
+ --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
+ --keyword --keyword='$$__' --keyword=__ --keyword=__x \
+ --keyword=__n:1,2 --keyword=__nx:1,2 --keyword=__xn:1,2 \
+ --keyword=__p:1c,2 --keyword=__np:1c,2,3 \
+ --keyword=__npx:1c,2,3 --keyword=N__ --keyword=N__n:1,2 \
+ --keyword=N__p:1c,2 --keyword=N__np:1c,2,3 --keyword=%__ \
+ --language=perl && \
+ rm -f $@ && mv $(TD).pox $@
+
+install: $(MO_FILES)
+ cd $(srcdir); \
+ targetdir='$(libdir)/LocaleData'; \
+ languages='$(LINGUAS)'; \
+ for lang in $$languages; do \
+ mkdir -p "$$targetdir/$$lang/LC_MESSAGES" || exit 1; \
+ dest="$$targetdir/$$lang/LC_MESSAGES/$(TD).mo"; \
+ cat="$$lang.mo"; \
+ echo "installing $$cat as $$dest"; \
+ cp -f $$cat $$dest && chmod 644 $$dest || exit 1; \
+ done
+
+update-mo: $(MO_FILES)
+
+update-po:
+ $(MAKE) $(TD).pot
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(TD).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+.SUFFIXES:
+.SUFFIXES: .po .mo
+
+.po.mo:
+ $(MSGFMT) --check --statistics --verbose -o $@ $<
+
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/PACKAGE b/tp/maintain/lib/libintl-perl/sample/simplecal/po/PACKAGE
new file mode 100644
index 0000000..4f50314
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/PACKAGE
@@ -0,0 +1,26 @@
+# Makefile snippet that holds all package-dependent information.
+
+# Add more languages here! Beware that this is a makefile snippet and
+# you have to adhere to make syntax.
+LINGUAS = de \
+ de_AT \
+ it \
+ ru \
+ fr \
+ ar \
+ ar_SA \
+ ga \
+ pt \
+ pt_BR \
+ nl \
+
+# Textdomain for our package.
+TEXTDOMAIN = org.imperia.simplecal
+
+# Initial copyright holder added to pot and po files.
+#COPYRIGHT_HOLDER = Guido Flohr
+COPYRIGHT_HOLDER = Edit the file PACKAGE to change this.
+
+# Where to send msgid bugs?
+#MSGID_BUGS_ADDRESS = Guido Flohr <guido@imperia.net>
+MSGID_BUGS_ADDRESS = Edit the file PACAKGE to change this.
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/POTFILES.in b/tp/maintain/lib/libintl-perl/sample/simplecal/po/POTFILES.in
new file mode 100644
index 0000000..f1b5acc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/POTFILES.in
@@ -0,0 +1,2 @@
+../bin/simplecal.pl
+../lib/SimpleCal.pm
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar.po
new file mode 100644
index 0000000..bf76fce
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar.po
@@ -0,0 +1,97 @@
+# Arabic translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-27 18:56+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Arabic <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-6\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr ""
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr " {package} \n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "! \n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar_SA.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar_SA.po
new file mode 100644
index 0000000..d4b287a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ar_SA.po
@@ -0,0 +1,91 @@
+# Arabic translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-27 18:56+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Arabic <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-6\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr " "
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr " "
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr " "
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr " "
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr ""
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/de.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/de.po
new file mode 100644
index 0000000..33f15d4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/de.po
@@ -0,0 +1,98 @@
+# German translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: Edit the file PACAKGE to change this.\n"
+"POT-Creation-Date: 2005-08-16 18:42+0300\n"
+"PO-Revision-Date: 2003-07-28 04:06+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: German <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "Januar"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "Februar"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "Mrz"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "April"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "Mai"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "Juni"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "Juli"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "August"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "September"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "Oktober"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "November"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "Dezember"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "So"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "Mo"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "Di"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "Mi"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "Do"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "Fr"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "Sa"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Willkommen bei {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "Tschss!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/de_AT.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/de_AT.po
new file mode 100644
index 0000000..a60eda6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/de_AT.po
@@ -0,0 +1,92 @@
+# German (Austria) translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-27 18:47+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: German <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "Jnner"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "Feber"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr ""
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/fr.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/fr.po
new file mode 100644
index 0000000..f5422eb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/fr.po
@@ -0,0 +1,97 @@
+# French translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:07+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: French <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "janvier"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "fvrier"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "mars"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "avril"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "mai"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "juin"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "juillet"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "aot"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "septembre"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "octobre"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "novembre"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "dcembre"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "di"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "lu"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "ma"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "me"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "je"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "ve"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "sa"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Bienvenu {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr " toute l'heure!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/ga.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ga.po
new file mode 100644
index 0000000..11feacb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ga.po
@@ -0,0 +1,97 @@
+# Irish translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:10+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Irish <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "Eanir"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "Feabhra"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "Mrta"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "Aibren"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "M na Bealtaine"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "Meith"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "Iil"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "Lnasa"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "Men Fmhair"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "Deireadh Fmhair"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "M na Samhna"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "M na Nollag"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "Domh"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "Luan"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "Mirt"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "Cad"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "Dar"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "Aoine"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "Sath"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Bidh {package} agat agus filte!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "Sln leat!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/it.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/it.po
new file mode 100644
index 0000000..fd5124a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/it.po
@@ -0,0 +1,97 @@
+# Italian translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:10+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Italian <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "gennaio"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "febbraio"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "marzo"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "aprile"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "maggio"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "giugno"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "luglio"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "agosto"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "settembre"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "ottobre"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "novembre"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "dicembre"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "dom"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "lun"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "mar"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "mer"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "gio"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "ven"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "sab"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Benvenuti in {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "Ciao!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/nl.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/nl.po
new file mode 100644
index 0000000..e272dd0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/nl.po
@@ -0,0 +1,97 @@
+# Dutch translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:08+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Dutch <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "januari"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "februari"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "maart"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "april"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "mei"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "juni"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "juli"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "augustus"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "september"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "oktober"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "november"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "december"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "zo"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "ma"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "di"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "wo"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "do"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "vr"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "za"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Welkom bij {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "Tot zo!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/org.imperia.simplecal.pot b/tp/maintain/lib/libintl-perl/sample/simplecal/po/org.imperia.simplecal.pot
new file mode 100644
index 0000000..c44f877
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/org.imperia.simplecal.pot
@@ -0,0 +1,93 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Edit the file PACKAGE to change this.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: Edit the file PACAKGE to change this.\n"
+"POT-Creation-Date: 2005-08-17 11:53+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr ""
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt.po
new file mode 100644
index 0000000..6bb859c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt.po
@@ -0,0 +1,97 @@
+# Portuguese translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:24+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Portuguese <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "Janeiro"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "Fevereiro"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "Maro"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "Abril"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "Maio"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "Junho"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "Julho"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "Agosto"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "Setembro"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "Outubro"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "Novembro"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "Dezembro"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "Dom"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "Seg"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "Ter"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "Qua"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "Qui"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "Sex"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "Sb"
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr "Bem-vindo ao {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "At a vista!\n"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt_BR.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt_BR.po
new file mode 100644
index 0000000..2c25c8f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/pt_BR.po
@@ -0,0 +1,91 @@
+# Brazilian Portuguese translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-27 18:56+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Brazilian Portuguese <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr "janeiro"
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr "fevereiro"
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr "maro"
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr "abril"
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr "maio"
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr "junho"
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr "julho"
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr "agosto"
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr "setembro"
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr "outubro"
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr "novembro"
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr "dezembro"
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr "Dom"
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr "Seg"
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr "Ter"
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr "Qua"
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr "Qui"
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr "Sex"
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr "Sb"
diff --git a/tp/maintain/lib/libintl-perl/sample/simplecal/po/ru.po b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ru.po
new file mode 100644
index 0000000..c3e0bba
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/sample/simplecal/po/ru.po
@@ -0,0 +1,97 @@
+# Russian translations for SimpleCal.
+# Copyright (C) 2003 Imperia AG, Guido Flohr <guido@imperia.net>.
+# This file is distributed under the same license as libintl-perl.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: SimpleCal\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-07-28 04:27+0200\n"
+"PO-Revision-Date: 2003-07-28 04:21+0200\n"
+"Last-Translator: Guido Flohr <Guido.Flohr@imperia.net>\n"
+"Language-Team: Russian <guido@imperia.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../lib/SimpleCal.pm:26
+msgid "January"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:28
+msgid "February"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:30
+msgid "March"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:32
+msgid "April"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:34
+msgid "May"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:36
+msgid "June"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:38
+msgid "July"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:40
+msgid "August"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:42
+msgid "September"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:44
+msgid "October"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:46
+msgid "November"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:48
+msgid "December"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:70
+msgid "Sun"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:71
+msgid "Mon"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:72
+msgid "Tue"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:73
+msgid "Wed"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:74
+msgid "Thu"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:75
+msgid "Fri"
+msgstr ""
+
+#: ../lib/SimpleCal.pm:76
+msgid "Sat"
+msgstr ""
+
+#~ msgid "Welcome to {package}!\n"
+#~ msgstr " {package}!\n"
+
+#~ msgid "Bye.\n"
+#~ msgstr "!\n"
diff --git a/tp/maintain/lib/libintl-perl/test.pl b/tp/maintain/lib/libintl-perl/test.pl
new file mode 100755
index 0000000..d9fd376
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/test.pl
@@ -0,0 +1,127 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# $Id: test.pl,v 1.1 2011-10-12 23:51:25 pertusus Exp $
+
+# Portable character conversion for Perl.
+# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
+# all rights reserved.
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+# This is a safe wrapper for systems that lack a POSIX shell or have
+# a too low limit on the length of the command line.
+
+use strict;
+use File::Basename;
+use Test::Harness;
+use File::Spec;
+
+sub test_harness;
+
+my $here = dirname ($0);
+my $test_dir = $here . '/tests';
+my @lib_dirs = ($here . '/blib/lib', $here . '/blib/arch');
+local *DIR;
+opendir DIR, $test_dir or die "cannot open test directory '$test_dir': $!";
+@ARGV = sort map $test_dir . '/' . $_, grep /\.t$/, readdir DIR;
+closedir DIR;
+
+eval {
+ require Encode;
+};
+
+unless ($@) {
+ print "# Encode revision used is $Encode::VERSION.\n";
+}
+
+test_harness ($ENV{TEST_HARNESS} || 0, @lib_dirs);
+
+sub test_harness
+{
+ $Test::Harness::verbose = shift;
+
+ local @INC = @INC;
+ unshift @INC, map { File::Spec->rel2abs($_) } @_;
+ my $name = $0;
+ $name =~ s,test\.pl$,xs_disabled,;
+ local *HANDLE;
+ open HANDLE, "<$name" or die "cannot open '$name': $!";
+ my $xs_disabled = <HANDLE>;
+ close HANDLE;
+ unless ($xs_disabled) {
+ # It is pointless to test the XS extension, if no German
+ # locales are installed on the system. The results
+ # vary in almost arbitrary ways.
+ # FIXME: Do not rely on the de, resp. de_AT locales only.
+ # We can simply try other combinations (fr_CA,
+ # en_GB, pt_BR, and so on), since the actual
+ # translations are not meaningful in our case.
+ # We could therefore just test here for certain
+ # combinations, and then create the mo files on
+ # the fly by copying.
+ require POSIX;
+ require Locale::Messages;
+ Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+ Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+ Locale::Messages::nl_putenv ("LANG=de_AT");
+ Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+ Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+ my $has_de_locale = POSIX::setlocale (POSIX::LC_ALL() => '');
+ unless ($has_de_locale) {
+ require Locale::Util;
+
+ $has_de_locale =
+ Locale::Util::set_locale (POSIX::LC_ALL(),
+ 'de');
+ undef $has_de_locale
+ unless ($has_de_locale
+ && $has_de_locale =~ /(?:germany|de)/i);
+ }
+ unless ($has_de_locale) {
+ $xs_disabled = 1;
+ print <<EOF;
+The XS version of libintl-perl cannot be tested on your system because
+the locale definitions for German do not exist.
+EOF
+ }
+ $xs_disabled = !$has_de_locale;
+ }
+
+ if ($xs_disabled) {
+ Test::Harness::runtests (grep { ! /_xs.t$/ } sort
+ {lc $a cmp lc $b } @ARGV);
+ } else {
+ Test::Harness::runtests (sort {lc $a cmp lc $b } @ARGV);
+ }
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/00gettext.t b/tp/maintain/lib/libintl-perl/tests/00gettext.t
new file mode 100644
index 0000000..ee006e7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/00gettext.t
@@ -0,0 +1,32 @@
+# -*- perl -*-
+# Test if module loads ok.
+
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+######################### We start with some black magic to print on failure.
+
+# Change 1..1 below to 1..last_test_to_print .
+# (It may become useful if the test is moved to ./t subdirectory.)
+
+BEGIN { $| = 1; print "1..1\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use Locale::Messages;
+$loaded = 1;
+print "ok 1\n";
+
+######################### End of black magic.
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/00recode.t b/tp/maintain/lib/libintl-perl/tests/00recode.t
new file mode 100644
index 0000000..aaebb2a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/00recode.t
@@ -0,0 +1,32 @@
+# -*- perl -*-
+# Test if module loads ok.
+
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+######################### We start with some black magic to print on failure.
+
+# Change 1..1 below to 1..last_test_to_print .
+# (It may become useful if the test is moved to ./t subdirectory.)
+
+BEGIN { $| = 1; print "1..1\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use Locale::Recode;
+$loaded = 1;
+print "ok 1\n";
+
+######################### End of black magic.
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/01trivial.t b/tp/maintain/lib/libintl-perl/tests/01trivial.t
new file mode 100644
index 0000000..935d808
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/01trivial.t
@@ -0,0 +1,65 @@
+# -*- perl -*-
+# A trivial conversion.
+
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+use strict;
+use Test;
+
+BEGIN { plan tests => 4 }
+
+require Locale::Recode;
+
+sub compare_internal;
+
+my $text = 'Perl';
+my $expect = [ unpack 'C*', $text ];
+my $cd = Locale::Recode->new (from => 'ISO-8859-1',
+ to => 'INTERNAL');
+
+ok !$cd->getError;
+
+my $result = $text;
+ok $cd->recode ($result) && compare_internal $expect => $result;
+
+# Aliases!
+$cd = Locale::Recode->new (from => 'lAtIn2',
+ to => 'l3');
+
+ok !$cd->getError;
+
+$result = $expect = $text;
+ok $cd->recode ($result) && $result eq $expect;
+
+sub compare_internal
+{
+ my ($bonny, $clyde) = @_;
+
+ return unless defined $bonny;
+ return unless defined $clyde;
+ return unless 'ARRAY' eq ref $bonny;
+ return unless 'ARRAY' eq ref $clyde;
+
+ return unless @$bonny == @$clyde;
+
+ for (my $i = 0; $i < @$bonny; ++$i) {
+ return unless $bonny->[$i] == $clyde->[$i];
+ }
+
+ return 1;
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/02asmo_449.t b/tp/maintain/lib/libintl-perl/tests/02asmo_449.t
new file mode 100644
index 0000000..6f21589
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02asmo_449.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ASMO_449',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ASMO_449',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ASMO_449');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ASMO_449',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x060c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x061b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x061f
+0x40 0x0040
+0x41 0x0621
+0x42 0x0622
+0x43 0x0623
+0x44 0x0624
+0x45 0x0625
+0x46 0x0626
+0x47 0x0627
+0x48 0x0628
+0x49 0x0629
+0x4a 0x062a
+0x4b 0x062b
+0x4c 0x062c
+0x4d 0x062d
+0x4e 0x062e
+0x4f 0x062f
+0x50 0x0630
+0x51 0x0631
+0x52 0x0632
+0x53 0x0633
+0x54 0x0634
+0x55 0x0635
+0x56 0x0636
+0x57 0x0637
+0x58 0x0638
+0x59 0x0639
+0x5a 0x063a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0640
+0x61 0x0641
+0x62 0x0642
+0x63 0x0643
+0x64 0x0644
+0x65 0x0645
+0x66 0x0646
+0x67 0x0647
+0x68 0x0648
+0x69 0x0649
+0x6a 0x064a
+0x6b 0x064b
+0x6c 0x064c
+0x6d 0x064d
+0x6e 0x064e
+0x6f 0x064f
+0x70 0x0650
+0x71 0x0651
+0x72 0x0652
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0xfffd
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x203e
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02atari-st-euro.t b/tp/maintain/lib/libintl-perl/tests/02atari-st-euro.t
new file mode 100644
index 0000000..ccbdea2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02atari-st-euro.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ATARI-ST-EURO',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ATARI-ST-EURO',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ATARI-ST-EURO');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ATARI-ST',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00ec
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00ff
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00a5
+0x9e 0x00df
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x00e3
+0xb1 0x00f5
+0xb2 0x00d8
+0xb3 0x00f8
+0xb4 0x0153
+0xb5 0x0152
+0xb6 0x00c0
+0xb7 0x00c3
+0xb8 0x00d5
+0xb9 0x00a8
+0xba 0x00b4
+0xbb 0x2020
+0xbc 0x00b6
+0xbd 0x00a9
+0xbe 0x00ae
+0xbf 0x2122
+0xc0 0x0133
+0xc1 0x0132
+0xc2 0x05d0
+0xc3 0x05d1
+0xc4 0x05d2
+0xc5 0x05d3
+0xc6 0x05d4
+0xc7 0x05d5
+0xc8 0x05d6
+0xc9 0x05d7
+0xca 0x05d8
+0xcb 0x05d9
+0xcc 0x05db
+0xcd 0x05dc
+0xce 0x05de
+0xcf 0x05e0
+0xd0 0x05e1
+0xd1 0x05e2
+0xd2 0x05e4
+0xd3 0x05e6
+0xd4 0x05e7
+0xd5 0x05e8
+0xd6 0x05e9
+0xd7 0x05ea
+0xd8 0x05df
+0xd9 0x05da
+0xda 0x05dd
+0xdb 0x05e3
+0xdc 0x05e5
+0xdd 0x00a7
+0xde 0x20ac
+0xdf 0x221e
+0xe0 0x03b1
+0xe1 0x03b2
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x03b8
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x222e
+0xed 0x03c6
+0xee 0x2208
+0xef 0x220f
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2022
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x00b3
+0xff 0x00af
diff --git a/tp/maintain/lib/libintl-perl/tests/02atari-st.t b/tp/maintain/lib/libintl-perl/tests/02atari-st.t
new file mode 100644
index 0000000..fe2cd44
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02atari-st.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ATARI-ST',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ATARI-ST',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ATARI-ST');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ATARI-ST',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00ec
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00ff
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00a5
+0x9e 0x00df
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x00e3
+0xb1 0x00f5
+0xb2 0x00d8
+0xb3 0x00f8
+0xb4 0x0153
+0xb5 0x0152
+0xb6 0x00c0
+0xb7 0x00c3
+0xb8 0x00d5
+0xb9 0x00a8
+0xba 0x00b4
+0xbb 0x2020
+0xbc 0x00b6
+0xbd 0x00a9
+0xbe 0x00ae
+0xbf 0x2122
+0xc0 0x0133
+0xc1 0x0132
+0xc2 0x05d0
+0xc3 0x05d1
+0xc4 0x05d2
+0xc5 0x05d3
+0xc6 0x05d4
+0xc7 0x05d5
+0xc8 0x05d6
+0xc9 0x05d7
+0xca 0x05d8
+0xcb 0x05d9
+0xcc 0x05db
+0xcd 0x05dc
+0xce 0x05de
+0xcf 0x05e0
+0xd0 0x05e1
+0xd1 0x05e2
+0xd2 0x05e4
+0xd3 0x05e6
+0xd4 0x05e7
+0xd5 0x05e8
+0xd6 0x05e9
+0xd7 0x05ea
+0xd8 0x05df
+0xd9 0x05da
+0xda 0x05dd
+0xdb 0x05e3
+0xdc 0x05e5
+0xdd 0x00a7
+0xde 0x2038
+0xdf 0x221e
+0xe0 0x03b1
+0xe1 0x03b2
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x03b8
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x222e
+0xed 0x03c6
+0xee 0x2208
+0xef 0x220f
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2022
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x00b3
+0xff 0x00af
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp10007.t b/tp/maintain/lib/libintl-perl/tests/02cp10007.t
new file mode 100644
index 0000000..ed7c4b9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp10007.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP10007',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP10007',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP10007');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP10007',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0410
+0x81 0x0411
+0x82 0x0412
+0x83 0x0413
+0x84 0x0414
+0x85 0x0415
+0x86 0x0416
+0x87 0x0417
+0x88 0x0418
+0x89 0x0419
+0x8a 0x041a
+0x8b 0x041b
+0x8c 0x041c
+0x8d 0x041d
+0x8e 0x041e
+0x8f 0x041f
+0x90 0x0420
+0x91 0x0421
+0x92 0x0422
+0x93 0x0423
+0x94 0x0424
+0x95 0x0425
+0x96 0x0426
+0x97 0x0427
+0x98 0x0428
+0x99 0x0429
+0x9a 0x042a
+0x9b 0x042b
+0x9c 0x042c
+0x9d 0x042d
+0x9e 0x042e
+0x9f 0x042f
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x0406
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x0402
+0xac 0x0452
+0xad 0x2260
+0xae 0x0403
+0xaf 0x0453
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x0456
+0xb5 0x00b5
+0xb6 0x0491
+0xb7 0x0408
+0xb8 0x0404
+0xb9 0x0454
+0xba 0x0407
+0xbb 0x0457
+0xbc 0x0409
+0xbd 0x0459
+0xbe 0x040a
+0xbf 0x045a
+0xc0 0x0458
+0xc1 0x0405
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x040b
+0xcc 0x045b
+0xcd 0x040c
+0xce 0x045c
+0xcf 0x0455
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x201e
+0xd8 0x040e
+0xd9 0x045e
+0xda 0x040f
+0xdb 0x045f
+0xdc 0x2116
+0xdd 0x0401
+0xde 0x0451
+0xdf 0x044f
+0xe0 0x0430
+0xe1 0x0431
+0xe2 0x0432
+0xe3 0x0433
+0xe4 0x0434
+0xe5 0x0435
+0xe6 0x0436
+0xe7 0x0437
+0xe8 0x0438
+0xe9 0x0439
+0xea 0x043a
+0xeb 0x043b
+0xec 0x043c
+0xed 0x043d
+0xee 0x043e
+0xef 0x043f
+0xf0 0x0440
+0xf1 0x0441
+0xf2 0x0442
+0xf3 0x0443
+0xf4 0x0444
+0xf5 0x0445
+0xf6 0x0446
+0xf7 0x0447
+0xf8 0x0448
+0xf9 0x0449
+0xfa 0x044a
+0xfb 0x044b
+0xfc 0x044c
+0xfd 0x044d
+0xfe 0x044e
+0xff 0x00a4
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1250.t b/tp/maintain/lib/libintl-perl/tests/02cp1250.t
new file mode 100644
index 0000000..cfa94e4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1250.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1250',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1250',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1250');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1250',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x201a
+0x84 0xfffd
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x89 0xfffd
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x015a
+0x8d 0x0164
+0x8e 0x017d
+0x8f 0x0179
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x99 0xfffd
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x015b
+0x9d 0x0165
+0x9e 0x017e
+0x9f 0x017a
+0xa0 0x00a0
+0xa1 0x02c7
+0xa2 0x02d8
+0xa3 0x0141
+0xa4 0x00a4
+0xa5 0x0104
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x015e
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x017b
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x02db
+0xb3 0x0142
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x0105
+0xba 0x015f
+0xbb 0x00bb
+0xbc 0x013d
+0xbd 0x02dd
+0xbe 0x013e
+0xbf 0x017c
+0xc0 0x0154
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x0102
+0xc4 0x00c4
+0xc5 0x0139
+0xc6 0x0106
+0xc7 0x00c7
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0118
+0xcb 0x00cb
+0xcc 0x011a
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x010e
+0xd0 0x0110
+0xd1 0x0143
+0xd2 0x0147
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x0150
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x0158
+0xd9 0x016e
+0xda 0x00da
+0xdb 0x0170
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x0162
+0xdf 0x00df
+0xe0 0x0155
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x0103
+0xe4 0x00e4
+0xe5 0x013a
+0xe6 0x0107
+0xe7 0x00e7
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x0119
+0xeb 0x00eb
+0xec 0x011b
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x010f
+0xf0 0x0111
+0xf1 0x0144
+0xf2 0x0148
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x0151
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x0159
+0xf9 0x016f
+0xfa 0x00fa
+0xfb 0x0171
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x0163
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1251.t b/tp/maintain/lib/libintl-perl/tests/02cp1251.t
new file mode 100644
index 0000000..9703c6d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1251.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1251',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1251',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1251');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1251',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0402
+0x81 0x0403
+0x82 0x201a
+0x83 0x0453
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x20ac
+0x89 0x2030
+0x8a 0x0409
+0x8b 0x2039
+0x8c 0x040a
+0x8d 0x040c
+0x8e 0x040b
+0x8f 0x040f
+0x90 0x0452
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x99 0xfffd
+0x99 0x2122
+0x9a 0x0459
+0x9b 0x203a
+0x9c 0x045a
+0x9d 0x045c
+0x9e 0x045b
+0x9f 0x045f
+0xa0 0x00a0
+0xa1 0x040e
+0xa2 0x045e
+0xa3 0x0408
+0xa4 0x00a4
+0xa5 0x0490
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x0401
+0xa9 0x00a9
+0xaa 0x0404
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x0407
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x0406
+0xb3 0x0456
+0xb4 0x0491
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x0451
+0xb9 0x2116
+0xba 0x0454
+0xbb 0x00bb
+0xbc 0x0458
+0xbd 0x0405
+0xbe 0x0455
+0xbf 0x0457
+0xc0 0x0410
+0xc1 0x0411
+0xc2 0x0412
+0xc3 0x0413
+0xc4 0x0414
+0xc5 0x0415
+0xc6 0x0416
+0xc7 0x0417
+0xc8 0x0418
+0xc9 0x0419
+0xca 0x041a
+0xcb 0x041b
+0xcc 0x041c
+0xcd 0x041d
+0xce 0x041e
+0xcf 0x041f
+0xd0 0x0420
+0xd1 0x0421
+0xd2 0x0422
+0xd3 0x0423
+0xd4 0x0424
+0xd5 0x0425
+0xd6 0x0426
+0xd7 0x0427
+0xd8 0x0428
+0xd9 0x0429
+0xda 0x042a
+0xdb 0x042b
+0xdc 0x042c
+0xdd 0x042d
+0xde 0x042e
+0xdf 0x042f
+0xe0 0x0430
+0xe1 0x0431
+0xe2 0x0432
+0xe3 0x0433
+0xe4 0x0434
+0xe5 0x0435
+0xe6 0x0436
+0xe7 0x0437
+0xe8 0x0438
+0xe9 0x0439
+0xea 0x043a
+0xeb 0x043b
+0xec 0x043c
+0xed 0x043d
+0xee 0x043e
+0xef 0x043f
+0xf0 0x0440
+0xf1 0x0441
+0xf2 0x0442
+0xf3 0x0443
+0xf4 0x0444
+0xf5 0x0445
+0xf6 0x0446
+0xf7 0x0447
+0xf8 0x0448
+0xf9 0x0449
+0xfa 0x044a
+0xfb 0x044b
+0xfc 0x044c
+0xfd 0x044d
+0xfe 0x044e
+0xff 0x044f
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1252.t b/tp/maintain/lib/libintl-perl/tests/02cp1252.t
new file mode 100644
index 0000000..81250f9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1252.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1252',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1252',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1252');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1252',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x8e 0xfffd
+0x8e 0x017d
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x02dc
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9e 0xfffd
+0x9e 0x017e
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x00d0
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x00de
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1253.t b/tp/maintain/lib/libintl-perl/tests/02cp1253.t
new file mode 100644
index 0000000..dcbaff4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1253.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1253',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1253',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1253');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1253',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x89 0xfffd
+0x89 0x2030
+0x8b 0xfffd
+0x8b 0x2039
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x99 0xfffd
+0x99 0x2122
+0x9b 0xfffd
+0x9b 0x203a
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0x00a0
+0xa1 0x0385
+0xa2 0x0386
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xab 0xfffd
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x2015
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x0384
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x0388
+0xb9 0x0389
+0xba 0x038a
+0xbb 0x00bb
+0xbc 0x038c
+0xbd 0x00bd
+0xbe 0x038e
+0xbf 0x038f
+0xc0 0x0390
+0xc1 0x0391
+0xc2 0x0392
+0xc3 0x0393
+0xc4 0x0394
+0xc5 0x0395
+0xc6 0x0396
+0xc7 0x0397
+0xc8 0x0398
+0xc9 0x0399
+0xca 0x039a
+0xcb 0x039b
+0xcc 0x039c
+0xcd 0x039d
+0xce 0x039e
+0xcf 0x039f
+0xd0 0x03a0
+0xd1 0x03a1
+0xd3 0xfffd
+0xd3 0x03a3
+0xd4 0x03a4
+0xd5 0x03a5
+0xd6 0x03a6
+0xd7 0x03a7
+0xd8 0x03a8
+0xd9 0x03a9
+0xda 0x03aa
+0xdb 0x03ab
+0xdc 0x03ac
+0xdd 0x03ad
+0xde 0x03ae
+0xdf 0x03af
+0xe0 0x03b0
+0xe1 0x03b1
+0xe2 0x03b2
+0xe3 0x03b3
+0xe4 0x03b4
+0xe5 0x03b5
+0xe6 0x03b6
+0xe7 0x03b7
+0xe8 0x03b8
+0xe9 0x03b9
+0xea 0x03ba
+0xeb 0x03bb
+0xec 0x03bc
+0xed 0x03bd
+0xee 0x03be
+0xef 0x03bf
+0xf0 0x03c0
+0xf1 0x03c1
+0xf2 0x03c2
+0xf3 0x03c3
+0xf4 0x03c4
+0xf5 0x03c5
+0xf6 0x03c6
+0xf7 0x03c7
+0xf8 0x03c8
+0xf9 0x03c9
+0xfa 0x03ca
+0xfb 0x03cb
+0xfc 0x03cc
+0xfd 0x03cd
+0xfe 0x03ce
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1254.t b/tp/maintain/lib/libintl-perl/tests/02cp1254.t
new file mode 100644
index 0000000..889bd40
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1254.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1254',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1254',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1254');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1254',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x02dc
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9f 0xfffd
+0x9f 0xfffd
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x011e
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x0130
+0xde 0x015e
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x011f
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x0131
+0xfe 0x015f
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1256.t b/tp/maintain/lib/libintl-perl/tests/02cp1256.t
new file mode 100644
index 0000000..e0589d9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1256.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1256',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1256',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1256');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1256',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x81 0x067e
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0679
+0x8b 0x2039
+0x8c 0x0152
+0x8d 0x0686
+0x8e 0x0698
+0x8f 0x0688
+0x90 0x06af
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x06a9
+0x99 0x2122
+0x9a 0x0691
+0x9b 0x203a
+0x9c 0x0153
+0x9d 0x200c
+0x9e 0x200d
+0x9f 0x06ba
+0xa0 0x00a0
+0xa1 0x060c
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x06be
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x061b
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x061f
+0xc0 0x06c1
+0xc1 0x0621
+0xc2 0x0622
+0xc3 0x0623
+0xc4 0x0624
+0xc5 0x0625
+0xc6 0x0626
+0xc7 0x0627
+0xc8 0x0628
+0xc9 0x0629
+0xca 0x062a
+0xcb 0x062b
+0xcc 0x062c
+0xcd 0x062d
+0xce 0x062e
+0xcf 0x062f
+0xd0 0x0630
+0xd1 0x0631
+0xd2 0x0632
+0xd3 0x0633
+0xd4 0x0634
+0xd5 0x0635
+0xd6 0x0636
+0xd7 0x00d7
+0xd8 0x0637
+0xd9 0x0638
+0xda 0x0639
+0xdb 0x063a
+0xdc 0x0640
+0xdd 0x0641
+0xde 0x0642
+0xdf 0x0643
+0xe0 0x00e0
+0xe1 0x0644
+0xe2 0x00e2
+0xe3 0x0645
+0xe4 0x0646
+0xe5 0x0647
+0xe6 0x0648
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x0649
+0xed 0x064a
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x064b
+0xf1 0x064c
+0xf2 0x064d
+0xf3 0x064e
+0xf4 0x00f4
+0xf5 0x064f
+0xf6 0x0650
+0xf7 0x00f7
+0xf8 0x0651
+0xf9 0x00f9
+0xfa 0x0652
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x200e
+0xfe 0x200f
+0xff 0x06d2
diff --git a/tp/maintain/lib/libintl-perl/tests/02cp1257.t b/tp/maintain/lib/libintl-perl/tests/02cp1257.t
new file mode 100644
index 0000000..b1c5a3f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cp1257.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CP1257',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CP1257',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1257');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CP1257',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x201a
+0x84 0xfffd
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x89 0xfffd
+0x89 0x2030
+0x8b 0xfffd
+0x8b 0x2039
+0x8d 0xfffd
+0x8d 0x00a8
+0x8e 0x02c7
+0x8f 0x00b8
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x99 0xfffd
+0x99 0x2122
+0x9b 0xfffd
+0x9b 0x203a
+0x9d 0xfffd
+0x9d 0x00af
+0x9e 0x02db
+0xa0 0xfffd
+0xa0 0x00a0
+0xa2 0xfffd
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa6 0xfffd
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00d8
+0xa9 0x00a9
+0xaa 0x0156
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00c6
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00f8
+0xb9 0x00b9
+0xba 0x0157
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00e6
+0xc0 0x0104
+0xc1 0x012e
+0xc2 0x0100
+0xc3 0x0106
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x0118
+0xc7 0x0112
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0179
+0xcb 0x0116
+0xcc 0x0122
+0xcd 0x0136
+0xce 0x012a
+0xcf 0x013b
+0xd0 0x0160
+0xd1 0x0143
+0xd2 0x0145
+0xd3 0x00d3
+0xd4 0x014c
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x0172
+0xd9 0x0141
+0xda 0x015a
+0xdb 0x016a
+0xdc 0x00dc
+0xdd 0x017b
+0xde 0x017d
+0xdf 0x00df
+0xe0 0x0105
+0xe1 0x012f
+0xe2 0x0101
+0xe3 0x0107
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x0119
+0xe7 0x0113
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x017a
+0xeb 0x0117
+0xec 0x0123
+0xed 0x0137
+0xee 0x012b
+0xef 0x013c
+0xf0 0x0161
+0xf1 0x0144
+0xf2 0x0146
+0xf3 0x00f3
+0xf4 0x014d
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x0173
+0xf9 0x0142
+0xfa 0x015b
+0xfb 0x016b
+0xfc 0x00fc
+0xfd 0x017c
+0xfe 0x017e
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02csn_369103.t b/tp/maintain/lib/libintl-perl/tests/02csn_369103.t
new file mode 100644
index 0000000..e4d81df
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02csn_369103.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CSN_369103',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CSN_369103',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CSN_369103');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CSN_369103',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0104
+0xa2 0x02d8
+0xa3 0x0141
+0xa4 0x0024
+0xa5 0x013d
+0xa6 0x015a
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x0160
+0xaa 0x015e
+0xab 0x0164
+0xac 0x0179
+0xad 0x00ad
+0xae 0x017d
+0xaf 0x017b
+0xb0 0x00b0
+0xb1 0x0105
+0xb2 0x02db
+0xb3 0x0142
+0xb4 0x00b4
+0xb5 0x013e
+0xb6 0x015b
+0xb7 0x02c7
+0xb8 0x00b8
+0xb9 0x0161
+0xba 0x015f
+0xbb 0x0165
+0xbc 0x017a
+0xbd 0x02dd
+0xbe 0x017e
+0xbf 0x017c
+0xc0 0x0154
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x0102
+0xc4 0x00c4
+0xc5 0x0139
+0xc6 0x0106
+0xc7 0x00c7
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0118
+0xcb 0x00cb
+0xcc 0x011a
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x010e
+0xd0 0x0110
+0xd1 0x0143
+0xd2 0x0147
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x0150
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x0158
+0xd9 0x016e
+0xda 0x00da
+0xdb 0x0170
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x0162
+0xdf 0x00df
+0xe0 0x0155
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x0103
+0xe4 0x00e4
+0xe5 0x013a
+0xe6 0x0107
+0xe7 0x00e7
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x0119
+0xeb 0x00eb
+0xec 0x011b
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x010f
+0xf0 0x0111
+0xf1 0x0144
+0xf2 0x0148
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x0151
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x0159
+0xf9 0x016f
+0xfa 0x00fa
+0xfb 0x0171
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x0163
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02cwi.t b/tp/maintain/lib/libintl-perl/tests/02cwi.t
new file mode 100644
index 0000000..608e870
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02cwi.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'CWI',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'CWI',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CWI');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'CWI',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00cd
+0x8e 0x00c4
+0x8f 0x00c1
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x0151
+0x94 0x00f6
+0x95 0x00d3
+0x96 0x0171
+0x97 0x00da
+0x98 0x0170
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00a5
+0x9e 0x20a7
+0x9f 0xe01f
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x0150
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x03b2
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x03bc
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x2205
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x2218
+0xf9 0x00b7
+0xfa 0x2022
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02dec-mcs.t b/tp/maintain/lib/libintl-perl/tests/02dec-mcs.t
new file mode 100644
index 0000000..8f70019
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02dec-mcs.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'DEC-MCS',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'DEC-MCS',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'DEC-MCS');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'DEC-MCS',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa1 0xfffd
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa5 0xfffd
+0xa5 0x00a5
+0xa7 0xfffd
+0xa7 0x00a7
+0xa8 0x00a4
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb5 0xfffd
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb9 0xfffd
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbf 0xfffd
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd1 0xfffd
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x0152
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x0178
+0xdf 0xfffd
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf1 0xfffd
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x0153
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00ff
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de-a.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de-a.t
new file mode 100644
index 0000000..254c6d3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de-a.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-AT-DE-A',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-AT-DE-A',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-AT-DE-A');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-AT-DE-A',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00f6
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00fc
+0x5b 0x00dc
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00df
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0x003a
+0x7b 0x00c4
+0x7c 0x00d6
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00e4
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de.t
new file mode 100644
index 0000000..577a7da
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-at-de.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-AT-DE',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-AT-DE',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-AT-DE');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-AT-DE',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00c4
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00dc
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x00a7
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00df
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e4
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00fc
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00d6
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-ca-fr.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-ca-fr.t
new file mode 100644
index 0000000..780f966
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-ca-fr.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-CA-FR',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-CA-FR',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-CA-FR');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-CA-FR',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x42 0xfffd
+0x42 0x00e2
+0x48 0xfffd
+0x48 0xfffd
+0x48 0xfffd
+0x48 0xfffd
+0x48 0xfffd
+0x48 0x00e7
+0x4a 0xfffd
+0x4a 0x00e0
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x52 0xfffd
+0x52 0x00ea
+0x53 0x00eb
+0x56 0xfffd
+0x56 0xfffd
+0x56 0x00ee
+0x57 0x00ef
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00b4
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x64 0xfffd
+0x64 0x00c0
+0x68 0xfffd
+0x68 0xfffd
+0x68 0xfffd
+0x68 0x00c7
+0x6a 0xfffd
+0x6a 0x00f9
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x71 0xfffd
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x75 0xfffd
+0x75 0x00ce
+0x76 0x00cf
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e9
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xcb 0xfffd
+0xcb 0x00f4
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xdb 0xfffd
+0xdb 0x00fb
+0xdc 0x00fc
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00b8
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xeb 0xfffd
+0xeb 0x00d4
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfb 0xfffd
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no-a.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no-a.t
new file mode 100644
index 0000000..4f2521e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no-a.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-DK-NO-A',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-DK-NO-A',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-DK-NO-A');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-DK-NO-A',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00f8
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00e5
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0x003a
+0x7b 0x00c6
+0x7c 0x00d8
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00e6
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no.t
new file mode 100644
index 0000000..085a11d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-dk-no.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-DK-NO',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-DK-NO',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-DK-NO');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-DK-NO',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x0023
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00a4
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f8
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00c6
+0x7c 0x00d8
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00fc
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e6
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e5
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-a.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-a.t
new file mode 100644
index 0000000..1ff8a06
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-a.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-ES-A',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-ES-A',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES-A');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES-A',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x20a7
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0x003a
+0x7b 0x00d1
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00f1
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-s.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-s.t
new file mode 100644
index 0000000..b582fea
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es-s.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-ES-S',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-ES-S',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES-S');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES-S',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f1
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00d1
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-es.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es.t
new file mode 100644
index 0000000..b31ea05
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-es.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-ES',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-ES',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-ES',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x20a7
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f1
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00d1
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se-a.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se-a.t
new file mode 100644
index 0000000..dd364db
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se-a.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-FI-SE-A',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-FI-SE-A',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FI-SE-A');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FI-SE-A',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00f6
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00e5
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0xfffd
+0x7a 0x003a
+0x7b 0x00c4
+0x7c 0x00d6
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00e4
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0xfffd
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se.t
new file mode 100644
index 0000000..8ba6366
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fi-se.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-FI-SE',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-FI-SE',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FI-SE');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FI-SE',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a7
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00a4
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x00e9
+0x7a 0x003a
+0x7b 0x00c4
+0x7c 0x00d6
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00fc
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e4
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e5
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00c9
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-fr.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fr.t
new file mode 100644
index 0000000..0c0368d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-fr.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-FR',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-FR',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FR');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-FR',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00b0
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00a7
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f9
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00a3
+0x7c 0x00e0
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e9
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00e7
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-is-friss.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-is-friss.t
new file mode 100644
index 0000000..9292371
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-is-friss.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-IS-FRISS',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-IS-FRISS',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-IS-FRISS');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-IS-FRISS',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0x0020
+0x45 0xfffd
+0x45 0xfffd
+0x45 0xfffd
+0x45 0xfffd
+0x45 0x00e1
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x003c
+0x4b 0x002e
+0x4c 0x00c1
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x00d0
+0x51 0x00e9
+0x55 0xfffd
+0x55 0xfffd
+0x55 0xfffd
+0x55 0x00ed
+0x59 0xfffd
+0x59 0xfffd
+0x59 0xfffd
+0x59 0x0024
+0x5a 0x0025
+0x5b 0x00c9
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x0026
+0x60 0x002d
+0x61 0x002f
+0x69 0xfffd
+0x69 0xfffd
+0x69 0xfffd
+0x69 0xfffd
+0x69 0xfffd
+0x69 0xfffd
+0x69 0xfffd
+0x69 0x0023
+0x6a 0x2018
+0x6b 0x002c
+0x6c 0x00de
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x75 0xfffd
+0x75 0xfffd
+0x75 0xfffd
+0x75 0xfffd
+0x75 0xfffd
+0x75 0x00cd
+0x78 0xfffd
+0x78 0xfffd
+0x78 0x007c
+0x79 0x00f0
+0x7a 0x003a
+0x7b 0x00c6
+0x7c 0x00d6
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8d 0xfffd
+0x8d 0xfffd
+0x8d 0xfffd
+0x8d 0x00dd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0x00b0
+0xa1 0x00f6
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xac 0xfffd
+0xac 0xfffd
+0xac 0x005b
+0xad 0x00fd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0xfffd
+0xbc 0x005d
+0xbd 0x00a8
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00fe
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xce 0xfffd
+0xce 0xfffd
+0xce 0xfffd
+0xce 0xfffd
+0xce 0x00f3
+0xd0 0xfffd
+0xd0 0x00e6
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xde 0xfffd
+0xde 0xfffd
+0xde 0xfffd
+0xde 0xfffd
+0xde 0x00fa
+0xe0 0xfffd
+0xe0 0x00b4
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xee 0xfffd
+0xee 0xfffd
+0xee 0xfffd
+0xee 0xfffd
+0xee 0x00d3
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0x00da
+0xff 0x007f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-it.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-it.t
new file mode 100644
index 0000000..c7d5afd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-it.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-IT',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-IT',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-IT');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-IT',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00b0
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x00e9
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f2
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x00f9
+0x7a 0x003a
+0x7b 0x00a3
+0x7c 0x00a7
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00ec
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e0
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00e7
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-pt.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-pt.t
new file mode 100644
index 0000000..403da57
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-pt.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-PT',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-PT',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-PT');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-PT',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f5
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00c3
+0x7c 0x00d5
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00e7
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e3
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00b4
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00c7
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-uk.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-uk.t
new file mode 100644
index 0000000..bb17cb4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-uk.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-UK',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-UK',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-UK');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-UK',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x0024
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x00a3
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x203e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ebcdic-us.t b/tp/maintain/lib/libintl-perl/tests/02ebcdic-us.t
new file mode 100644
index 0000000..d4250bf
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ebcdic-us.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'EBCDIC-US',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'EBCDIC-US',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-US');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'EBCDIC-US',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ecma-cyrillic.t b/tp/maintain/lib/libintl-perl/tests/02ecma-cyrillic.t
new file mode 100644
index 0000000..4a7df61
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ecma-cyrillic.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ECMA-CYRILLIC',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ECMA-CYRILLIC',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ECMA-CYRILLIC');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ECMA-CYRILLIC',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0452
+0xa2 0x0453
+0xa3 0x0451
+0xa4 0x0454
+0xa5 0x0455
+0xa6 0x0456
+0xa7 0x0457
+0xa8 0x0458
+0xa9 0x0459
+0xaa 0x045a
+0xab 0x045b
+0xac 0x045c
+0xad 0x00ad
+0xae 0x045e
+0xaf 0x045f
+0xb0 0x2116
+0xb1 0x0402
+0xb2 0x0403
+0xb3 0x0401
+0xb4 0x0404
+0xb5 0x0405
+0xb6 0x0406
+0xb7 0x0407
+0xb8 0x0408
+0xb9 0x0409
+0xba 0x040a
+0xbb 0x040b
+0xbc 0x040c
+0xbd 0x00a4
+0xbe 0x040e
+0xbf 0x040f
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x042a
diff --git a/tp/maintain/lib/libintl-perl/tests/02georgian-academy.t b/tp/maintain/lib/libintl-perl/tests/02georgian-academy.t
new file mode 100644
index 0000000..f069d89
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02georgian-academy.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GEORGIAN-ACADEMY',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GEORGIAN-ACADEMY',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GEORGIAN-ACADEMY');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GEORGIAN-ACADEMY',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x02dc
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x10d0
+0xc1 0x10d1
+0xc2 0x10d2
+0xc3 0x10d3
+0xc4 0x10d4
+0xc5 0x10d5
+0xc6 0x10d6
+0xc7 0x10d7
+0xc8 0x10d8
+0xc9 0x10d9
+0xca 0x10da
+0xcb 0x10db
+0xcc 0x10dc
+0xcd 0x10dd
+0xce 0x10de
+0xcf 0x10df
+0xd0 0x10e0
+0xd1 0x10e1
+0xd2 0x10e2
+0xd3 0x10e3
+0xd4 0x10e4
+0xd5 0x10e5
+0xd6 0x10e6
+0xd7 0x10e7
+0xd8 0x10e8
+0xd9 0x10e9
+0xda 0x10ea
+0xdb 0x10eb
+0xdc 0x10ec
+0xdd 0x10ed
+0xde 0x10ee
+0xdf 0x10ef
+0xe0 0x10f0
+0xe1 0x10f1
+0xe2 0x10f2
+0xe3 0x10f3
+0xe4 0x10f4
+0xe5 0x10f5
+0xe6 0x10f6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02georgian-ps.t b/tp/maintain/lib/libintl-perl/tests/02georgian-ps.t
new file mode 100644
index 0000000..49c4b48
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02georgian-ps.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GEORGIAN-PS',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GEORGIAN-PS',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GEORGIAN-PS');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GEORGIAN-PS',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x201a
+0x83 0x0192
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x02dc
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x10d0
+0xc1 0x10d1
+0xc2 0x10d2
+0xc3 0x10d3
+0xc4 0x10d4
+0xc5 0x10d5
+0xc6 0x10d6
+0xc7 0x10f1
+0xc8 0x10d7
+0xc9 0x10d8
+0xca 0x10d9
+0xcb 0x10da
+0xcc 0x10db
+0xcd 0x10dc
+0xce 0x10f2
+0xcf 0x10dd
+0xd0 0x10de
+0xd1 0x10df
+0xd2 0x10e0
+0xd3 0x10e1
+0xd4 0x10e2
+0xd5 0x10f3
+0xd6 0x10e3
+0xd7 0x10e4
+0xd8 0x10e5
+0xd9 0x10e6
+0xda 0x10e7
+0xdb 0x10e8
+0xdc 0x10e9
+0xdd 0x10ea
+0xde 0x10eb
+0xdf 0x10ec
+0xe0 0x10ed
+0xe1 0x10ee
+0xe2 0x10f4
+0xe3 0x10ef
+0xe4 0x10f0
+0xe5 0x10f5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02gost_19768-74.t b/tp/maintain/lib/libintl-perl/tests/02gost_19768-74.t
new file mode 100644
index 0000000..af9a779
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02gost_19768-74.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GOST_19768-74',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GOST_19768-74',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GOST_19768-74');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GOST_19768-74',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0401
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0xfffd
+0xad 0x00ad
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0x0410
+0xb1 0x0411
+0xb2 0x0412
+0xb3 0x0413
+0xb4 0x0414
+0xb5 0x0415
+0xb6 0x0416
+0xb7 0x0417
+0xb8 0x0418
+0xb9 0x0419
+0xba 0x041a
+0xbb 0x041b
+0xbc 0x041c
+0xbd 0x041d
+0xbe 0x041e
+0xbf 0x041f
+0xc0 0x0420
+0xc1 0x0421
+0xc2 0x0422
+0xc3 0x0423
+0xc4 0x0424
+0xc5 0x0425
+0xc6 0x0426
+0xc7 0x0427
+0xc8 0x0428
+0xc9 0x0429
+0xca 0x042a
+0xcb 0x042b
+0xcc 0x042c
+0xcd 0x042d
+0xce 0x042e
+0xcf 0x042f
+0xd0 0x0430
+0xd1 0x0431
+0xd2 0x0432
+0xd3 0x0433
+0xd4 0x0434
+0xd5 0x0435
+0xd6 0x0436
+0xd7 0x0437
+0xd8 0x0438
+0xd9 0x0439
+0xda 0x043a
+0xdb 0x043b
+0xdc 0x043c
+0xdd 0x043d
+0xde 0x043e
+0xdf 0x043f
+0xe0 0x0440
+0xe1 0x0441
+0xe2 0x0442
+0xe3 0x0443
+0xe4 0x0444
+0xe5 0x0445
+0xe6 0x0446
+0xe7 0x0447
+0xe8 0x0448
+0xe9 0x0449
+0xea 0x044a
+0xeb 0x044b
+0xec 0x044c
+0xed 0x044d
+0xee 0x044e
+0xef 0x044f
+0xf1 0xfffd
+0xf1 0x0451
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02greek-ccitt.t b/tp/maintain/lib/libintl-perl/tests/02greek-ccitt.t
new file mode 100644
index 0000000..6c978a8
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02greek-ccitt.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GREEK-CCITT',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GREEK-CCITT',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK-CCITT');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK-CCITT',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0391
+0x42 0x0392
+0x43 0x0393
+0x44 0x0394
+0x45 0x0395
+0x46 0x0396
+0x47 0x0397
+0x48 0x0398
+0x49 0x0399
+0x4a 0x039a
+0x4b 0x039b
+0x4c 0x039c
+0x4d 0x039d
+0x4e 0x039e
+0x4f 0x039f
+0x50 0x03a0
+0x51 0x03a1
+0x53 0xfffd
+0x53 0x03a3
+0x54 0x03a4
+0x55 0x03a5
+0x56 0x03a6
+0x57 0x03a7
+0x58 0x03a8
+0x59 0x03a9
+0x5b 0xfffd
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x61 0xfffd
+0x61 0x03b1
+0x62 0x03b2
+0x63 0x03b3
+0x64 0x03b4
+0x65 0x03b5
+0x66 0x03b6
+0x67 0x03b7
+0x68 0x03b8
+0x69 0x03b9
+0x6a 0x03ba
+0x6b 0x03bb
+0x6c 0x03bc
+0x6d 0x03bd
+0x6e 0x03be
+0x6f 0x03bf
+0x70 0x03c0
+0x71 0x03c1
+0x72 0x03c2
+0x73 0x03c3
+0x74 0x03c4
+0x75 0x03c5
+0x76 0x03c6
+0x77 0x03c7
+0x78 0x03c8
+0x79 0x03c9
+0x7b 0xfffd
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x00af
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02greek7-old.t b/tp/maintain/lib/libintl-perl/tests/02greek7-old.t
new file mode 100644
index 0000000..0bb1ba8
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02greek7-old.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GREEK7-OLD',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GREEK7-OLD',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK7-OLD');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK7-OLD',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x00a3
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x00b4
+0x41 0x03b1
+0x42 0x03b2
+0x43 0x03c8
+0x44 0x03b4
+0x45 0x03b5
+0x46 0x03c6
+0x47 0x03b3
+0x48 0x03b7
+0x49 0x03b9
+0x4a 0x03be
+0x4b 0x03ba
+0x4c 0x03bb
+0x4d 0x03bc
+0x4e 0x03bd
+0x4f 0x03bf
+0x50 0x03c0
+0x51 0x037a
+0x52 0x03c1
+0x53 0x03c3
+0x54 0x03c4
+0x55 0x03b8
+0x56 0x03c9
+0x57 0x03c2
+0x58 0x03c7
+0x59 0x03c5
+0x5a 0x03b6
+0x5b 0x1fcf
+0x5c 0x1fbf
+0x5d 0x1fce
+0x5e 0x007e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0391
+0x62 0x0392
+0x63 0x03a8
+0x64 0x0394
+0x65 0x0395
+0x66 0x03a6
+0x67 0x0393
+0x68 0x0397
+0x69 0x0399
+0x6a 0x039e
+0x6b 0x039a
+0x6c 0x039b
+0x6d 0x039c
+0x6e 0x039d
+0x6f 0x039f
+0x70 0x03a0
+0x72 0xfffd
+0x72 0x03a1
+0x73 0x03a3
+0x74 0x03a4
+0x75 0x0398
+0x76 0x03a9
+0x77 0x00b7
+0x78 0x03a7
+0x79 0x03a5
+0x7a 0x0396
+0x7b 0x1fdf
+0x7c 0x1ffe
+0x7d 0x1fde
+0x7e 0x00a8
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02greek7.t b/tp/maintain/lib/libintl-perl/tests/02greek7.t
new file mode 100644
index 0000000..1230b9f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02greek7.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'GREEK7',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'GREEK7',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK7');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'GREEK7',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0391
+0x42 0x0392
+0x43 0x0393
+0x44 0x0394
+0x45 0x0395
+0x46 0x0396
+0x47 0x0397
+0x48 0x0398
+0x49 0x0399
+0x4b 0xfffd
+0x4b 0x039a
+0x4c 0x039b
+0x4d 0x039c
+0x4e 0x039d
+0x4f 0x039e
+0x50 0x039f
+0x51 0x03a0
+0x52 0x03a1
+0x53 0x03a3
+0x54 0x03a4
+0x55 0x03a5
+0x56 0x03a6
+0x58 0xfffd
+0x58 0x03a7
+0x59 0x03a8
+0x5a 0x03a9
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x03b1
+0x62 0x03b2
+0x63 0x03b3
+0x64 0x03b4
+0x65 0x03b5
+0x66 0x03b6
+0x67 0x03b7
+0x68 0x03b8
+0x69 0x03b9
+0x6b 0xfffd
+0x6b 0x03ba
+0x6c 0x03bb
+0x6d 0x03bc
+0x6e 0x03bd
+0x6f 0x03be
+0x70 0x03bf
+0x71 0x03c0
+0x72 0x03c1
+0x73 0x03c3
+0x74 0x03c4
+0x75 0x03c5
+0x76 0x03c6
+0x77 0x03c2
+0x78 0x03c7
+0x79 0x03c8
+0x7a 0x03c9
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x203e
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02hp-roman8.t b/tp/maintain/lib/libintl-perl/tests/02hp-roman8.t
new file mode 100644
index 0000000..b541326
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02hp-roman8.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'HP-ROMAN8',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'HP-ROMAN8',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'HP-ROMAN8');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'HP-ROMAN8',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x00c0
+0xa2 0x00c2
+0xa3 0x00c8
+0xa4 0x00ca
+0xa5 0x00cb
+0xa6 0x00ce
+0xa7 0x00cf
+0xa8 0x00b4
+0xa9 0x02cb
+0xaa 0x02c6
+0xab 0x00a8
+0xac 0x02dc
+0xad 0x00d9
+0xae 0x00db
+0xaf 0x20a4
+0xb0 0x00af
+0xb1 0x00dd
+0xb2 0x00fd
+0xb3 0x00b0
+0xb4 0x00c7
+0xb5 0x00e7
+0xb6 0x00d1
+0xb7 0x00f1
+0xb8 0x00a1
+0xb9 0x00bf
+0xba 0x00a4
+0xbb 0x00a3
+0xbc 0x00a5
+0xbd 0x00a7
+0xbe 0x0192
+0xbf 0x00a2
+0xc0 0x00e2
+0xc1 0x00ea
+0xc2 0x00f4
+0xc3 0x00fb
+0xc4 0x00e1
+0xc5 0x00e9
+0xc6 0x00f3
+0xc7 0x00fa
+0xc8 0x00e0
+0xc9 0x00e8
+0xca 0x00f2
+0xcb 0x00f9
+0xcc 0x00e4
+0xcd 0x00eb
+0xce 0x00f6
+0xcf 0x00fc
+0xd0 0x00c5
+0xd1 0x00ee
+0xd2 0x00d8
+0xd3 0x00c6
+0xd4 0x00e5
+0xd5 0x00ed
+0xd6 0x00f8
+0xd7 0x00e6
+0xd8 0x00c4
+0xd9 0x00ec
+0xda 0x00d6
+0xdb 0x00dc
+0xdc 0x00c9
+0xdd 0x00ef
+0xde 0x00df
+0xdf 0x00d4
+0xe0 0x00c1
+0xe1 0x00c3
+0xe2 0x00e3
+0xe3 0x00d0
+0xe4 0x00f0
+0xe5 0x00cd
+0xe6 0x00cc
+0xe7 0x00d3
+0xe8 0x00d2
+0xe9 0x00d5
+0xea 0x00f5
+0xeb 0x0160
+0xec 0x0161
+0xed 0x00da
+0xee 0x0178
+0xef 0x00ff
+0xf0 0x00de
+0xf1 0x00fe
+0xf2 0x00b7
+0xf3 0x00b5
+0xf4 0x00b6
+0xf5 0x00be
+0xf6 0x2014
+0xf7 0x00bc
+0xf8 0x00bd
+0xf9 0x00aa
+0xfa 0x00ba
+0xfb 0x00ab
+0xfc 0x25a0
+0xfd 0x00bb
+0xfe 0x00b1
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm037.t b/tp/maintain/lib/libintl-perl/tests/02ibm037.t
new file mode 100644
index 0000000..2f20869
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm037.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM037',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM037',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM037');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM037',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x005e
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x005b
+0xbb 0x005d
+0xbc 0x00af
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm038.t b/tp/maintain/lib/libintl-perl/tests/02ibm038.t
new file mode 100644
index 0000000..7ada454
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm038.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM038',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM038',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM038');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM038',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm1004.t b/tp/maintain/lib/libintl-perl/tests/02ibm1004.t
new file mode 100644
index 0000000..5567238
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm1004.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM1004',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM1004',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1004');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1004',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x82 0xfffd
+0x82 0xfffd
+0x82 0x201a
+0x84 0xfffd
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x88 0x02c6
+0x89 0x2030
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x02dc
+0x99 0x2122
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9f 0xfffd
+0x9f 0xfffd
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x00d0
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x00de
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm1026.t b/tp/maintain/lib/libintl-perl/tests/02ibm1026.t
new file mode 100644
index 0000000..72468cb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm1026.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM1026',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM1026',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1026');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1026',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x007b
+0x49 0x00f1
+0x4a 0x00c7
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x011e
+0x5b 0x0130
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x005b
+0x69 0x00d1
+0x6a 0x015f
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0131
+0x7a 0x003a
+0x7b 0x00d6
+0x7c 0x015e
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00dc
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x007d
+0x8d 0x0060
+0x8e 0x00a6
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x02db
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00f6
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x005d
+0xad 0x0024
+0xae 0x0040
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x2014
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e7
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x007e
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x011f
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x005c
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x00fc
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x0023
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x0022
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm1047.t b/tp/maintain/lib/libintl-perl/tests/02ibm1047.t
new file mode 100644
index 0000000..fdb6be5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm1047.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM1047',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM1047',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1047');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM1047',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x005b
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00ac
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00dd
+0xbb 0x00a8
+0xbc 0x00af
+0xbd 0x005d
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm256.t b/tp/maintain/lib/libintl-perl/tests/02ibm256.t
new file mode 100644
index 0000000..c633a30
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm256.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM256',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM256',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM256');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM256',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x20a7
+0xb4 0x0192
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x2017
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x2003
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm273.t b/tp/maintain/lib/libintl-perl/tests/02ibm273.t
new file mode 100644
index 0000000..fca6d30
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm273.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM273',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM273',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM273');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM273',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x007b
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x00c4
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x007e
+0x5a 0x00dc
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x005b
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00f6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x00a7
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00df
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x0040
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e4
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00a6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00fc
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x007d
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x00d6
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x005c
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x005d
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm274.t b/tp/maintain/lib/libintl-perl/tests/02ibm274.t
new file mode 100644
index 0000000..0230c56
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm274.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM274',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM274',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM274');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM274',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00f9
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x00e0
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00e9
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x00e7
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm275.t b/tp/maintain/lib/libintl-perl/tests/02ibm275.t
new file mode 100644
index 0000000..91c5833
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm275.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM275',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM275',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM275');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM275',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00c9
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0024
+0x5b 0x00c7
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00e7
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x00e3
+0x7a 0x003a
+0x7b 0x00d5
+0x7c 0x00c3
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x00f5
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x00e9
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm277.t b/tp/maintain/lib/libintl-perl/tests/02ibm277.t
new file mode 100644
index 0000000..af0dac7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm277.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM277',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM277',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM277');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM277',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x007d
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x0023
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x00a4
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x0024
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00f8
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00a6
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00c6
+0x7c 0x00d8
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x0040
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x007b
+0x9d 0x00b8
+0x9e 0x005b
+0x9f 0x005d
+0xa0 0x00b5
+0xa1 0x00fc
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e6
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00e5
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x007e
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm278.t b/tp/maintain/lib/libintl-perl/tests/02ibm278.t
new file mode 100644
index 0000000..6a8d3e6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm278.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM278',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM278',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM278');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM278',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x007b
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x007d
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x00a7
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x0060
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x00a4
+0x5b 0x00c5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x0023
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x0024
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00f6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x00e9
+0x7a 0x003a
+0x7b 0x00c4
+0x7c 0x00d6
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x005d
+0xa0 0x00b5
+0xa1 0x00fc
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x005b
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e4
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00a6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00e5
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x007e
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x0040
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm280.t b/tp/maintain/lib/libintl-perl/tests/02ibm280.t
new file mode 100644
index 0000000..6247be6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm280.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM280',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM280',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM280');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM280',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x007b
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x005c
+0x49 0x00f1
+0x4a 0x00b0
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x005d
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x007d
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x007e
+0x59 0x00df
+0x5a 0x00e9
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00f2
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x00f9
+0x7a 0x003a
+0x7b 0x00a3
+0x7c 0x00a7
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x005b
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00ec
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x0023
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x0040
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e0
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00a6
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x0060
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x00e7
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm281.t b/tp/maintain/lib/libintl-perl/tests/02ibm281.t
new file mode 100644
index 0000000..5267d81
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm281.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM281',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM281',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM281');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM281',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0xfffd
+0x4a 0x00a3
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x00a5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x203e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x0024
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm284.t b/tp/maintain/lib/libintl-perl/tests/02ibm284.t
new file mode 100644
index 0000000..fbcabc6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm284.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM284',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM284',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM284');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM284',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00a6
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x0023
+0x6a 0x00f1
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00d1
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x005e
+0xbb 0x0021
+0xbc 0x203e
+0xbd 0x007e
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm285.t b/tp/maintain/lib/libintl-perl/tests/02ibm285.t
new file mode 100644
index 0000000..77b92ab
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm285.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM285',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM285',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM285');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM285',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x0024
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x0021
+0x5b 0x00a3
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x203e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x005b
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x005e
+0xbb 0x005d
+0xbc 0x007e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm290.t b/tp/maintain/lib/libintl-perl/tests/02ibm290.t
new file mode 100644
index 0000000..c6cab98
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm290.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM290',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM290',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM290');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM290',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x3002
+0x42 0x300c
+0x43 0x300d
+0x44 0x3001
+0x45 0x30fb
+0x46 0x30f2
+0x47 0x30a1
+0x48 0x30a3
+0x49 0x30a5
+0x4a 0x00a3
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x30a7
+0x52 0x30a9
+0x53 0x30e3
+0x54 0x30e5
+0x55 0x30e7
+0x56 0x30c3
+0x58 0xfffd
+0x58 0x30fc
+0x5a 0xfffd
+0x5a 0x0021
+0x5b 0x00a5
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0xfffd
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0xfffd
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x30a2
+0x82 0x30a4
+0x83 0x30a6
+0x84 0x30a8
+0x85 0x30aa
+0x86 0x30ab
+0x87 0x30ad
+0x88 0x30af
+0x89 0x30b1
+0x8a 0x30b3
+0x8c 0xfffd
+0x8c 0x30b5
+0x8d 0x30b7
+0x8e 0x30b9
+0x8f 0x30bb
+0x90 0x30bd
+0x91 0x30bf
+0x92 0x30c1
+0x93 0x30c4
+0x94 0x30c6
+0x95 0x30c8
+0x96 0x30ca
+0x97 0x30cb
+0x98 0x30cc
+0x99 0x30cd
+0x9a 0x30ce
+0x9d 0xfffd
+0x9d 0xfffd
+0x9d 0x30cf
+0x9e 0x30d2
+0x9f 0x30d5
+0xa1 0xfffd
+0xa1 0x203e
+0xa2 0x30d8
+0xa3 0x30db
+0xa4 0x30de
+0xa5 0x30df
+0xa6 0x30e0
+0xa7 0x30e1
+0xa8 0x30e2
+0xa9 0x30e4
+0xaa 0x30e6
+0xac 0xfffd
+0xac 0x30e8
+0xad 0x30e9
+0xae 0x30ea
+0xaf 0x30eb
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0xfffd
+0xba 0x30ec
+0xbb 0x30ed
+0xbc 0x30ef
+0xbd 0x30f3
+0xbe 0x309b
+0xbf 0x309c
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x0024
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm297.t b/tp/maintain/lib/libintl-perl/tests/02ibm297.t
new file mode 100644
index 0000000..d5cde08
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm297.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM297',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM297',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM297');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM297',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x0040
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x005c
+0x49 0x00f1
+0x4a 0x00b0
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x007b
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x007d
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x00a7
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00f9
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x00b5
+0x7a 0x003a
+0x7b 0x00a3
+0x7c 0x00e0
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x005b
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x0060
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x0023
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x005d
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x203e
+0xbd 0x007e
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e9
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00e8
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00a6
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x00e7
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm420.t b/tp/maintain/lib/libintl-perl/tests/02ibm420.t
new file mode 100644
index 0000000..b82ff2e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm420.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM420',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM420',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM420');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\xd0"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM420',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x0651
+0x43 0xfe7d
+0x44 0x0640
+0x46 0xfffd
+0x46 0x0621
+0x47 0x0622
+0x48 0xfe82
+0x49 0x0623
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0xfe84
+0x52 0x0624
+0x55 0xfffd
+0x55 0xfffd
+0x55 0x0626
+0x56 0x0627
+0x57 0xfe8e
+0x58 0x0628
+0x59 0xfe91
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x62 0x0629
+0x63 0x062a
+0x64 0xfe97
+0x65 0x062b
+0x66 0xfe9b
+0x67 0x062c
+0x68 0xfe9f
+0x69 0x062d
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0xfea3
+0x71 0x062e
+0x72 0xfea7
+0x73 0x062f
+0x74 0x0630
+0x75 0x0631
+0x76 0x0632
+0x77 0x0633
+0x78 0xfeb3
+0x79 0x060c
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x0634
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0xfeb7
+0x8b 0x0635
+0x8c 0xfebb
+0x8d 0x0636
+0x8e 0xfebf
+0x8f 0x0637
+0x90 0x0638
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x0639
+0x9b 0xfeca
+0x9c 0xfecb
+0x9d 0xfecc
+0x9e 0x063a
+0x9f 0xfece
+0xa0 0xfecf
+0xa1 0x00f7
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0xfed0
+0xab 0x0641
+0xac 0xfed3
+0xad 0x0642
+0xae 0xfed7
+0xaf 0x0643
+0xb0 0xfedb
+0xb1 0x0644
+0xb2 0xfef5
+0xb3 0xfef6
+0xb4 0xfef7
+0xb5 0xfef8
+0xb8 0xfffd
+0xb8 0xfffd
+0xb8 0xfefb
+0xb9 0xfefc
+0xba 0xfedf
+0xbb 0x0645
+0xbc 0xfee3
+0xbd 0x0646
+0xbe 0xfee7
+0xbf 0x0647
+0xc0 0x061b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0xfeeb
+0xcd 0xfffd
+0xcd 0xfeec
+0xcf 0xfffd
+0xcf 0x0648
+0xd0 0x061f
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x0649
+0xdb 0xfef0
+0xdc 0x064a
+0xdd 0xfef2
+0xde 0xfef3
+0xdf 0x0660
+0xe0 0x00d7
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x0661
+0xeb 0x0662
+0xed 0xfffd
+0xed 0x0663
+0xee 0x0664
+0xef 0x0665
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfb 0xfffd
+0xfb 0x0666
+0xfc 0x0667
+0xfd 0x0668
+0xfe 0x0669
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm423.t b/tp/maintain/lib/libintl-perl/tests/02ibm423.t
new file mode 100644
index 0000000..924de37
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm423.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM423',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM423',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM423');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM423',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x0391
+0x42 0x0392
+0x43 0x0393
+0x44 0x0394
+0x45 0x0395
+0x46 0x0396
+0x47 0x0397
+0x48 0x0398
+0x49 0x0399
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x039a
+0x52 0x039b
+0x53 0x039c
+0x54 0x039d
+0x55 0x039e
+0x56 0x039f
+0x57 0x03a0
+0x58 0x03a1
+0x59 0x03a3
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x03a4
+0x63 0x03a5
+0x64 0x03a6
+0x65 0x03a7
+0x66 0x03a8
+0x67 0x03a9
+0x6b 0xfffd
+0x6b 0xfffd
+0x6b 0xfffd
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x71 0xfffd
+0x71 0x0386
+0x72 0x0388
+0x73 0x0389
+0x75 0xfffd
+0x75 0x038a
+0x76 0x038c
+0x77 0x038e
+0x78 0x038f
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x00a3
+0x7c 0x00a7
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00c4
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x03b1
+0x8b 0x03b2
+0x8c 0x03b3
+0x8d 0x03b4
+0x8e 0x03b5
+0x8f 0x03b6
+0x90 0x00d6
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x03b7
+0x9b 0x03b8
+0x9c 0x03b9
+0x9d 0x03ba
+0x9e 0x03bb
+0x9f 0x03bc
+0xa0 0x00dc
+0xa1 0x00a8
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x03bd
+0xab 0x03be
+0xac 0x03bf
+0xad 0x03c0
+0xae 0x03c1
+0xaf 0x03c2
+0xb1 0xfffd
+0xb1 0x03ac
+0xb2 0x03ad
+0xb3 0x03ae
+0xb4 0x03ca
+0xb5 0x03af
+0xb6 0x03cc
+0xb7 0x03cd
+0xb8 0x03cb
+0xb9 0x03ce
+0xba 0x03c3
+0xbb 0x03c4
+0xbc 0x03c5
+0xbd 0x03c6
+0xbe 0x03c7
+0xbf 0x03c8
+0xc0 0x00b8
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xcb 0xfffd
+0xcb 0x03c9
+0xcc 0x00c2
+0xcd 0x00e0
+0xce 0x00e4
+0xcf 0x00ea
+0xd0 0x00b4
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b1
+0xdb 0x00e9
+0xdc 0x00e8
+0xdd 0x00eb
+0xde 0x00ee
+0xdf 0x00ef
+0xe0 0x00b0
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00bd
+0xeb 0x00f6
+0xec 0x00f4
+0xed 0x00fb
+0xee 0x00f9
+0xef 0x00fc
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00ff
+0xfb 0x00e7
+0xfc 0x00c7
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm424.t b/tp/maintain/lib/libintl-perl/tests/02ibm424.t
new file mode 100644
index 0000000..0e2bf6c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm424.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM424',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM424',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM424');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM424',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x05d0
+0x42 0x05d1
+0x43 0x05d2
+0x44 0x05d3
+0x45 0x05d4
+0x46 0x05d5
+0x47 0x05d6
+0x48 0x05d7
+0x49 0x05d8
+0x4a 0x00a2
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x007c
+0x50 0x0026
+0x51 0x05d9
+0x52 0x05da
+0x53 0x05db
+0x54 0x05dc
+0x55 0x05dd
+0x56 0x05de
+0x57 0x05df
+0x58 0x05e0
+0x59 0x05e1
+0x5a 0x0021
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00ac
+0x60 0x002d
+0x61 0x002f
+0x62 0x05e2
+0x63 0x05e3
+0x64 0x05e4
+0x65 0x05e5
+0x66 0x05e6
+0x67 0x05e7
+0x68 0x05e8
+0x69 0x05e9
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x71 0xfffd
+0x71 0x05ea
+0x74 0xfffd
+0x74 0xfffd
+0x74 0x00a0
+0x78 0xfffd
+0x78 0xfffd
+0x78 0xfffd
+0x78 0x21d4
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x81 0xfffd
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x90 0xfffd
+0x90 0xfffd
+0x90 0xfffd
+0x90 0xfffd
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9d 0xfffd
+0x9d 0xfffd
+0x9d 0xfffd
+0x9d 0x00b8
+0x9f 0xfffd
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaf 0xfffd
+0xaf 0xfffd
+0xaf 0xfffd
+0xaf 0xfffd
+0xaf 0xfffd
+0xaf 0x00ae
+0xb0 0x005e
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x005b
+0xbb 0x005d
+0xbc 0x203e
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0xfffd
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0xfffd
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm437.t b/tp/maintain/lib/libintl-perl/tests/02ibm437.t
new file mode 100644
index 0000000..c77a074
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm437.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM437',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM437',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM437');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM437',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00ec
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00ff
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00a5
+0x9e 0x20a7
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm500.t b/tp/maintain/lib/libintl-perl/tests/02ibm500.t
new file mode 100644
index 0000000..65a256e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm500.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM500',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM500',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM500');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM500',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x00f0
+0x8d 0x00fd
+0x8e 0x00fe
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x00e6
+0x9d 0x00b8
+0x9e 0x00c6
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x00d0
+0xad 0x00dd
+0xae 0x00de
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x00af
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm850.t b/tp/maintain/lib/libintl-perl/tests/02ibm850.t
new file mode 100644
index 0000000..3a29b74
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm850.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM850',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM850',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM850');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM850',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00ec
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00ff
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00f8
+0x9c 0x00a3
+0x9d 0x00d8
+0x9e 0x00d7
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x00ae
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x00c1
+0xb6 0x00c2
+0xb7 0x00c0
+0xb8 0x00a9
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x00a2
+0xbe 0x00a5
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x00e3
+0xc7 0x00c3
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x00a4
+0xd0 0x00f0
+0xd1 0x00d0
+0xd2 0x00ca
+0xd3 0x00cb
+0xd4 0x00c8
+0xd5 0x0131
+0xd6 0x00cd
+0xd7 0x00ce
+0xd8 0x00cf
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x00a6
+0xde 0x00cc
+0xdf 0x2580
+0xe0 0x00d3
+0xe1 0x00df
+0xe2 0x00d4
+0xe3 0x00d2
+0xe4 0x00f5
+0xe5 0x00d5
+0xe6 0x00b5
+0xe7 0x00fe
+0xe8 0x00de
+0xe9 0x00da
+0xea 0x00db
+0xeb 0x00d9
+0xec 0x00fd
+0xed 0x00dd
+0xee 0x00af
+0xef 0x00b4
+0xf0 0x00ad
+0xf1 0x00b1
+0xf2 0x2017
+0xf3 0x00be
+0xf4 0x00b6
+0xf5 0x00a7
+0xf6 0x00f7
+0xf7 0x00b8
+0xf8 0x00b0
+0xf9 0x00a8
+0xfa 0x00b7
+0xfb 0x00b9
+0xfc 0x00b3
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm851.t b/tp/maintain/lib/libintl-perl/tests/02ibm851.t
new file mode 100644
index 0000000..fad9a16
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm851.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM851',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM851',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM851');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM851',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x0386
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x0388
+0x8e 0x00c4
+0x8f 0x0389
+0x90 0x038a
+0x92 0xfffd
+0x92 0x038c
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x038e
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x038f
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x03ac
+0x9c 0x00a3
+0x9d 0x03ad
+0x9e 0x03ae
+0x9f 0x03af
+0xa0 0x03ca
+0xa1 0x0390
+0xa2 0x03cc
+0xa3 0x03cd
+0xa4 0x0391
+0xa5 0x0392
+0xa6 0x0393
+0xa7 0x0394
+0xa8 0x0395
+0xa9 0x0396
+0xaa 0x0397
+0xab 0x00bd
+0xac 0x0398
+0xad 0x0399
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x039a
+0xb6 0x039b
+0xb7 0x039d
+0xb8 0x039c
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x039e
+0xbe 0x039f
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x03a0
+0xc7 0x03a1
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x03a3
+0xd0 0x03a4
+0xd1 0x03a5
+0xd2 0x03a6
+0xd3 0x03a7
+0xd4 0x03a8
+0xd5 0x03a9
+0xd6 0x03b1
+0xd7 0x03b2
+0xd8 0x03b3
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x03b4
+0xde 0x03b5
+0xdf 0x2580
+0xe0 0x03b6
+0xe1 0x03b7
+0xe2 0x03b8
+0xe3 0x03b9
+0xe4 0x03ba
+0xe5 0x03bb
+0xe6 0x03bc
+0xe7 0x03bd
+0xe8 0x03be
+0xe9 0x03bf
+0xea 0x03c0
+0xeb 0x03c1
+0xec 0x03c3
+0xed 0x03c2
+0xee 0x03c4
+0xef 0x00b4
+0xf0 0x00ad
+0xf1 0x00b1
+0xf2 0x03c5
+0xf3 0x03c6
+0xf4 0x03c7
+0xf5 0x00a7
+0xf6 0x03c8
+0xf7 0x02db
+0xf8 0x00b0
+0xf9 0x00a8
+0xfa 0x03c9
+0xfb 0x03cb
+0xfc 0x03b0
+0xfd 0x03ce
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm852.t b/tp/maintain/lib/libintl-perl/tests/02ibm852.t
new file mode 100644
index 0000000..61d7972
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm852.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM852',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM852',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM852');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM852',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x016f
+0x86 0x0107
+0x87 0x00e7
+0x88 0x0142
+0x89 0x00eb
+0x8a 0x0150
+0x8b 0x0151
+0x8c 0x00ee
+0x8d 0x0179
+0x8e 0x00c4
+0x8f 0x0106
+0x90 0x00c9
+0x91 0x0139
+0x92 0x013a
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x013d
+0x96 0x013e
+0x97 0x015a
+0x98 0x015b
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x0164
+0x9c 0x0165
+0x9d 0x0141
+0x9e 0x00d7
+0x9f 0x010d
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x0104
+0xa5 0x0105
+0xa6 0x017d
+0xa7 0x017e
+0xa8 0x0118
+0xa9 0x0119
+0xaa 0x00ac
+0xab 0x017a
+0xac 0x010c
+0xad 0x015f
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x00c1
+0xb6 0x00c2
+0xb7 0x011a
+0xb8 0x015e
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x017b
+0xbe 0x017c
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x0102
+0xc7 0x0103
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x00a4
+0xd0 0x0111
+0xd1 0x0110
+0xd2 0x010e
+0xd3 0x00cb
+0xd4 0x010f
+0xd5 0x0147
+0xd6 0x00cd
+0xd7 0x00ce
+0xd8 0x011b
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x0162
+0xde 0x016e
+0xdf 0x2580
+0xe0 0x00d3
+0xe1 0x00df
+0xe2 0x00d4
+0xe3 0x0143
+0xe4 0x0144
+0xe5 0x0148
+0xe6 0x0160
+0xe7 0x0161
+0xe8 0x0154
+0xe9 0x00da
+0xea 0x0155
+0xeb 0x0170
+0xec 0x00fd
+0xed 0x00dd
+0xee 0x0163
+0xef 0x00b4
+0xf0 0x00ad
+0xf1 0x02dd
+0xf2 0x02db
+0xf3 0x02c7
+0xf4 0x02d8
+0xf5 0x00a7
+0xf6 0x00f7
+0xf7 0x00b8
+0xf8 0x00b0
+0xf9 0x00a8
+0xfa 0x02d9
+0xfb 0x0171
+0xfc 0x0158
+0xfd 0x0159
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm855.t b/tp/maintain/lib/libintl-perl/tests/02ibm855.t
new file mode 100644
index 0000000..ed24159
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm855.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM855',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM855',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM855');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM855',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0452
+0x81 0x0402
+0x82 0x0453
+0x83 0x0403
+0x84 0x0451
+0x85 0x0401
+0x86 0x0454
+0x87 0x0404
+0x88 0x0455
+0x89 0x0405
+0x8a 0x0456
+0x8b 0x0406
+0x8c 0x0457
+0x8d 0x0407
+0x8e 0x0458
+0x8f 0x0408
+0x90 0x0459
+0x91 0x0409
+0x92 0x045a
+0x93 0x040a
+0x94 0x045b
+0x95 0x040b
+0x96 0x045c
+0x97 0x040c
+0x98 0x045e
+0x99 0x040e
+0x9a 0x045f
+0x9b 0x040f
+0x9c 0x044e
+0x9d 0x042e
+0x9e 0x044a
+0x9f 0x042a
+0xa0 0x0430
+0xa1 0x0410
+0xa2 0x0431
+0xa3 0x0411
+0xa4 0x0446
+0xa5 0x0426
+0xa6 0x0434
+0xa7 0x0414
+0xa8 0x0435
+0xa9 0x0415
+0xaa 0x0444
+0xab 0x0424
+0xac 0x0433
+0xad 0x0413
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x0445
+0xb6 0x0425
+0xb7 0x0438
+0xb8 0x0418
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x0439
+0xbe 0x0419
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x043a
+0xc7 0x041a
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x00a4
+0xd0 0x043b
+0xd1 0x041b
+0xd2 0x043c
+0xd3 0x041c
+0xd4 0x043d
+0xd5 0x041d
+0xd6 0x043e
+0xd7 0x041e
+0xd8 0x043f
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x041f
+0xde 0x044f
+0xdf 0x2580
+0xe0 0x042f
+0xe1 0x0440
+0xe2 0x0420
+0xe3 0x0441
+0xe4 0x0421
+0xe5 0x0442
+0xe6 0x0422
+0xe7 0x0443
+0xe8 0x0423
+0xe9 0x0436
+0xea 0x0416
+0xeb 0x0432
+0xec 0x0412
+0xed 0x044c
+0xee 0x042c
+0xef 0x2116
+0xf0 0x00ad
+0xf1 0x044b
+0xf2 0x042b
+0xf3 0x0437
+0xf4 0x0417
+0xf5 0x0448
+0xf6 0x0428
+0xf7 0x044d
+0xf8 0x042d
+0xf9 0x0449
+0xfa 0x0429
+0xfb 0x0447
+0xfc 0x0427
+0xfd 0x00a7
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm857.t b/tp/maintain/lib/libintl-perl/tests/02ibm857.t
new file mode 100644
index 0000000..8de5cd6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm857.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM857',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM857',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM857');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM857',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x0131
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x0130
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00f8
+0x9c 0x00a3
+0x9d 0x00d8
+0x9e 0x015e
+0x9f 0x015f
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x011e
+0xa7 0x011f
+0xa8 0x00bf
+0xa9 0x00ae
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x00c1
+0xb6 0x00c2
+0xb7 0x00c0
+0xb8 0x00a9
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x00a2
+0xbe 0x00a5
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x00e3
+0xc7 0x00c3
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x00a4
+0xd0 0x00ba
+0xd1 0x00aa
+0xd2 0x00ca
+0xd3 0x00cb
+0xd4 0x00c8
+0xd6 0xfffd
+0xd6 0x00cd
+0xd7 0x00ce
+0xd8 0x00cf
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x00a6
+0xde 0x00cc
+0xdf 0x2580
+0xe0 0x00d3
+0xe1 0x00df
+0xe2 0x00d4
+0xe3 0x00d2
+0xe4 0x00f5
+0xe5 0x00d5
+0xe6 0x00b5
+0xe8 0xfffd
+0xe8 0x00d7
+0xe9 0x00da
+0xea 0x00db
+0xeb 0x00d9
+0xec 0x00ec
+0xed 0x00ff
+0xee 0x00af
+0xef 0x00b4
+0xf0 0x00ad
+0xf1 0x00b1
+0xf3 0xfffd
+0xf3 0x00be
+0xf4 0x00b6
+0xf5 0x00a7
+0xf6 0x00f7
+0xf7 0x00b8
+0xf8 0x00b0
+0xf9 0x00a8
+0xfa 0x00b7
+0xfb 0x00b9
+0xfc 0x00b3
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm860.t b/tp/maintain/lib/libintl-perl/tests/02ibm860.t
new file mode 100644
index 0000000..7ea02bd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm860.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM860',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM860',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM860');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM860',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e3
+0x85 0x00e0
+0x86 0x00c1
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00ca
+0x8a 0x00e8
+0x8b 0x00cd
+0x8c 0x00d4
+0x8d 0x00ec
+0x8e 0x00c3
+0x8f 0x00c2
+0x90 0x00c9
+0x91 0x00c0
+0x92 0x00c8
+0x93 0x00f4
+0x94 0x00f5
+0x95 0x00f2
+0x96 0x00da
+0x97 0x00f9
+0x98 0x00cc
+0x99 0x00d5
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00d9
+0x9e 0x20a7
+0x9f 0x00d3
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x00d2
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm861.t b/tp/maintain/lib/libintl-perl/tests/02ibm861.t
new file mode 100644
index 0000000..25f280a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm861.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM861',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM861',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM861');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM861',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00d0
+0x8c 0x00f0
+0x8d 0x00de
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00fe
+0x96 0x00fb
+0x97 0x00dd
+0x98 0x00fd
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00f8
+0x9c 0x00a3
+0x9d 0x00d8
+0x9e 0x20a7
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00c1
+0xa5 0x00cd
+0xa6 0x00d3
+0xa7 0x00da
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm862.t b/tp/maintain/lib/libintl-perl/tests/02ibm862.t
new file mode 100644
index 0000000..e9fa1c5
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm862.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM862',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM862',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM862');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM862',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x05d0
+0x81 0x05d1
+0x82 0x05d2
+0x83 0x05d3
+0x84 0x05d4
+0x85 0x05d5
+0x86 0x05d6
+0x87 0x05d7
+0x88 0x05d8
+0x89 0x05d9
+0x8a 0x05da
+0x8b 0x05db
+0x8c 0x05dc
+0x8d 0x05dd
+0x8e 0x05de
+0x8f 0x05df
+0x90 0x05e0
+0x91 0x05e1
+0x92 0x05e2
+0x93 0x05e3
+0x94 0x05e4
+0x95 0x05e5
+0x96 0x05e6
+0x97 0x05e7
+0x98 0x05e8
+0x99 0x05e9
+0x9a 0x05ea
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00a5
+0x9e 0x20a7
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm863.t b/tp/maintain/lib/libintl-perl/tests/02ibm863.t
new file mode 100644
index 0000000..25cf4f6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm863.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM863',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM863',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM863');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM863',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00c2
+0x85 0x00e0
+0x86 0x00b6
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x2017
+0x8e 0x00c0
+0x8f 0x00a7
+0x90 0x00c9
+0x91 0x00c8
+0x92 0x00ca
+0x93 0x00f4
+0x94 0x00cb
+0x95 0x00cf
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00a4
+0x99 0x00d4
+0x9a 0x00dc
+0x9b 0x00a2
+0x9c 0x00a3
+0x9d 0x00d9
+0x9e 0x00db
+0x9f 0x0192
+0xa0 0x00a6
+0xa1 0x00b4
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00a8
+0xa5 0x00b8
+0xa6 0x00b3
+0xa7 0x00af
+0xa8 0x00ce
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00be
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm864.t b/tp/maintain/lib/libintl-perl/tests/02ibm864.t
new file mode 100644
index 0000000..3681cde
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm864.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM864',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM864',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM864');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM864',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x066a
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00b0
+0x81 0x00b7
+0x82 0x2219
+0x83 0x221a
+0x84 0x2592
+0x85 0x2500
+0x86 0x2502
+0x87 0x253c
+0x88 0x2524
+0x89 0x252c
+0x8a 0x251c
+0x8b 0x2534
+0x8c 0x2510
+0x8d 0x250c
+0x8e 0x2514
+0x8f 0x2518
+0x90 0x03b2
+0x91 0x221e
+0x92 0x03c6
+0x93 0x00b1
+0x94 0x00bd
+0x95 0x00bc
+0x96 0x2248
+0x97 0x00ab
+0x98 0x00bb
+0x99 0xfef7
+0x9a 0xfef8
+0x9d 0xfffd
+0x9d 0xfffd
+0x9d 0xfefb
+0x9e 0xfefc
+0xa0 0xfffd
+0xa0 0x00a0
+0xa1 0x00ad
+0xa2 0xfe82
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0xfe84
+0xa8 0xfffd
+0xa8 0xfffd
+0xa8 0xfe8e
+0xa9 0xfe8f
+0xaa 0xfe95
+0xab 0xfe99
+0xac 0x060c
+0xad 0xfe9d
+0xae 0xfea1
+0xaf 0xfea5
+0xb0 0x0660
+0xb1 0x0661
+0xb2 0x0662
+0xb3 0x0663
+0xb4 0x0664
+0xb5 0x0665
+0xb6 0x0666
+0xb7 0x0667
+0xb8 0x0668
+0xb9 0x0669
+0xba 0xfed1
+0xbb 0x061b
+0xbc 0xfeb1
+0xbd 0xfeb5
+0xbe 0xfeb9
+0xbf 0x061f
+0xc0 0x00a2
+0xc1 0xfe80
+0xc2 0xfe81
+0xc3 0xfe83
+0xc4 0xfe85
+0xc5 0xfeca
+0xc6 0xfe8b
+0xc7 0xfe8d
+0xc8 0xfe91
+0xc9 0xfe93
+0xca 0xfe97
+0xcb 0xfe9b
+0xcc 0xfe9f
+0xcd 0xfea3
+0xce 0xfea7
+0xcf 0xfea9
+0xd0 0xfeab
+0xd1 0xfead
+0xd2 0xfeaf
+0xd3 0xfeb3
+0xd4 0xfeb7
+0xd5 0xfebb
+0xd6 0xfebf
+0xd7 0xfec1
+0xd8 0xfec5
+0xd9 0xfecb
+0xda 0xfecf
+0xdb 0x00a6
+0xdc 0x00ac
+0xdd 0x00f7
+0xde 0x00d7
+0xdf 0xfec9
+0xe0 0x0640
+0xe1 0xfed3
+0xe2 0xfed7
+0xe3 0xfedb
+0xe4 0xfedf
+0xe5 0xfee3
+0xe6 0xfee7
+0xe7 0xfeeb
+0xe8 0xfeed
+0xe9 0xfeef
+0xea 0xfef3
+0xeb 0xfebd
+0xec 0xfecc
+0xed 0xfece
+0xee 0xfecd
+0xef 0xfee1
+0xf0 0xfe7d
+0xf1 0x0651
+0xf2 0xfee5
+0xf3 0xfee9
+0xf4 0xfeec
+0xf5 0xfef0
+0xf6 0xfef2
+0xf7 0xfed0
+0xf8 0xfed5
+0xf9 0xfef5
+0xfa 0xfef6
+0xfb 0xfedd
+0xfc 0xfed9
+0xfd 0xfef1
+0xfe 0x25a0
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm865.t b/tp/maintain/lib/libintl-perl/tests/02ibm865.t
new file mode 100644
index 0000000..592b43f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm865.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM865',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM865',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM865');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM865',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c7
+0x81 0x00fc
+0x82 0x00e9
+0x83 0x00e2
+0x84 0x00e4
+0x85 0x00e0
+0x86 0x00e5
+0x87 0x00e7
+0x88 0x00ea
+0x89 0x00eb
+0x8a 0x00e8
+0x8b 0x00ef
+0x8c 0x00ee
+0x8d 0x00ec
+0x8e 0x00c4
+0x8f 0x00c5
+0x90 0x00c9
+0x91 0x00e6
+0x92 0x00c6
+0x93 0x00f4
+0x94 0x00f6
+0x95 0x00f2
+0x96 0x00fb
+0x97 0x00f9
+0x98 0x00ff
+0x99 0x00d6
+0x9a 0x00dc
+0x9b 0x00f8
+0x9c 0x00a3
+0x9d 0x00d8
+0x9e 0x20a7
+0x9f 0x0192
+0xa0 0x00e1
+0xa1 0x00ed
+0xa2 0x00f3
+0xa3 0x00fa
+0xa4 0x00f1
+0xa5 0x00d1
+0xa6 0x00aa
+0xa7 0x00ba
+0xa8 0x00bf
+0xa9 0x2310
+0xaa 0x00ac
+0xab 0x00bd
+0xac 0x00bc
+0xad 0x00a1
+0xae 0x00ab
+0xaf 0x00a4
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x03b1
+0xe1 0x00df
+0xe2 0x0393
+0xe3 0x03c0
+0xe4 0x03a3
+0xe5 0x03c3
+0xe6 0x00b5
+0xe7 0x03c4
+0xe8 0x03a6
+0xe9 0x0398
+0xea 0x03a9
+0xeb 0x03b4
+0xec 0x221e
+0xed 0x03c6
+0xee 0x03b5
+0xef 0x2229
+0xf0 0x2261
+0xf1 0x00b1
+0xf2 0x2265
+0xf3 0x2264
+0xf4 0x2320
+0xf5 0x2321
+0xf6 0x00f7
+0xf7 0x2248
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x207f
+0xfd 0x00b2
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm866.t b/tp/maintain/lib/libintl-perl/tests/02ibm866.t
new file mode 100644
index 0000000..40856e3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm866.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM866',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM866',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM866');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM866',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0410
+0x81 0x0411
+0x82 0x0412
+0x83 0x0413
+0x84 0x0414
+0x85 0x0415
+0x86 0x0416
+0x87 0x0417
+0x88 0x0418
+0x89 0x0419
+0x8a 0x041a
+0x8b 0x041b
+0x8c 0x041c
+0x8d 0x041d
+0x8e 0x041e
+0x8f 0x041f
+0x90 0x0420
+0x91 0x0421
+0x92 0x0422
+0x93 0x0423
+0x94 0x0424
+0x95 0x0425
+0x96 0x0426
+0x97 0x0427
+0x98 0x0428
+0x99 0x0429
+0x9a 0x042a
+0x9b 0x042b
+0x9c 0x042c
+0x9d 0x042d
+0x9e 0x042e
+0x9f 0x042f
+0xa0 0x0430
+0xa1 0x0431
+0xa2 0x0432
+0xa3 0x0433
+0xa4 0x0434
+0xa5 0x0435
+0xa6 0x0436
+0xa7 0x0437
+0xa8 0x0438
+0xa9 0x0439
+0xaa 0x043a
+0xab 0x043b
+0xac 0x043c
+0xad 0x043d
+0xae 0x043e
+0xaf 0x043f
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x2561
+0xb6 0x2562
+0xb7 0x2556
+0xb8 0x2555
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x255c
+0xbe 0x255b
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x255e
+0xc7 0x255f
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x2567
+0xd0 0x2568
+0xd1 0x2564
+0xd2 0x2565
+0xd3 0x2559
+0xd4 0x2558
+0xd5 0x2552
+0xd6 0x2553
+0xd7 0x256b
+0xd8 0x256a
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x258c
+0xde 0x2590
+0xdf 0x2580
+0xe0 0x0440
+0xe1 0x0441
+0xe2 0x0442
+0xe3 0x0443
+0xe4 0x0444
+0xe5 0x0445
+0xe6 0x0446
+0xe7 0x0447
+0xe8 0x0448
+0xe9 0x0449
+0xea 0x044a
+0xeb 0x044b
+0xec 0x044c
+0xed 0x044d
+0xee 0x044e
+0xef 0x044f
+0xf0 0x0401
+0xf1 0x0451
+0xf2 0x0404
+0xf3 0x0454
+0xf4 0x0407
+0xf5 0x0457
+0xf6 0x040e
+0xf7 0x045e
+0xf8 0x00b0
+0xf9 0x2219
+0xfa 0x00b7
+0xfb 0x221a
+0xfc 0x2116
+0xfd 0x00a4
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm868.t b/tp/maintain/lib/libintl-perl/tests/02ibm868.t
new file mode 100644
index 0000000..fe8174c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm868.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM868',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM868',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM868');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x8c"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM868',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0660
+0x81 0x0661
+0x82 0x0662
+0x83 0x0663
+0x84 0x0664
+0x85 0x0665
+0x86 0x0666
+0x87 0x0667
+0x88 0x0668
+0x89 0x0669
+0x8a 0x060c
+0x8b 0x061b
+0x8c 0x061f
+0x8d 0x0622
+0x8e 0x0627
+0x8f 0xfe8e
+0x90 0xe016
+0x91 0x0628
+0x92 0xfe91
+0x93 0x067e
+0x95 0xfffd
+0x95 0x0629
+0x96 0x062a
+0x97 0xfe97
+0x9a 0xfffd
+0x9a 0xfffd
+0x9a 0x062b
+0x9b 0xfe9b
+0x9c 0x062c
+0x9d 0xfe9f
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0x062d
+0xa1 0xfea3
+0xa2 0x062e
+0xa3 0xfea7
+0xa4 0x062f
+0xa6 0xfffd
+0xa6 0x0630
+0xa7 0x0631
+0xa9 0xfffd
+0xa9 0x0632
+0xab 0xfffd
+0xab 0x0633
+0xac 0xfeb3
+0xad 0x0634
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0xfeb7
+0xb1 0x0635
+0xb2 0x2591
+0xb3 0x2592
+0xb4 0x2593
+0xb5 0x2502
+0xb6 0x2524
+0xb7 0xfebb
+0xb8 0x0636
+0xb9 0xfebf
+0xba 0x0637
+0xbb 0x2563
+0xbc 0x2551
+0xbd 0x2557
+0xbe 0x255d
+0xbf 0x0638
+0xc0 0x0639
+0xc1 0x2510
+0xc2 0x2514
+0xc3 0x2534
+0xc4 0x252c
+0xc5 0x251c
+0xc6 0x2500
+0xc7 0x253c
+0xc8 0xfeca
+0xc9 0xfecb
+0xca 0x255a
+0xcb 0x2554
+0xcc 0x2569
+0xcd 0x2566
+0xce 0x2560
+0xcf 0x2550
+0xd0 0x256c
+0xd1 0xfecc
+0xd2 0x063a
+0xd3 0xfece
+0xd4 0xfecf
+0xd5 0xfed0
+0xd6 0x0641
+0xd7 0xfed3
+0xd8 0x0642
+0xd9 0xfed7
+0xda 0xfeda
+0xdb 0x2518
+0xdc 0x250c
+0xdd 0x2588
+0xde 0x2580
+0xdf 0xfedb
+0xe1 0xfffd
+0xe1 0x2584
+0xe3 0xfffd
+0xe3 0x0644
+0xe4 0xfede
+0xe5 0xfee0
+0xe6 0x0645
+0xe7 0xfee3
+0xe9 0xfffd
+0xe9 0x0646
+0xea 0xfee7
+0xec 0xfffd
+0xec 0x0648
+0xf1 0xfffd
+0xf1 0xfffd
+0xf1 0xfffd
+0xf1 0xfffd
+0xf1 0x0621
+0xf2 0x00ad
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0xfffd
+0xfb 0x0651
+0xfc 0xfe7d
+0xfe 0xfffd
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm869.t b/tp/maintain/lib/libintl-perl/tests/02ibm869.t
new file mode 100644
index 0000000..8a4adb9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm869.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM869',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM869',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM869');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM869',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x86 0xfffd
+0x86 0xfffd
+0x86 0xfffd
+0x86 0xfffd
+0x86 0xfffd
+0x86 0xfffd
+0x86 0x0386
+0x88 0xfffd
+0x88 0x00b7
+0x89 0x00ac
+0x8a 0x00a6
+0x8b 0x2018
+0x8c 0x2019
+0x8d 0x0388
+0x8e 0x2015
+0x8f 0x0389
+0x90 0x038a
+0x91 0x03aa
+0x92 0x038c
+0x95 0xfffd
+0x95 0xfffd
+0x95 0x038e
+0x96 0x03ab
+0x97 0x00a9
+0x98 0x038f
+0x99 0x00b2
+0x9a 0x00b3
+0x9b 0x03ac
+0x9c 0x00a3
+0x9d 0x03ad
+0x9e 0x03ae
+0x9f 0x03af
+0xa0 0x03ca
+0xa1 0x0390
+0xa2 0x03cc
+0xa3 0x03cd
+0xa4 0x0391
+0xa5 0x0392
+0xa6 0x0393
+0xa7 0x0394
+0xa8 0x0395
+0xa9 0x0396
+0xaa 0x0397
+0xab 0x00bd
+0xac 0x0398
+0xad 0x0399
+0xae 0x00ab
+0xaf 0x00bb
+0xb0 0x2591
+0xb1 0x2592
+0xb2 0x2593
+0xb3 0x2502
+0xb4 0x2524
+0xb5 0x039a
+0xb6 0x039b
+0xb7 0x039c
+0xb8 0x039d
+0xb9 0x2563
+0xba 0x2551
+0xbb 0x2557
+0xbc 0x255d
+0xbd 0x039e
+0xbe 0x039f
+0xbf 0x2510
+0xc0 0x2514
+0xc1 0x2534
+0xc2 0x252c
+0xc3 0x251c
+0xc4 0x2500
+0xc5 0x253c
+0xc6 0x03a0
+0xc7 0x03a1
+0xc8 0x255a
+0xc9 0x2554
+0xca 0x2569
+0xcb 0x2566
+0xcc 0x2560
+0xcd 0x2550
+0xce 0x256c
+0xcf 0x03a3
+0xd0 0x03a4
+0xd1 0x03a5
+0xd2 0x03a6
+0xd3 0x03a7
+0xd4 0x03a8
+0xd5 0x03a9
+0xd6 0x03b1
+0xd7 0x03b2
+0xd8 0x03b3
+0xd9 0x2518
+0xda 0x250c
+0xdb 0x2588
+0xdc 0x2584
+0xdd 0x03b4
+0xde 0x03b5
+0xdf 0x2580
+0xe0 0x03b6
+0xe1 0x03b7
+0xe2 0x03b8
+0xe3 0x03b9
+0xe4 0x03ba
+0xe5 0x03bb
+0xe6 0x03bc
+0xe7 0x03bd
+0xe8 0x03be
+0xe9 0x03bf
+0xea 0x03c0
+0xeb 0x03c1
+0xec 0x03c3
+0xed 0x03c2
+0xee 0x03c4
+0xef 0x0384
+0xf0 0x00ad
+0xf1 0x00b1
+0xf2 0x03c5
+0xf3 0x03c6
+0xf4 0x03c7
+0xf5 0x00a7
+0xf6 0x03c8
+0xf7 0x0385
+0xf8 0x00b0
+0xf9 0x00a8
+0xfa 0x03c9
+0xfb 0x03cb
+0xfc 0x03b0
+0xfd 0x03ce
+0xfe 0x25a0
+0xff 0x00a0
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm870.t b/tp/maintain/lib/libintl-perl/tests/02ibm870.t
new file mode 100644
index 0000000..15d2e7a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm870.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM870',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM870',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM870');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM870',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x43 0xfffd
+0x43 0x00e4
+0x45 0xfffd
+0x45 0x00e1
+0x46 0x0103
+0x47 0x010d
+0x48 0x00e7
+0x49 0x0107
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x53 0xfffd
+0x53 0x00eb
+0x54 0x016f
+0x55 0x00ed
+0x57 0xfffd
+0x57 0x013e
+0x58 0x013a
+0x59 0x00df
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x63 0xfffd
+0x63 0x00c4
+0x64 0x02dd
+0x65 0x00c1
+0x67 0xfffd
+0x67 0x010c
+0x68 0x00c7
+0x69 0x0106
+0x6a 0x007c
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x02c7
+0x71 0x00c9
+0x73 0xfffd
+0x73 0x00cb
+0x74 0x016e
+0x75 0x00cd
+0x77 0xfffd
+0x77 0x013d
+0x78 0x0139
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x02d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x015b
+0x8b 0x0148
+0x8c 0x0111
+0x8d 0x00fd
+0x8e 0x0159
+0x90 0xfffd
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x0142
+0x9b 0x0144
+0x9c 0x0161
+0x9d 0x00b8
+0x9e 0x02db
+0x9f 0x00a4
+0xa0 0x0105
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x015a
+0xab 0x0147
+0xac 0x0110
+0xad 0x00dd
+0xae 0x0158
+0xb0 0xfffd
+0xb0 0x00b7
+0xb1 0x0104
+0xb2 0x017c
+0xb4 0xfffd
+0xb4 0x017b
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x017e
+0xb8 0x017a
+0xb9 0x017d
+0xba 0x0179
+0xbb 0x0143
+0xbc 0x0160
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x00f6
+0xcd 0x0155
+0xce 0x00f3
+0xcf 0x0151
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x011a
+0xdb 0x0171
+0xdc 0x00fc
+0xdd 0x0165
+0xde 0x00fa
+0xdf 0x011b
+0xe0 0x005c
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x010f
+0xeb 0x00d4
+0xec 0x00d6
+0xed 0x0154
+0xee 0x00d3
+0xef 0x0150
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x010e
+0xfb 0x0170
+0xfc 0x00dc
+0xfd 0x0164
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm871.t b/tp/maintain/lib/libintl-perl/tests/02ibm871.t
new file mode 100644
index 0000000..e6c08c9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm871.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM871',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM871',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM871');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM871',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x46 0x00e3
+0x47 0x00e5
+0x48 0x00e7
+0x49 0x00f1
+0x4a 0x00fe
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x00c6
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x00d6
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x66 0x00c3
+0x67 0x00c5
+0x68 0x00c7
+0x69 0x00d1
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00f8
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x00f0
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x00d0
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x00d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x00ab
+0x8b 0x00bb
+0x8c 0x0060
+0x8d 0x00fd
+0x8e 0x007b
+0x8f 0x00b1
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x00aa
+0x9b 0x00ba
+0x9c 0x007d
+0x9d 0x00b8
+0x9e 0x005d
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00f6
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x00a1
+0xab 0x00bf
+0xac 0x0040
+0xad 0x00dd
+0xae 0x005b
+0xaf 0x00ae
+0xb0 0x00a2
+0xb1 0x00a3
+0xb2 0x00a5
+0xb3 0x00b7
+0xb4 0x00a9
+0xb5 0x00a7
+0xb6 0x00b6
+0xb7 0x00bc
+0xb8 0x00bd
+0xb9 0x00be
+0xba 0x00ac
+0xbb 0x007c
+0xbc 0x00af
+0xbd 0x00a8
+0xbe 0x005c
+0xbf 0x00d7
+0xc0 0x00de
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x007e
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x00f5
+0xd0 0x00e6
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b9
+0xdb 0x00fb
+0xdc 0x00fc
+0xdd 0x00f9
+0xde 0x00fa
+0xdf 0x00ff
+0xe0 0x00b4
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x005e
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x00d5
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x00dc
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm874.t b/tp/maintain/lib/libintl-perl/tests/02ibm874.t
new file mode 100644
index 0000000..5936eb9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm874.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM874',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM874',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM874');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM874',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x85 0xfffd
+0x85 0xfffd
+0x85 0xfffd
+0x85 0xfffd
+0x85 0x2026
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0xfffd
+0xa0 0x00a0
+0xa1 0x0e01
+0xa2 0x0e02
+0xa3 0x0e03
+0xa4 0x0e04
+0xa5 0x0e05
+0xa6 0x0e06
+0xa7 0x0e07
+0xa8 0x0e08
+0xa9 0x0e09
+0xaa 0x0e0a
+0xab 0x0e0b
+0xac 0x0e0c
+0xad 0x0e0d
+0xae 0x0e0e
+0xaf 0x0e0f
+0xb0 0x0e10
+0xb1 0x0e11
+0xb2 0x0e12
+0xb3 0x0e13
+0xb4 0x0e14
+0xb5 0x0e15
+0xb6 0x0e16
+0xb7 0x0e17
+0xb8 0x0e18
+0xb9 0x0e19
+0xba 0x0e1a
+0xbb 0x0e1b
+0xbc 0x0e1c
+0xbd 0x0e1d
+0xbe 0x0e1e
+0xbf 0x0e1f
+0xc0 0x0e20
+0xc1 0x0e21
+0xc2 0x0e22
+0xc3 0x0e23
+0xc4 0x0e24
+0xc5 0x0e25
+0xc6 0x0e26
+0xc7 0x0e27
+0xc8 0x0e28
+0xc9 0x0e29
+0xca 0x0e2a
+0xcb 0x0e2b
+0xcc 0x0e2c
+0xcd 0x0e2d
+0xce 0x0e2e
+0xcf 0x0e2f
+0xd0 0x0e30
+0xd1 0x0e31
+0xd2 0x0e32
+0xd3 0x0e33
+0xd4 0x0e34
+0xd5 0x0e35
+0xd6 0x0e36
+0xd7 0x0e37
+0xd8 0x0e38
+0xd9 0x0e39
+0xda 0x0e3a
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0x0e3f
+0xe0 0x0e40
+0xe1 0x0e41
+0xe2 0x0e42
+0xe3 0x0e43
+0xe4 0x0e44
+0xe5 0x0e45
+0xe6 0x0e46
+0xe7 0x0e47
+0xe8 0x0e48
+0xe9 0x0e49
+0xea 0x0e4a
+0xeb 0x0e4b
+0xec 0x0e4c
+0xed 0x0e4d
+0xee 0x0e4e
+0xef 0x0e4f
+0xf0 0x0e50
+0xf1 0x0e51
+0xf2 0x0e52
+0xf3 0x0e53
+0xf4 0x0e54
+0xf5 0x0e55
+0xf6 0x0e56
+0xf7 0x0e57
+0xf8 0x0e58
+0xf9 0x0e59
+0xfa 0x0e5a
+0xfb 0x0e5b
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm875.t b/tp/maintain/lib/libintl-perl/tests/02ibm875.t
new file mode 100644
index 0000000..6e004df
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm875.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM875',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM875',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM875');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM875',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x0391
+0x42 0x0392
+0x43 0x0393
+0x44 0x0394
+0x45 0x0395
+0x46 0x0396
+0x47 0x0397
+0x48 0x0398
+0x49 0x0399
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x039a
+0x52 0x039b
+0x53 0x039c
+0x54 0x039d
+0x55 0x039e
+0x56 0x039f
+0x57 0x03a0
+0x58 0x03a1
+0x59 0x03a3
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x03a4
+0x63 0x03a5
+0x64 0x03a6
+0x65 0x03a7
+0x66 0x03a8
+0x67 0x03a9
+0x68 0x03aa
+0x69 0x03ab
+0x6b 0xfffd
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x00a8
+0x71 0x0386
+0x72 0x0388
+0x73 0x0389
+0x74 0x2207
+0x75 0x038a
+0x76 0x038c
+0x77 0x038e
+0x78 0x038f
+0x79 0x0060
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x0385
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x03b1
+0x8b 0x03b2
+0x8c 0x03b3
+0x8d 0x03b4
+0x8e 0x03b5
+0x8f 0x03b6
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x03b7
+0x9b 0x03b8
+0x9c 0x03b9
+0x9d 0x03ba
+0x9e 0x03bb
+0x9f 0x03bc
+0xa0 0x00b4
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x03bd
+0xab 0x03be
+0xac 0x03bf
+0xad 0x03c0
+0xae 0x03c1
+0xaf 0x03c3
+0xb0 0x00a3
+0xb1 0x03ac
+0xb2 0x03ad
+0xb3 0x03ae
+0xb4 0x0390
+0xb5 0x03af
+0xb6 0x03cc
+0xb7 0x03cd
+0xb8 0x03b0
+0xb9 0x03ce
+0xba 0x03c2
+0xbb 0x03c4
+0xbc 0x03c5
+0xbd 0x03c6
+0xbe 0x03c7
+0xbf 0x03c8
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x03c9
+0xcc 0x03ca
+0xcd 0x03cb
+0xce 0x2018
+0xcf 0x2015
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x00b1
+0xdb 0x00bd
+0xdd 0xfffd
+0xdd 0x00b7
+0xde 0x2019
+0xdf 0x00a6
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00a7
+0xee 0xfffd
+0xee 0xfffd
+0xee 0x00ab
+0xef 0x00ac
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00a9
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0x00bb
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm880.t b/tp/maintain/lib/libintl-perl/tests/02ibm880.t
new file mode 100644
index 0000000..6fd75e7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm880.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM880',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM880',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM880');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM880',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x42 0xfffd
+0x42 0x0452
+0x43 0x0453
+0x44 0x0451
+0x46 0xfffd
+0x46 0x0455
+0x47 0x0456
+0x48 0x0457
+0x49 0x0458
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x0459
+0x52 0x045a
+0x53 0x045b
+0x54 0x045c
+0x56 0xfffd
+0x56 0x045f
+0x57 0x042a
+0x58 0x2116
+0x59 0x0402
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x0403
+0x63 0x0401
+0x65 0xfffd
+0x65 0x0405
+0x66 0x0406
+0x67 0x0407
+0x68 0x0408
+0x69 0x0409
+0x6a 0x00a6
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x040a
+0x71 0x040b
+0x72 0x040c
+0x75 0xfffd
+0x75 0xfffd
+0x75 0x040f
+0x76 0x044e
+0x77 0x0430
+0x78 0x0431
+0x7a 0xfffd
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0x0446
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x0434
+0x8b 0x0435
+0x8c 0x0444
+0x8d 0x0433
+0x8e 0x0445
+0x8f 0x0438
+0x90 0x0439
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x043a
+0x9b 0x043b
+0x9c 0x043c
+0x9d 0x043d
+0x9e 0x043e
+0x9f 0x043f
+0xa0 0x044f
+0xa2 0xfffd
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x0440
+0xab 0x0441
+0xac 0x0442
+0xad 0x0443
+0xae 0x0436
+0xaf 0x0432
+0xb0 0x044c
+0xb1 0x044b
+0xb2 0x0437
+0xb3 0x0448
+0xb4 0x044d
+0xb5 0x0449
+0xb6 0x0447
+0xb7 0x044a
+0xb8 0x042e
+0xb9 0x0410
+0xba 0x0411
+0xbb 0x0426
+0xbc 0x0414
+0xbd 0x0415
+0xbe 0x0424
+0xbf 0x0413
+0xc1 0xfffd
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x0425
+0xcb 0x0418
+0xcc 0x0419
+0xcd 0x041a
+0xce 0x041b
+0xcf 0x041c
+0xd1 0xfffd
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x041d
+0xdb 0x041e
+0xdc 0x041f
+0xdd 0x042f
+0xde 0x0420
+0xdf 0x0421
+0xe0 0x005c
+0xe1 0x00a4
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x0422
+0xeb 0x0423
+0xec 0x0416
+0xed 0x0412
+0xee 0x042c
+0xef 0x042b
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm891.t b/tp/maintain/lib/libintl-perl/tests/02ibm891.t
new file mode 100644
index 0000000..44e63c0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm891.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM891',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM891',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM891');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM891',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm903.t b/tp/maintain/lib/libintl-perl/tests/02ibm903.t
new file mode 100644
index 0000000..1a9516c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm903.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM903',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM903',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM903');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM903',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm904.t b/tp/maintain/lib/libintl-perl/tests/02ibm904.t
new file mode 100644
index 0000000..4e08fe1
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm904.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM904',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM904',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM904');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM904',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00a2
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0x00ac
+0xfe 0x00a6
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm905.t b/tp/maintain/lib/libintl-perl/tests/02ibm905.t
new file mode 100644
index 0000000..9ed5238
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm905.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM905',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM905',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM905');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM905',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x42 0xfffd
+0x42 0x00e2
+0x43 0x00e4
+0x44 0x00e0
+0x45 0x00e1
+0x47 0xfffd
+0x47 0x010b
+0x48 0x007b
+0x49 0x00f1
+0x4a 0x00c7
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0x00e9
+0x52 0x00ea
+0x53 0x00eb
+0x54 0x00e8
+0x55 0x00ed
+0x56 0x00ee
+0x57 0x00ef
+0x58 0x00ec
+0x59 0x00df
+0x5a 0x011e
+0x5b 0x0130
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0x00c2
+0x63 0x00c4
+0x64 0x00c0
+0x65 0x00c1
+0x67 0xfffd
+0x67 0x010a
+0x68 0x005b
+0x69 0x00d1
+0x6a 0x015f
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x71 0xfffd
+0x71 0x00c9
+0x72 0x00ca
+0x73 0x00cb
+0x74 0x00c8
+0x75 0x00cd
+0x76 0x00ce
+0x77 0x00cf
+0x78 0x00cc
+0x79 0x0131
+0x7a 0x003a
+0x7b 0x00d6
+0x7c 0x015e
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x00dc
+0x80 0x02d8
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x0127
+0x8b 0x0109
+0x8c 0x015d
+0x8d 0x016d
+0x8f 0xfffd
+0x8f 0x007c
+0x90 0x00b0
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x0125
+0x9b 0x011d
+0x9c 0x0135
+0x9d 0x02db
+0x9f 0xfffd
+0x9f 0x00a4
+0xa0 0x00b5
+0xa1 0x00f6
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0x0126
+0xab 0x0108
+0xac 0x015c
+0xad 0x016c
+0xaf 0xfffd
+0xaf 0x0040
+0xb0 0x00b7
+0xb1 0x00a3
+0xb2 0x017c
+0xb3 0x007d
+0xb4 0x017b
+0xb5 0x00a7
+0xb6 0x005d
+0xb8 0xfffd
+0xb8 0x00bd
+0xb9 0x0024
+0xba 0x0124
+0xbb 0x011c
+0xbc 0x0134
+0xbd 0x00a8
+0xbe 0x00b4
+0xbf 0x00d7
+0xc0 0x00e7
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcb 0x00f4
+0xcc 0x007e
+0xcd 0x00f2
+0xce 0x00f3
+0xcf 0x0121
+0xd0 0x011f
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0x0060
+0xdb 0x00fb
+0xdc 0x005c
+0xdd 0x00f9
+0xde 0x00fa
+0xe0 0xfffd
+0xe0 0x00fc
+0xe1 0x00f7
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x00b2
+0xeb 0x00d4
+0xec 0x0023
+0xed 0x00d2
+0xee 0x00d3
+0xef 0x0120
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfa 0x00b3
+0xfb 0x00db
+0xfc 0x0022
+0xfd 0x00d9
+0xfe 0x00da
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02ibm918.t b/tp/maintain/lib/libintl-perl/tests/02ibm918.t
new file mode 100644
index 0000000..090ed6a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02ibm918.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IBM918',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IBM918',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM918');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x6f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IBM918',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x009c
+0x05 0x0009
+0x06 0x0086
+0x07 0x007f
+0x08 0x0097
+0x09 0x008d
+0x0a 0x008e
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x009d
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18 0x0018
+0x19 0x0019
+0x1a 0x0092
+0x1b 0x008f
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0080
+0x21 0x0081
+0x22 0x0082
+0x23 0x0083
+0x24 0x0084
+0x25 0x000a
+0x26 0x0017
+0x27 0x001b
+0x28 0x0088
+0x29 0x0089
+0x2a 0x008a
+0x2b 0x008b
+0x2c 0x008c
+0x2d 0x0005
+0x2e 0x0006
+0x2f 0x0007
+0x30 0x0090
+0x31 0x0091
+0x32 0x0016
+0x33 0x0093
+0x34 0x0094
+0x35 0x0095
+0x36 0x0096
+0x37 0x0004
+0x38 0x0098
+0x39 0x0099
+0x3a 0x009a
+0x3b 0x009b
+0x3c 0x0014
+0x3d 0x0015
+0x3e 0x009e
+0x3f 0x001a
+0x40 0x0020
+0x41 0x00a0
+0x42 0x060c
+0x43 0x061b
+0x44 0x061f
+0x45 0x0623
+0x46 0x0627
+0x47 0xfe8e
+0x49 0xfffd
+0x49 0x0628
+0x4a 0x005b
+0x4b 0x002e
+0x4c 0x003c
+0x4d 0x0028
+0x4e 0x002b
+0x4f 0x0021
+0x50 0x0026
+0x51 0xfe91
+0x52 0x067e
+0x54 0xfffd
+0x54 0x0629
+0x55 0x062a
+0x56 0xfe97
+0x59 0xfffd
+0x59 0xfffd
+0x59 0x062b
+0x5a 0x005d
+0x5b 0x0024
+0x5c 0x002a
+0x5d 0x0029
+0x5e 0x003b
+0x5f 0x005e
+0x60 0x002d
+0x61 0x002f
+0x62 0xfe9b
+0x63 0x062c
+0x64 0xfe9f
+0x67 0xfffd
+0x67 0xfffd
+0x67 0x062d
+0x68 0xfea3
+0x69 0x062e
+0x6a 0x0060
+0x6b 0x002c
+0x6c 0x0025
+0x6d 0x005f
+0x6e 0x003e
+0x6f 0x003f
+0x70 0x0660
+0x71 0x0661
+0x72 0x0662
+0x73 0x0663
+0x74 0x0664
+0x75 0x0665
+0x76 0x0666
+0x77 0x0667
+0x78 0x0668
+0x79 0x0669
+0x7a 0x003a
+0x7b 0x0023
+0x7c 0x0040
+0x7d 0x0027
+0x7e 0x003d
+0x7f 0x0022
+0x80 0xfea7
+0x81 0x0061
+0x82 0x0062
+0x83 0x0063
+0x84 0x0064
+0x85 0x0065
+0x86 0x0066
+0x87 0x0067
+0x88 0x0068
+0x89 0x0069
+0x8a 0x062f
+0x8c 0xfffd
+0x8c 0x0630
+0x8d 0x0631
+0x8f 0xfffd
+0x8f 0x0632
+0x91 0xfffd
+0x91 0x006a
+0x92 0x006b
+0x93 0x006c
+0x94 0x006d
+0x95 0x006e
+0x96 0x006f
+0x97 0x0070
+0x98 0x0071
+0x99 0x0072
+0x9a 0x0633
+0x9b 0xfeb3
+0x9c 0x0634
+0x9d 0xfeb7
+0x9e 0x0635
+0x9f 0xfebb
+0xa0 0x0636
+0xa1 0x007e
+0xa2 0x0073
+0xa3 0x0074
+0xa4 0x0075
+0xa5 0x0076
+0xa6 0x0077
+0xa7 0x0078
+0xa8 0x0079
+0xa9 0x007a
+0xaa 0xfebf
+0xab 0x0637
+0xac 0x0638
+0xad 0x0639
+0xae 0xfeca
+0xaf 0xfecb
+0xb0 0xfecc
+0xb1 0x063a
+0xb2 0xfece
+0xb3 0xfecf
+0xb4 0xfed0
+0xb5 0x0641
+0xb6 0xfed3
+0xb7 0x0642
+0xb8 0xfed7
+0xb9 0x0643
+0xba 0xfedb
+0xbb 0x007c
+0xbe 0xfffd
+0xbe 0xfffd
+0xbe 0x0644
+0xbf 0xfede
+0xc0 0x007b
+0xc1 0x0041
+0xc2 0x0042
+0xc3 0x0043
+0xc4 0x0044
+0xc5 0x0045
+0xc6 0x0046
+0xc7 0x0047
+0xc8 0x0048
+0xc9 0x0049
+0xca 0x00ad
+0xcc 0xfffd
+0xcc 0x0645
+0xcd 0xfee3
+0xcf 0xfffd
+0xcf 0x0646
+0xd0 0x007d
+0xd1 0x004a
+0xd2 0x004b
+0xd3 0x004c
+0xd4 0x004d
+0xd5 0x004e
+0xd6 0x004f
+0xd7 0x0050
+0xd8 0x0051
+0xd9 0x0052
+0xda 0xfee7
+0xdc 0xfffd
+0xdc 0x0648
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x005c
+0xe2 0xfffd
+0xe2 0x0053
+0xe3 0x0054
+0xe4 0x0055
+0xe5 0x0056
+0xe6 0x0057
+0xe7 0x0058
+0xe8 0x0059
+0xe9 0x005a
+0xea 0x0621
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0xfffd
+0xf0 0x0030
+0xf1 0x0031
+0xf2 0x0032
+0xf3 0x0033
+0xf4 0x0034
+0xf5 0x0035
+0xf6 0x0036
+0xf7 0x0037
+0xf8 0x0038
+0xf9 0x0039
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0x0651
+0xfe 0xfe7d
+0xff 0x009f
diff --git a/tp/maintain/lib/libintl-perl/tests/02iec_p27-1.t b/tp/maintain/lib/libintl-perl/tests/02iec_p27-1.t
new file mode 100644
index 0000000..fa78493
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iec_p27-1.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'IEC_P27-1',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'IEC_P27-1',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IEC_P27-1');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'IEC_P27-1',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x02c7
+0xa1 0x2261
+0xa2 0x2227
+0xa3 0x2228
+0xa4 0x2229
+0xa5 0x222a
+0xa6 0x2282
+0xa7 0x2283
+0xa8 0x21d0
+0xa9 0x21d2
+0xaa 0x2234
+0xab 0x2235
+0xac 0x2208
+0xad 0x220b
+0xae 0x2286
+0xaf 0x2287
+0xb0 0x222b
+0xb1 0x222e
+0xb2 0x221e
+0xb3 0x2207
+0xb4 0x2202
+0xb5 0x223c
+0xb6 0x2248
+0xb7 0x2243
+0xb8 0x2245
+0xb9 0x2264
+0xba 0x2260
+0xbb 0x2265
+0xbc 0x2194
+0xbd 0x00ac
+0xbe 0x2200
+0xbf 0x2203
+0xc0 0x05d0
+0xc1 0x25a1
+0xc2 0x2225
+0xc3 0x0393
+0xc4 0x0394
+0xc5 0x22a5
+0xc6 0x2220
+0xc7 0x221f
+0xc8 0x0398
+0xc9 0x2329
+0xca 0x232a
+0xcb 0x039b
+0xcc 0x2032
+0xcd 0x2033
+0xce 0x039e
+0xcf 0x2213
+0xd0 0x03a0
+0xd1 0x00b2
+0xd2 0x03a3
+0xd3 0x00d7
+0xd4 0x00b3
+0xd5 0x03a5
+0xd6 0x03a6
+0xd7 0x00b7
+0xd8 0x03a8
+0xd9 0x03a9
+0xda 0x2205
+0xdb 0x21c0
+0xdc 0x221a
+0xdd 0x0192
+0xde 0x221d
+0xdf 0x00b1
+0xe0 0x00b0
+0xe1 0x03b1
+0xe2 0x03b2
+0xe3 0x03b3
+0xe4 0x03b4
+0xe5 0x03b5
+0xe6 0x03b6
+0xe7 0x03b7
+0xe8 0x03b8
+0xe9 0x03b9
+0xea 0x03ba
+0xeb 0x03bb
+0xec 0x03bc
+0xed 0x03bd
+0xee 0x03be
+0xef 0x2030
+0xf0 0x03c0
+0xf1 0x03c1
+0xf2 0x03c3
+0xf3 0x00f7
+0xf4 0x03c4
+0xf5 0x03c5
+0xf6 0x03c6
+0xf7 0x03c7
+0xf8 0x03c8
+0xf9 0x03c9
+0xfa 0x2020
+0xfb 0x2190
+0xfc 0x2191
+0xfd 0x2192
+0xfe 0x2193
+0xff 0x203e
diff --git a/tp/maintain/lib/libintl-perl/tests/02inis-8.t b/tp/maintain/lib/libintl-perl/tests/02inis-8.t
new file mode 100644
index 0000000..e15dd0a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02inis-8.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'INIS-8',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'INIS-8',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS-8');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS-8',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0xfffd
+0x3a 0x03b1
+0x3b 0x03b2
+0x3c 0x03b3
+0x3d 0x03b4
+0x3e 0x039e
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0xfffd
+0x5e 0x2192
+0x5f 0x222b
+0x60 0x2070
+0x61 0x00b9
+0x62 0x00b2
+0x63 0x00b3
+0x64 0x2074
+0x65 0x2075
+0x66 0x2076
+0x67 0x2077
+0x68 0x2078
+0x69 0x2079
+0x6a 0x207a
+0x6b 0x207b
+0x6c 0x30eb
+0x6d 0x0394
+0x6e 0x039b
+0x6f 0x03a9
+0x70 0x2080
+0x71 0x2081
+0x72 0x2082
+0x73 0x2083
+0x74 0x2084
+0x75 0x2085
+0x76 0x2086
+0x77 0x2087
+0x78 0x2088
+0x79 0x2089
+0x7a 0x03a3
+0x7b 0x03bc
+0x7c 0x03bd
+0x7d 0x03c9
+0x7e 0x03c0
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02inis-cyrillic.t b/tp/maintain/lib/libintl-perl/tests/02inis-cyrillic.t
new file mode 100644
index 0000000..42ca7dd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02inis-cyrillic.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'INIS-CYRILLIC',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'INIS-CYRILLIC',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS-CYRILLIC');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS-CYRILLIC',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0xfffd
+0x2c 0x221a
+0x2e 0xfffd
+0x2e 0x2192
+0x2f 0x222b
+0x30 0x03b1
+0x31 0x03b2
+0x32 0x03b3
+0x33 0x03b4
+0x34 0x03a3
+0x35 0x03bc
+0x36 0x03bd
+0x37 0x03c9
+0x38 0x03c0
+0x39 0x039e
+0x3a 0x0394
+0x3b 0x039b
+0x3c 0x03a9
+0x3d 0x042a
+0x3e 0x207b
+0x3f 0x207a
+0x40 0x044e
+0x41 0x0430
+0x42 0x0431
+0x43 0x0446
+0x44 0x0434
+0x45 0x0435
+0x46 0x0444
+0x47 0x0433
+0x48 0x0445
+0x49 0x0438
+0x4a 0x0439
+0x4b 0x043a
+0x4c 0x043b
+0x4d 0x043c
+0x4e 0x043d
+0x4f 0x043e
+0x50 0x043f
+0x51 0x044f
+0x52 0x0440
+0x53 0x0441
+0x54 0x0442
+0x55 0x0443
+0x56 0x0436
+0x57 0x0432
+0x58 0x044c
+0x59 0x044b
+0x5a 0x0437
+0x5b 0x0448
+0x5c 0x044d
+0x5d 0x0449
+0x5e 0x0447
+0x5f 0x044a
+0x60 0x042e
+0x61 0x0410
+0x62 0x0411
+0x63 0x0426
+0x64 0x0414
+0x65 0x0415
+0x66 0x0424
+0x67 0x0413
+0x68 0x0425
+0x69 0x0418
+0x6a 0x0419
+0x6b 0x041a
+0x6c 0x041b
+0x6d 0x041c
+0x6e 0x041d
+0x6f 0x041e
+0x70 0x041f
+0x71 0x042f
+0x72 0x0420
+0x73 0x0421
+0x74 0x0422
+0x75 0x0423
+0x76 0x0416
+0x77 0x0412
+0x78 0x042c
+0x79 0x042b
+0x7a 0x0417
+0x7b 0x0428
+0x7c 0x042d
+0x7d 0x0429
+0x7e 0x0427
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02inis.t b/tp/maintain/lib/libintl-perl/tests/02inis.t
new file mode 100644
index 0000000..eb6812e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02inis.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'INIS',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'INIS',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'INIS',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x24 0xfffd
+0x24 0xfffd
+0x24 0xfffd
+0x24 0x0024
+0x25 0x0025
+0x27 0xfffd
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x41 0xfffd
+0x41 0xfffd
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5d 0xfffd
+0x5d 0x005d
+0x61 0xfffd
+0x61 0xfffd
+0x61 0xfffd
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7c 0xfffd
+0x7c 0x007c
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-1.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-1.t
new file mode 100644
index 0000000..86cc9ca
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-1.t
@@ -0,0 +1,398 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-1',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-1',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-1');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-1',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0A 0x000A
+0x0B 0x000B
+0x0C 0x000C
+0x0D 0x000D
+0x0E 0x000E
+0x0F 0x000F
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1A 0x001A
+0x1B 0x001B
+0x1C 0x001C
+0x1D 0x001D
+0x1E 0x001E
+0x1F 0x001F
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x007B
+0x7C 0x007C
+0x7D 0x007D
+0x7E 0x007E
+0x7F 0x007F
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8A 0x008A
+0x8B 0x008B
+0x8C 0x008C
+0x8D 0x008D
+0x8E 0x008E
+0x8F 0x008F
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9A 0x009A
+0x9B 0x009B
+0x9C 0x009C
+0x9D 0x009D
+0x9E 0x009E
+0x9F 0x009F
+0xA0 0x00A0
+0xA1 0x00A1
+0xA2 0x00A2
+0xA3 0x00A3
+0xA4 0x00A4
+0xA5 0x00A5
+0xA6 0x00A6
+0xA7 0x00A7
+0xA8 0x00A8
+0xA9 0x00A9
+0xAA 0x00AA
+0xAB 0x00AB
+0xAC 0x00AC
+0xAD 0x00AD
+0xAE 0x00AE
+0xAF 0x00AF
+0xB0 0x00B0
+0xB1 0x00B1
+0xB2 0x00B2
+0xB3 0x00B3
+0xB4 0x00B4
+0xB5 0x00B5
+0xB6 0x00B6
+0xB7 0x00B7
+0xB8 0x00B8
+0xB9 0x00B9
+0xBA 0x00BA
+0xBB 0x00BB
+0xBC 0x00BC
+0xBD 0x00BD
+0xBE 0x00BE
+0xBF 0x00BF
+0xC0 0x00C0
+0xC1 0x00C1
+0xC2 0x00C2
+0xC3 0x00C3
+0xC4 0x00C4
+0xC5 0x00C5
+0xC6 0x00C6
+0xC7 0x00C7
+0xC8 0x00C8
+0xC9 0x00C9
+0xCA 0x00CA
+0xCB 0x00CB
+0xCC 0x00CC
+0xCD 0x00CD
+0xCE 0x00CE
+0xCF 0x00CF
+0xD0 0x00D0
+0xD1 0x00D1
+0xD2 0x00D2
+0xD3 0x00D3
+0xD4 0x00D4
+0xD5 0x00D5
+0xD6 0x00D6
+0xD7 0x00D7
+0xD8 0x00D8
+0xD9 0x00D9
+0xDA 0x00DA
+0xDB 0x00DB
+0xDC 0x00DC
+0xDD 0x00DD
+0xDE 0x00DE
+0xDF 0x00DF
+0xE0 0x00E0
+0xE1 0x00E1
+0xE2 0x00E2
+0xE3 0x00E3
+0xE4 0x00E4
+0xE5 0x00E5
+0xE6 0x00E6
+0xE7 0x00E7
+0xE8 0x00E8
+0xE9 0x00E9
+0xEA 0x00EA
+0xEB 0x00EB
+0xEC 0x00EC
+0xED 0x00ED
+0xEE 0x00EE
+0xEF 0x00EF
+0xF0 0x00F0
+0xF1 0x00F1
+0xF2 0x00F2
+0xF3 0x00F3
+0xF4 0x00F4
+0xF5 0x00F5
+0xF6 0x00F6
+0xF7 0x00F7
+0xF8 0x00F8
+0xF9 0x00F9
+0xFA 0x00FA
+0xFB 0x00FB
+0xFC 0x00FC
+0xFD 0x00FD
+0xFE 0x00FE
+0xFF 0x00FF
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-10.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-10.t
new file mode 100644
index 0000000..92f6998
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-10.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-10',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-10',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-10');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-10',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0104
+0xa2 0x0112
+0xa3 0x0122
+0xa4 0x012a
+0xa5 0x0128
+0xa6 0x0136
+0xa7 0x00a7
+0xa8 0x013b
+0xa9 0x0110
+0xaa 0x0160
+0xab 0x0166
+0xac 0x017d
+0xad 0x00ad
+0xae 0x016a
+0xaf 0x014a
+0xb0 0x00b0
+0xb1 0x0105
+0xb2 0x0113
+0xb3 0x0123
+0xb4 0x012b
+0xb5 0x0129
+0xb6 0x0137
+0xb7 0x00b7
+0xb8 0x013c
+0xb9 0x0111
+0xba 0x0161
+0xbb 0x0167
+0xbc 0x017e
+0xbd 0x2015
+0xbe 0x016b
+0xbf 0x014b
+0xc0 0x0100
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x012e
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0118
+0xcb 0x00cb
+0xcc 0x0116
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x00d0
+0xd1 0x0145
+0xd2 0x014c
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x0168
+0xd8 0x00d8
+0xd9 0x0172
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x00de
+0xdf 0x00df
+0xe0 0x0101
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x012f
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x0119
+0xeb 0x00eb
+0xec 0x0117
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x0146
+0xf2 0x014d
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x0169
+0xf8 0x00f8
+0xf9 0x0173
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x0138
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-11.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-11.t
new file mode 100644
index 0000000..e399ab3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-11.t
@@ -0,0 +1,376 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ eval {
+ require Encode;
+
+ if ($Encode::VERSION < "1.78") {
+ print "1..0 # Skip: Encode $Encode::VERSION has a " .
+ "bug, please upgrade!\n";
+ exit 0;
+ }
+ };
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-11',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-11',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-11');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-11',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0xa0 0x00a0
+0xa1 0x0e01
+0xa2 0x0e02
+0xa3 0x0e03
+0xa4 0x0e04
+0xa5 0x0e05
+0xa6 0x0e06
+0xa7 0x0e07
+0xa8 0x0e08
+0xa9 0x0e09
+0xaa 0x0e0a
+0xab 0x0e0b
+0xac 0x0e0c
+0xad 0x0e0d
+0xae 0x0e0e
+0xaf 0x0e0f
+0xb0 0x0e10
+0xb1 0x0e11
+0xb2 0x0e12
+0xb3 0x0e13
+0xb4 0x0e14
+0xb5 0x0e15
+0xb6 0x0e16
+0xb7 0x0e17
+0xb8 0x0e18
+0xb9 0x0e19
+0xba 0x0e1a
+0xbb 0x0e1b
+0xbc 0x0e1c
+0xbd 0x0e1d
+0xbe 0x0e1e
+0xbf 0x0e1f
+0xc0 0x0e20
+0xc1 0x0e21
+0xc2 0x0e22
+0xc3 0x0e23
+0xc4 0x0e24
+0xc5 0x0e25
+0xc6 0x0e26
+0xc7 0x0e27
+0xc8 0x0e28
+0xc9 0x0e29
+0xca 0x0e2a
+0xcb 0x0e2b
+0xcc 0x0e2c
+0xcd 0x0e2d
+0xce 0x0e2e
+0xcf 0x0e2f
+0xd0 0x0e30
+0xd1 0x0e31
+0xd2 0x0e32
+0xd3 0x0e33
+0xd4 0x0e34
+0xd5 0x0e35
+0xd6 0x0e36
+0xd7 0x0e37
+0xd8 0x0e38
+0xd9 0x0e39
+0xda 0x0e3a
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0x0e3f
+0xe0 0x0e40
+0xe1 0x0e41
+0xe2 0x0e42
+0xe3 0x0e43
+0xe4 0x0e44
+0xe5 0x0e45
+0xe6 0x0e46
+0xe7 0x0e47
+0xe8 0x0e48
+0xe9 0x0e49
+0xea 0x0e4a
+0xeb 0x0e4b
+0xec 0x0e4c
+0xed 0x0e4d
+0xee 0x0e4e
+0xef 0x0e4f
+0xf0 0x0e50
+0xf1 0x0e51
+0xf2 0x0e52
+0xf3 0x0e53
+0xf4 0x0e54
+0xf5 0x0e55
+0xf6 0x0e56
+0xf7 0x0e57
+0xf8 0x0e58
+0xf9 0x0e59
+0xfa 0x0e5a
+0xfb 0x0e5b
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-13.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-13.t
new file mode 100644
index 0000000..c9d21c1
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-13.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-13',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-13',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-13');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-13',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x201d
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x201e
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00d8
+0xa9 0x00a9
+0xaa 0x0156
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00c6
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x201c
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00f8
+0xb9 0x00b9
+0xba 0x0157
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00e6
+0xc0 0x0104
+0xc1 0x012e
+0xc2 0x0100
+0xc3 0x0106
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x0118
+0xc7 0x0112
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0179
+0xcb 0x0116
+0xcc 0x0122
+0xcd 0x0136
+0xce 0x012a
+0xcf 0x013b
+0xd0 0x0160
+0xd1 0x0143
+0xd2 0x0145
+0xd3 0x00d3
+0xd4 0x014c
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x0172
+0xd9 0x0141
+0xda 0x015a
+0xdb 0x016a
+0xdc 0x00dc
+0xdd 0x017b
+0xde 0x017d
+0xdf 0x00df
+0xe0 0x0105
+0xe1 0x012f
+0xe2 0x0101
+0xe3 0x0107
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x0119
+0xe7 0x0113
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x017a
+0xeb 0x0117
+0xec 0x0123
+0xed 0x0137
+0xee 0x012b
+0xef 0x013c
+0xf0 0x0161
+0xf1 0x0144
+0xf2 0x0146
+0xf3 0x00f3
+0xf4 0x014d
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x0173
+0xf9 0x0142
+0xfa 0x015b
+0xfb 0x016b
+0xfc 0x00fc
+0xfd 0x017c
+0xfe 0x017e
+0xff 0x2019
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-14.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-14.t
new file mode 100644
index 0000000..1fc3772
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-14.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-14',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-14',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-14');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-14',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x1e02
+0xa2 0x1e03
+0xa3 0x00a3
+0xa4 0x010a
+0xa5 0x010b
+0xa6 0x1e0a
+0xa7 0x00a7
+0xa8 0x1e80
+0xa9 0x00a9
+0xaa 0x1e82
+0xab 0x1e0b
+0xac 0x1ef2
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x0178
+0xb0 0x1e1e
+0xb1 0x1e1f
+0xb2 0x0120
+0xb3 0x0121
+0xb4 0x1e40
+0xb5 0x1e41
+0xb6 0x00b6
+0xb7 0x1e56
+0xb8 0x1e81
+0xb9 0x1e57
+0xba 0x1e83
+0xbb 0x1e60
+0xbc 0x1ef3
+0xbd 0x1e84
+0xbe 0x1e85
+0xbf 0x1e61
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x0174
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x1e6a
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x0176
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x0175
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x1e6b
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x0177
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-15.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-15.t
new file mode 100644
index 0000000..59c1e08
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-15.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-15',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-15',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-15');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-15',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x20ac
+0xa5 0x00a5
+0xa6 0x0160
+0xa7 0x00a7
+0xa8 0x0161
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x017d
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x017e
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x0152
+0xbd 0x0153
+0xbe 0x0178
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x00d0
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x00de
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-16.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-16.t
new file mode 100644
index 0000000..e7b9cec
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-16.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-16',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-16',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-16');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-16',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0104
+0xa2 0x0105
+0xa3 0x0141
+0xa4 0x20ac
+0xa5 0x201e
+0xa6 0x0160
+0xa7 0x00a7
+0xa8 0x0161
+0xa9 0x00a9
+0xaa 0x0218
+0xab 0x00ab
+0xac 0x0179
+0xad 0x00ad
+0xae 0x017a
+0xaf 0x017b
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x010c
+0xb3 0x0142
+0xb4 0x017d
+0xb5 0x201d
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x017e
+0xb9 0x010d
+0xba 0x0219
+0xbb 0x00bb
+0xbc 0x0152
+0xbd 0x0153
+0xbe 0x0178
+0xbf 0x017c
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x0102
+0xc4 0x00c4
+0xc5 0x0106
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x0110
+0xd1 0x0143
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x0150
+0xd6 0x00d6
+0xd7 0x015a
+0xd8 0x0170
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x0118
+0xde 0x021a
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x0103
+0xe4 0x00e4
+0xe5 0x0107
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x0111
+0xf1 0x0144
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x0151
+0xf6 0x00f6
+0xf7 0x015b
+0xf8 0x0171
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x0119
+0xfe 0x021b
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-2.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-2.t
new file mode 100644
index 0000000..876f433
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-2.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-2',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-2',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-2');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-2',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0104
+0xa2 0x02d8
+0xa3 0x0141
+0xa4 0x00a4
+0xa5 0x013d
+0xa6 0x015a
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x0160
+0xaa 0x015e
+0xab 0x0164
+0xac 0x0179
+0xad 0x00ad
+0xae 0x017d
+0xaf 0x017b
+0xb0 0x00b0
+0xb1 0x0105
+0xb2 0x02db
+0xb3 0x0142
+0xb4 0x00b4
+0xb5 0x013e
+0xb6 0x015b
+0xb7 0x02c7
+0xb8 0x00b8
+0xb9 0x0161
+0xba 0x015f
+0xbb 0x0165
+0xbc 0x017a
+0xbd 0x02dd
+0xbe 0x017e
+0xbf 0x017c
+0xc0 0x0154
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x0102
+0xc4 0x00c4
+0xc5 0x0139
+0xc6 0x0106
+0xc7 0x00c7
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0118
+0xcb 0x00cb
+0xcc 0x011a
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x010e
+0xd0 0x0110
+0xd1 0x0143
+0xd2 0x0147
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x0150
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x0158
+0xd9 0x016e
+0xda 0x00da
+0xdb 0x0170
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x0162
+0xdf 0x00df
+0xe0 0x0155
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x0103
+0xe4 0x00e4
+0xe5 0x013a
+0xe6 0x0107
+0xe7 0x00e7
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x0119
+0xeb 0x00eb
+0xec 0x011b
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x010f
+0xf0 0x0111
+0xf1 0x0144
+0xf2 0x0148
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x0151
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x0159
+0xf9 0x016f
+0xfa 0x00fa
+0xfb 0x0171
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x0163
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-3.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-3.t
new file mode 100644
index 0000000..983a4eb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-3.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-3',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-3',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-3');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-3',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0126
+0xa2 0x02d8
+0xa3 0x00a3
+0xa4 0x00a4
+0xa6 0xfffd
+0xa6 0x0124
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x0130
+0xaa 0x015e
+0xab 0x011e
+0xac 0x0134
+0xad 0x00ad
+0xaf 0xfffd
+0xaf 0x017b
+0xb0 0x00b0
+0xb1 0x0127
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x0125
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x0131
+0xba 0x015f
+0xbb 0x011f
+0xbc 0x0135
+0xbd 0x00bd
+0xbf 0xfffd
+0xbf 0x017c
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc4 0xfffd
+0xc4 0x00c4
+0xc5 0x010a
+0xc6 0x0108
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd1 0xfffd
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x0120
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x011c
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x016c
+0xde 0x015c
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe4 0xfffd
+0xe4 0x00e4
+0xe5 0x010b
+0xe6 0x0109
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf1 0xfffd
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x0121
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x011d
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x016d
+0xfe 0x015d
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-4.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-4.t
new file mode 100644
index 0000000..288462c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-4.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-4',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-4',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-4');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-4',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0104
+0xa2 0x0138
+0xa3 0x0156
+0xa4 0x00a4
+0xa5 0x0128
+0xa6 0x013b
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x0160
+0xaa 0x0112
+0xab 0x0122
+0xac 0x0166
+0xad 0x00ad
+0xae 0x017d
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x0105
+0xb2 0x02db
+0xb3 0x0157
+0xb4 0x00b4
+0xb5 0x0129
+0xb6 0x013c
+0xb7 0x02c7
+0xb8 0x00b8
+0xb9 0x0161
+0xba 0x0113
+0xbb 0x0123
+0xbc 0x0167
+0xbd 0x014a
+0xbe 0x017e
+0xbf 0x014b
+0xc0 0x0100
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x012e
+0xc8 0x010c
+0xc9 0x00c9
+0xca 0x0118
+0xcb 0x00cb
+0xcc 0x0116
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x012a
+0xd0 0x0110
+0xd1 0x0145
+0xd2 0x014c
+0xd3 0x0136
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x0172
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x0168
+0xde 0x016a
+0xdf 0x00df
+0xe0 0x0101
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x012f
+0xe8 0x010d
+0xe9 0x00e9
+0xea 0x0119
+0xeb 0x00eb
+0xec 0x0117
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x012b
+0xf0 0x0111
+0xf1 0x0146
+0xf2 0x014d
+0xf3 0x0137
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x0173
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x0169
+0xfe 0x016b
+0xff 0x02d9
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-5.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-5.t
new file mode 100644
index 0000000..e23a6ab
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-5.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-5',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-5',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-5');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-5',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x0401
+0xa2 0x0402
+0xa3 0x0403
+0xa4 0x0404
+0xa5 0x0405
+0xa6 0x0406
+0xa7 0x0407
+0xa8 0x0408
+0xa9 0x0409
+0xaa 0x040a
+0xab 0x040b
+0xac 0x040c
+0xad 0x00ad
+0xae 0x040e
+0xaf 0x040f
+0xb0 0x0410
+0xb1 0x0411
+0xb2 0x0412
+0xb3 0x0413
+0xb4 0x0414
+0xb5 0x0415
+0xb6 0x0416
+0xb7 0x0417
+0xb8 0x0418
+0xb9 0x0419
+0xba 0x041a
+0xbb 0x041b
+0xbc 0x041c
+0xbd 0x041d
+0xbe 0x041e
+0xbf 0x041f
+0xc0 0x0420
+0xc1 0x0421
+0xc2 0x0422
+0xc3 0x0423
+0xc4 0x0424
+0xc5 0x0425
+0xc6 0x0426
+0xc7 0x0427
+0xc8 0x0428
+0xc9 0x0429
+0xca 0x042a
+0xcb 0x042b
+0xcc 0x042c
+0xcd 0x042d
+0xce 0x042e
+0xcf 0x042f
+0xd0 0x0430
+0xd1 0x0431
+0xd2 0x0432
+0xd3 0x0433
+0xd4 0x0434
+0xd5 0x0435
+0xd6 0x0436
+0xd7 0x0437
+0xd8 0x0438
+0xd9 0x0439
+0xda 0x043a
+0xdb 0x043b
+0xdc 0x043c
+0xdd 0x043d
+0xde 0x043e
+0xdf 0x043f
+0xe0 0x0440
+0xe1 0x0441
+0xe2 0x0442
+0xe3 0x0443
+0xe4 0x0444
+0xe5 0x0445
+0xe6 0x0446
+0xe7 0x0447
+0xe8 0x0448
+0xe9 0x0449
+0xea 0x044a
+0xeb 0x044b
+0xec 0x044c
+0xed 0x044d
+0xee 0x044e
+0xef 0x044f
+0xf0 0x2116
+0xf1 0x0451
+0xf2 0x0452
+0xf3 0x0453
+0xf4 0x0454
+0xf5 0x0455
+0xf6 0x0456
+0xf7 0x0457
+0xf8 0x0458
+0xf9 0x0459
+0xfa 0x045a
+0xfb 0x045b
+0xfc 0x045c
+0xfd 0x00a7
+0xfe 0x045e
+0xff 0x045f
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-6.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-6.t
new file mode 100644
index 0000000..309a9c0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-6.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-6',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-6',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-6');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-6',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa4 0xfffd
+0xa4 0xfffd
+0xa4 0xfffd
+0xa4 0x00a4
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0x060c
+0xad 0x00ad
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0xfffd
+0xbb 0x061b
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0x061f
+0xc1 0xfffd
+0xc1 0x0621
+0xc2 0x0622
+0xc3 0x0623
+0xc4 0x0624
+0xc5 0x0625
+0xc6 0x0626
+0xc7 0x0627
+0xc8 0x0628
+0xc9 0x0629
+0xca 0x062a
+0xcb 0x062b
+0xcc 0x062c
+0xcd 0x062d
+0xce 0x062e
+0xcf 0x062f
+0xd0 0x0630
+0xd1 0x0631
+0xd2 0x0632
+0xd3 0x0633
+0xd4 0x0634
+0xd5 0x0635
+0xd6 0x0636
+0xd7 0x0637
+0xd8 0x0638
+0xd9 0x0639
+0xda 0x063a
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x0640
+0xe1 0x0641
+0xe2 0x0642
+0xe3 0x0643
+0xe4 0x0644
+0xe5 0x0645
+0xe6 0x0646
+0xe7 0x0647
+0xe8 0x0648
+0xe9 0x0649
+0xea 0x064a
+0xeb 0x064b
+0xec 0x064c
+0xed 0x064d
+0xee 0x064e
+0xef 0x064f
+0xf0 0x0650
+0xf1 0x0651
+0xf2 0x0652
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-7.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-7.t
new file mode 100644
index 0000000..7315ce6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-7.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-7',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-7',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-7');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-7',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x2018
+0xa2 0x2019
+0xa3 0x00a3
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xab 0xfffd
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xaf 0xfffd
+0xaf 0x2015
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x0384
+0xb5 0x0385
+0xb6 0x0386
+0xb7 0x00b7
+0xb8 0x0388
+0xb9 0x0389
+0xba 0x038a
+0xbb 0x00bb
+0xbc 0x038c
+0xbd 0x00bd
+0xbe 0x038e
+0xbf 0x038f
+0xc0 0x0390
+0xc1 0x0391
+0xc2 0x0392
+0xc3 0x0393
+0xc4 0x0394
+0xc5 0x0395
+0xc6 0x0396
+0xc7 0x0397
+0xc8 0x0398
+0xc9 0x0399
+0xca 0x039a
+0xcb 0x039b
+0xcc 0x039c
+0xcd 0x039d
+0xce 0x039e
+0xcf 0x039f
+0xd0 0x03a0
+0xd1 0x03a1
+0xd3 0xfffd
+0xd3 0x03a3
+0xd4 0x03a4
+0xd5 0x03a5
+0xd6 0x03a6
+0xd7 0x03a7
+0xd8 0x03a8
+0xd9 0x03a9
+0xda 0x03aa
+0xdb 0x03ab
+0xdc 0x03ac
+0xdd 0x03ad
+0xde 0x03ae
+0xdf 0x03af
+0xe0 0x03b0
+0xe1 0x03b1
+0xe2 0x03b2
+0xe3 0x03b3
+0xe4 0x03b4
+0xe5 0x03b5
+0xe6 0x03b6
+0xe7 0x03b7
+0xe8 0x03b8
+0xe9 0x03b9
+0xea 0x03ba
+0xeb 0x03bb
+0xec 0x03bc
+0xed 0x03bd
+0xee 0x03be
+0xef 0x03bf
+0xf0 0x03c0
+0xf1 0x03c1
+0xf2 0x03c2
+0xf3 0x03c3
+0xf4 0x03c4
+0xf5 0x03c5
+0xf6 0x03c6
+0xf7 0x03c7
+0xf8 0x03c8
+0xf9 0x03c9
+0xfa 0x03ca
+0xfb 0x03cb
+0xfc 0x03cc
+0xfd 0x03cd
+0xfe 0x03ce
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-8.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-8.t
new file mode 100644
index 0000000..bf8c1bd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-8.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-8',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-8',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-8');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-8',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa2 0xfffd
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00d7
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00f7
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0xfffd
+0xdf 0x2017
+0xe0 0x05d0
+0xe1 0x05d1
+0xe2 0x05d2
+0xe3 0x05d3
+0xe4 0x05d4
+0xe5 0x05d5
+0xe6 0x05d6
+0xe7 0x05d7
+0xe8 0x05d8
+0xe9 0x05d9
+0xea 0x05da
+0xeb 0x05db
+0xec 0x05dc
+0xed 0x05dd
+0xee 0x05de
+0xef 0x05df
+0xf0 0x05e0
+0xf1 0x05e1
+0xf2 0x05e2
+0xf3 0x05e3
+0xf4 0x05e4
+0xf5 0x05e5
+0xf6 0x05e6
+0xf7 0x05e7
+0xf8 0x05e8
+0xf9 0x05e9
+0xfa 0x05ea
+0xfd 0xfffd
+0xfd 0xfffd
+0xfd 0x200e
+0xfe 0x200f
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso-8859-9.t b/tp/maintain/lib/libintl-perl/tests/02iso-8859-9.t
new file mode 100644
index 0000000..eec7d6b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso-8859-9.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO-8859-9',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO-8859-9',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-9');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-9',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xa0 0x00a0
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x00a5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x00aa
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x00af
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x00b3
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x00b8
+0xb9 0x00b9
+0xba 0x00ba
+0xbb 0x00bb
+0xbc 0x00bc
+0xbd 0x00bd
+0xbe 0x00be
+0xbf 0x00bf
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x011e
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x0130
+0xde 0x015e
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x011f
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x0131
+0xfe 0x015f
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso_10367-box.t b/tp/maintain/lib/libintl-perl/tests/02iso_10367-box.t
new file mode 100644
index 0000000..f6db91b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso_10367-box.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO_10367-BOX',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO_10367-BOX',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_10367-BOX');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_10367-BOX',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0080
+0x81 0x0081
+0x82 0x0082
+0x83 0x0083
+0x84 0x0084
+0x85 0x0085
+0x86 0x0086
+0x87 0x0087
+0x88 0x0088
+0x89 0x0089
+0x8a 0x008a
+0x8b 0x008b
+0x8c 0x008c
+0x8d 0x008d
+0x8e 0x008e
+0x8f 0x008f
+0x90 0x0090
+0x91 0x0091
+0x92 0x0092
+0x93 0x0093
+0x94 0x0094
+0x95 0x0095
+0x96 0x0096
+0x97 0x0097
+0x98 0x0098
+0x99 0x0099
+0x9a 0x009a
+0x9b 0x009b
+0x9c 0x009c
+0x9d 0x009d
+0x9e 0x009e
+0x9f 0x009f
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x2551
+0xc1 0x2550
+0xc2 0x2554
+0xc3 0x2557
+0xc4 0x255a
+0xc5 0x255d
+0xc6 0x2560
+0xc7 0x2563
+0xc8 0x2566
+0xc9 0x2569
+0xca 0x256c
+0xcb 0xe019
+0xcc 0x2584
+0xcd 0x2588
+0xce 0x25aa
+0xd0 0xfffd
+0xd0 0x2502
+0xd1 0x2500
+0xd2 0x250c
+0xd3 0x2510
+0xd4 0x2514
+0xd5 0x2518
+0xd6 0x251c
+0xd7 0x2524
+0xd8 0x252c
+0xd9 0x2534
+0xda 0x253c
+0xdb 0x2591
+0xdc 0x2592
+0xdd 0x2593
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso_2033-1983.t b/tp/maintain/lib/libintl-perl/tests/02iso_2033-1983.t
new file mode 100644
index 0000000..019b1a4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso_2033-1983.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO_2033-1983',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO_2033-1983',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_2033-1983');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_2033-1983',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x2446
+0x3b 0x2447
+0x3c 0x2448
+0x3d 0x2449
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso_5427-ext.t b/tp/maintain/lib/libintl-perl/tests/02iso_5427-ext.t
new file mode 100644
index 0000000..5580683
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso_5427-ext.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO_5427-EXT',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO_5427-EXT',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5427-EXT');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5427-EXT',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0xfffd
+0x40 0x0491
+0x41 0x0452
+0x42 0x0453
+0x43 0x0454
+0x44 0x0451
+0x45 0x0455
+0x46 0x0456
+0x47 0x0457
+0x48 0x0458
+0x49 0x0459
+0x4a 0x045a
+0x4b 0x045b
+0x4c 0x045c
+0x4d 0x045e
+0x4e 0x045f
+0x50 0xfffd
+0x50 0x0463
+0x51 0x0473
+0x52 0x0475
+0x53 0x046b
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0xfffd
+0x5b 0x005b
+0x5d 0xfffd
+0x5d 0x005d
+0x5f 0xfffd
+0x5f 0x005f
+0x60 0x0490
+0x61 0x0402
+0x62 0x0403
+0x63 0x0404
+0x64 0x0401
+0x65 0x0405
+0x66 0x0406
+0x67 0x0407
+0x68 0x0408
+0x69 0x0409
+0x6a 0x040a
+0x6b 0x040b
+0x6c 0x040c
+0x6d 0x040e
+0x6e 0x040f
+0x6f 0x042a
+0x70 0x0462
+0x71 0x0472
+0x72 0x0474
+0x73 0x046a
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0xfffd
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso_5427.t b/tp/maintain/lib/libintl-perl/tests/02iso_5427.t
new file mode 100644
index 0000000..723f276
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso_5427.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO_5427',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO_5427',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5427');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5427',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x044e
+0x41 0x0430
+0x42 0x0431
+0x43 0x0446
+0x44 0x0434
+0x45 0x0435
+0x46 0x0444
+0x47 0x0433
+0x48 0x0445
+0x49 0x0438
+0x4a 0x0439
+0x4b 0x043a
+0x4c 0x043b
+0x4d 0x043c
+0x4e 0x043d
+0x4f 0x043e
+0x50 0x043f
+0x51 0x044f
+0x52 0x0440
+0x53 0x0441
+0x54 0x0442
+0x55 0x0443
+0x56 0x0436
+0x57 0x0432
+0x58 0x044c
+0x59 0x044b
+0x5a 0x0437
+0x5b 0x0448
+0x5c 0x044d
+0x5d 0x0449
+0x5e 0x0447
+0x5f 0x044a
+0x60 0x042e
+0x61 0x0410
+0x62 0x0411
+0x63 0x0426
+0x64 0x0414
+0x65 0x0415
+0x66 0x0424
+0x67 0x0413
+0x68 0x0425
+0x69 0x0418
+0x6a 0x0419
+0x6b 0x041a
+0x6c 0x041b
+0x6d 0x041c
+0x6e 0x041d
+0x6f 0x041e
+0x70 0x041f
+0x71 0x042f
+0x72 0x0420
+0x73 0x0421
+0x74 0x0422
+0x75 0x0423
+0x76 0x0416
+0x77 0x0412
+0x78 0x042c
+0x79 0x042b
+0x7a 0x0417
+0x7b 0x0428
+0x7c 0x042d
+0x7d 0x0429
+0x7e 0x0427
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02iso_5428.t b/tp/maintain/lib/libintl-perl/tests/02iso_5428.t
new file mode 100644
index 0000000..de17041
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02iso_5428.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ISO_5428',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ISO_5428',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5428');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO_5428',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0xe002
+0x22 0xe003
+0x23 0xe009
+0x24 0xe005
+0x25 0xe012
+0x26 0xe013
+0x27 0xe014
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0xfffd
+0x30 0x00ab
+0x31 0x00bb
+0x32 0x201d
+0x33 0x201c
+0x34 0x0374
+0x35 0x0375
+0x3b 0xfffd
+0x3b 0xfffd
+0x3b 0xfffd
+0x3b 0xfffd
+0x3b 0xfffd
+0x3b 0x00b7
+0x3f 0xfffd
+0x3f 0xfffd
+0x3f 0xfffd
+0x3f 0x003b
+0x41 0xfffd
+0x41 0x0391
+0x42 0x0392
+0x44 0xfffd
+0x44 0x0393
+0x45 0x0394
+0x46 0x0395
+0x47 0x03da
+0x48 0x03dc
+0x49 0x0396
+0x4a 0x0397
+0x4b 0x0398
+0x4c 0x0399
+0x4d 0x039a
+0x4e 0x039b
+0x4f 0x039c
+0x50 0x039d
+0x51 0x039e
+0x52 0x039f
+0x53 0x03a0
+0x54 0x03de
+0x55 0x03a1
+0x56 0x03a3
+0x58 0xfffd
+0x58 0x03a4
+0x59 0x03a5
+0x5a 0x03a6
+0x5b 0x03a7
+0x5c 0x03a8
+0x5d 0x03a9
+0x5e 0x03e0
+0x61 0xfffd
+0x61 0xfffd
+0x61 0x03b1
+0x62 0x03b2
+0x63 0x03d0
+0x64 0x03b3
+0x65 0x03b4
+0x66 0x03b5
+0x67 0xe01a
+0x68 0xe01b
+0x69 0x03b6
+0x6a 0x03b7
+0x6b 0x03b8
+0x6c 0x03b9
+0x6d 0x03ba
+0x6e 0x03bb
+0x6f 0x03bc
+0x70 0x03bd
+0x71 0x03be
+0x72 0x03bf
+0x73 0x03c0
+0x74 0xe01c
+0x75 0x03c1
+0x76 0x03c3
+0x77 0x03c2
+0x78 0x03c4
+0x79 0x03c5
+0x7a 0x03c6
+0x7b 0x03c7
+0x7c 0x03c8
+0x7d 0x03c9
+0x7e 0xe01d
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02koi-8.t b/tp/maintain/lib/libintl-perl/tests/02koi-8.t
new file mode 100644
index 0000000..46590f2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02koi-8.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'KOI-8',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'KOI-8',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI-8');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI-8',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0xfffd
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02koi8-r.t b/tp/maintain/lib/libintl-perl/tests/02koi8-r.t
new file mode 100644
index 0000000..a868677
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02koi8-r.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'KOI8-R',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'KOI8-R',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-R');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-R',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x2500
+0x81 0x2502
+0x82 0x250c
+0x83 0x2510
+0x84 0x2514
+0x85 0x2518
+0x86 0x251c
+0x87 0x2524
+0x88 0x252c
+0x89 0x2534
+0x8a 0x253c
+0x8b 0x2580
+0x8c 0x2584
+0x8d 0x2588
+0x8e 0x258c
+0x8f 0x2590
+0x90 0x2591
+0x91 0x2592
+0x92 0x2593
+0x93 0x2320
+0x94 0x25a0
+0x95 0x2219
+0x96 0x221a
+0x97 0x2248
+0x98 0x2264
+0x99 0x2265
+0x9a 0x00a0
+0x9b 0x2321
+0x9c 0x00b0
+0x9d 0x00b2
+0x9e 0x00b7
+0x9f 0x00f7
+0xa0 0x2550
+0xa1 0x2551
+0xa2 0x2552
+0xa3 0x0451
+0xa4 0x2553
+0xa5 0x2554
+0xa6 0x2555
+0xa7 0x2556
+0xa8 0x2557
+0xa9 0x2558
+0xaa 0x2559
+0xab 0x255a
+0xac 0x255b
+0xad 0x255c
+0xae 0x255d
+0xaf 0x255e
+0xb0 0x255f
+0xb1 0x2560
+0xb2 0x2561
+0xb3 0x0401
+0xb4 0x2562
+0xb5 0x2563
+0xb6 0x2564
+0xb7 0x2565
+0xb8 0x2566
+0xb9 0x2567
+0xba 0x2568
+0xbb 0x2569
+0xbc 0x256a
+0xbd 0x256b
+0xbe 0x256c
+0xbf 0x00a9
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x042a
diff --git a/tp/maintain/lib/libintl-perl/tests/02koi8-ru.t b/tp/maintain/lib/libintl-perl/tests/02koi8-ru.t
new file mode 100644
index 0000000..aebcb4a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02koi8-ru.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'KOI8-RU',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'KOI8-RU',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-RU');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-RU',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x2500
+0x81 0x2502
+0x82 0x250c
+0x83 0x2510
+0x84 0x2514
+0x85 0x2518
+0x86 0x251c
+0x87 0x2524
+0x88 0x252c
+0x89 0x2534
+0x8a 0x253c
+0x8b 0x2580
+0x8c 0x2584
+0x8d 0x2588
+0x8e 0x258c
+0x8f 0x2590
+0x90 0x2591
+0x91 0x2592
+0x92 0x2593
+0x93 0x2320
+0x94 0x25a0
+0x95 0x2219
+0x96 0x221a
+0x97 0x2248
+0x98 0x2264
+0x99 0x2265
+0x9a 0x00a0
+0x9b 0x2321
+0x9c 0x00b0
+0x9d 0x00b2
+0x9e 0x00b7
+0x9f 0x00f7
+0xa0 0x2550
+0xa1 0x2551
+0xa2 0x2552
+0xa3 0x0451
+0xa4 0x0454
+0xa5 0x2554
+0xa6 0x0456
+0xa7 0x0457
+0xa8 0x2557
+0xa9 0x2558
+0xaa 0x2559
+0xab 0x255a
+0xac 0x255b
+0xad 0x0491
+0xae 0x045e
+0xaf 0x255e
+0xb0 0x255f
+0xb1 0x2560
+0xb2 0x2561
+0xb3 0x0401
+0xb4 0x0404
+0xb5 0x2563
+0xb6 0x0406
+0xb7 0x0407
+0xb8 0x2566
+0xb9 0x2567
+0xba 0x2568
+0xbb 0x2569
+0xbc 0x256a
+0xbd 0x0490
+0xbe 0x040e
+0xbf 0x00a9
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x042a
diff --git a/tp/maintain/lib/libintl-perl/tests/02koi8-t.t b/tp/maintain/lib/libintl-perl/tests/02koi8-t.t
new file mode 100644
index 0000000..549aea4
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02koi8-t.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'KOI8-T',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'KOI8-T',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-T');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-T',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x049b
+0x81 0x0493
+0x82 0x201a
+0x83 0x0492
+0x84 0x201e
+0x85 0x2026
+0x86 0x2020
+0x87 0x2021
+0x89 0xfffd
+0x89 0x2030
+0x8a 0x04b3
+0x8b 0x2039
+0x8c 0x04b2
+0x8d 0x04b7
+0x8e 0x04b6
+0x90 0xfffd
+0x90 0x049a
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x99 0xfffd
+0x99 0x2122
+0x9b 0xfffd
+0x9b 0x203a
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0xfffd
+0xa1 0x04ef
+0xa2 0x04ee
+0xa3 0x0451
+0xa4 0x00a4
+0xa5 0x04e3
+0xa6 0x00a6
+0xa7 0x00a7
+0xab 0xfffd
+0xab 0xfffd
+0xab 0xfffd
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xb0 0xfffd
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x00b2
+0xb3 0x0401
+0xb5 0xfffd
+0xb5 0x04e2
+0xb6 0x00b6
+0xb7 0x00b7
+0xb9 0xfffd
+0xb9 0x2116
+0xbb 0xfffd
+0xbb 0x00bb
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0x00a9
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x042a
diff --git a/tp/maintain/lib/libintl-perl/tests/02koi8-u.t b/tp/maintain/lib/libintl-perl/tests/02koi8-u.t
new file mode 100644
index 0000000..a37c59f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02koi8-u.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'KOI8-U',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'KOI8-U',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-U');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'KOI8-U',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x2500
+0x81 0x2502
+0x82 0x250c
+0x83 0x2510
+0x84 0x2514
+0x85 0x2518
+0x86 0x251c
+0x87 0x2524
+0x88 0x252c
+0x89 0x2534
+0x8a 0x253c
+0x8b 0x2580
+0x8c 0x2584
+0x8d 0x2588
+0x8e 0x258c
+0x8f 0x2590
+0x90 0x2591
+0x91 0x2592
+0x92 0x2593
+0x93 0x2320
+0x94 0x25a0
+0x95 0x2219
+0x96 0x221a
+0x97 0x2248
+0x98 0x2264
+0x99 0x2265
+0x9a 0x00a0
+0x9b 0x2321
+0x9c 0x00b0
+0x9d 0x00b2
+0x9e 0x00b7
+0x9f 0x00f7
+0xa0 0x2550
+0xa1 0x2551
+0xa2 0x2552
+0xa3 0x0451
+0xa4 0x0454
+0xa5 0x2554
+0xa6 0x0456
+0xa7 0x0457
+0xa8 0x2557
+0xa9 0x2558
+0xaa 0x2559
+0xab 0x255a
+0xac 0x255b
+0xad 0x0491
+0xae 0x255d
+0xaf 0x255e
+0xb0 0x255f
+0xb1 0x2560
+0xb2 0x2561
+0xb3 0x0401
+0xb4 0x0404
+0xb5 0x2563
+0xb6 0x0406
+0xb7 0x0407
+0xb8 0x2566
+0xb9 0x2567
+0xba 0x2568
+0xbb 0x2569
+0xbc 0x256a
+0xbd 0x0490
+0xbe 0x256c
+0xbf 0x00a9
+0xc0 0x044e
+0xc1 0x0430
+0xc2 0x0431
+0xc3 0x0446
+0xc4 0x0434
+0xc5 0x0435
+0xc6 0x0444
+0xc7 0x0433
+0xc8 0x0445
+0xc9 0x0438
+0xca 0x0439
+0xcb 0x043a
+0xcc 0x043b
+0xcd 0x043c
+0xce 0x043d
+0xcf 0x043e
+0xd0 0x043f
+0xd1 0x044f
+0xd2 0x0440
+0xd3 0x0441
+0xd4 0x0442
+0xd5 0x0443
+0xd6 0x0436
+0xd7 0x0432
+0xd8 0x044c
+0xd9 0x044b
+0xda 0x0437
+0xdb 0x0448
+0xdc 0x044d
+0xdd 0x0449
+0xde 0x0447
+0xdf 0x044a
+0xe0 0x042e
+0xe1 0x0410
+0xe2 0x0411
+0xe3 0x0426
+0xe4 0x0414
+0xe5 0x0415
+0xe6 0x0424
+0xe7 0x0413
+0xe8 0x0425
+0xe9 0x0418
+0xea 0x0419
+0xeb 0x041a
+0xec 0x041b
+0xed 0x041c
+0xee 0x041d
+0xef 0x041e
+0xf0 0x041f
+0xf1 0x042f
+0xf2 0x0420
+0xf3 0x0421
+0xf4 0x0422
+0xf5 0x0423
+0xf6 0x0416
+0xf7 0x0412
+0xf8 0x042c
+0xf9 0x042b
+0xfa 0x0417
+0xfb 0x0428
+0xfc 0x042d
+0xfd 0x0429
+0xfe 0x0427
+0xff 0x042a
diff --git a/tp/maintain/lib/libintl-perl/tests/02latin-greek-1.t b/tp/maintain/lib/libintl-perl/tests/02latin-greek-1.t
new file mode 100644
index 0000000..5f4c711
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02latin-greek-1.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'LATIN-GREEK-1',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'LATIN-GREEK-1',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'LATIN-GREEK-1');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'LATIN-GREEK-1',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x039e
+0x22 0x0022
+0x23 0x0393
+0x24 0x00a4
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x03a8
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x03a0
+0x40 0x0394
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x03a9
+0x5c 0x0398
+0x5d 0x03a6
+0x5e 0x039b
+0x5f 0x03a3
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x203e
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02latin-greek.t b/tp/maintain/lib/libintl-perl/tests/02latin-greek.t
new file mode 100644
index 0000000..8e5ecbd
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02latin-greek.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'LATIN-GREEK',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'LATIN-GREEK',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'LATIN-GREEK');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'LATIN-GREEK',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x00a3
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0391
+0x62 0x0392
+0x63 0x03a8
+0x64 0x0394
+0x65 0x0395
+0x66 0x03a6
+0x67 0x0393
+0x68 0x0397
+0x69 0x0399
+0x6a 0x039e
+0x6b 0x039a
+0x6c 0x039b
+0x6d 0x039c
+0x6e 0x039d
+0x6f 0x039f
+0x70 0x03a0
+0x72 0xfffd
+0x72 0x03a1
+0x73 0x03a3
+0x74 0x03a4
+0x75 0x0398
+0x76 0x03a9
+0x77 0x00b7
+0x78 0x03a7
+0x79 0x03a5
+0x7a 0x0396
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x00a8
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02mac-is.t b/tp/maintain/lib/libintl-perl/tests/02mac-is.t
new file mode 100644
index 0000000..acf53f6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02mac-is.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MAC-IS',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MAC-IS',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-IS');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-IS',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x00c6
+0xaf 0x00d8
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x03c0
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x03a9
+0xbe 0x00e6
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x0394
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2014
+0xd1 0x2013
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25c6
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x2044
+0xdb 0x00a4
+0xdc 0x0110
+0xdd 0x0111
+0xde 0x00de
+0xdf 0x00fe
+0xe0 0x2021
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf0 0xe01e
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf8 0xfffd
+0xf8 0xfffd
+0xf8 0x00af
+0xf9 0x02d8
+0xfa 0x02d9
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x02dd
+0xfe 0x02db
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02mac-sami.t b/tp/maintain/lib/libintl-perl/tests/02mac-sami.t
new file mode 100644
index 0000000..2c6c9d6
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02mac-sami.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MAC-SAMI',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MAC-SAMI',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-SAMI');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-SAMI',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x00dd
+0xa1 0x00b0
+0xa2 0x010c
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x00c6
+0xaf 0x00d8
+0xb0 0x0110
+0xb1 0x014a
+0xb2 0x821e
+0xb3 0x821f
+0xb4 0x0160
+0xb5 0x0166
+0xb6 0x2202
+0xb7 0x017d
+0xb8 0x010d
+0xb9 0x0111
+0xba 0x014b
+0xbb 0x0161
+0xbc 0x0167
+0xbd 0x017e
+0xbe 0x00e6
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x2044
+0xdb 0x00a4
+0xdc 0x00d0
+0xdd 0x00f0
+0xde 0x00de
+0xdf 0x00fe
+0xe0 0x00fd
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf0 0xf8ff
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf6 0x01b7
+0xf7 0x0292
+0xf8 0x01ee
+0xf9 0x01ef
+0xfa 0x01e4
+0xfb 0x01e5
+0xfc 0x01e6
+0xfd 0x01e7
+0xfe 0x01e8
+0xff 0x01e9
diff --git a/tp/maintain/lib/libintl-perl/tests/02mac-uk.t b/tp/maintain/lib/libintl-perl/tests/02mac-uk.t
new file mode 100644
index 0000000..e17b100
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02mac-uk.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MAC-UK',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MAC-UK',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-UK');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MAC-UK',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0410
+0x81 0x0411
+0x82 0x0412
+0x83 0x0413
+0x84 0x0414
+0x85 0x0415
+0x86 0x0416
+0x87 0x0417
+0x88 0x0418
+0x89 0x0419
+0x8a 0x041a
+0x8b 0x041b
+0x8c 0x041c
+0x8d 0x041d
+0x8e 0x041e
+0x8f 0x041f
+0x90 0x0420
+0x91 0x0421
+0x92 0x0422
+0x93 0x0423
+0x94 0x0424
+0x95 0x0425
+0x96 0x0426
+0x97 0x0427
+0x98 0x0428
+0x99 0x0429
+0x9a 0x042a
+0x9b 0x042b
+0x9c 0x042c
+0x9d 0x042d
+0x9e 0x042e
+0x9f 0x042f
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x0490
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x0406
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x0402
+0xac 0x0452
+0xad 0x2260
+0xae 0x0403
+0xaf 0x0453
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x0456
+0xb5 0x00b5
+0xb6 0x0491
+0xb7 0x0408
+0xb8 0x0404
+0xb9 0x0454
+0xba 0x0407
+0xbb 0x0457
+0xbc 0x0409
+0xbd 0x0459
+0xbe 0x040a
+0xbf 0x045a
+0xc0 0x0458
+0xc1 0x0405
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x040b
+0xcc 0x045b
+0xcd 0x040c
+0xce 0x045c
+0xcf 0x0455
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x201e
+0xd8 0x040e
+0xd9 0x045e
+0xda 0x040f
+0xdb 0x045f
+0xdc 0x2116
+0xdd 0x0401
+0xde 0x0451
+0xdf 0x044f
+0xe0 0x0430
+0xe1 0x0431
+0xe2 0x0432
+0xe3 0x0433
+0xe4 0x0434
+0xe5 0x0435
+0xe6 0x0436
+0xe7 0x0437
+0xe8 0x0438
+0xe9 0x0439
+0xea 0x043a
+0xeb 0x043b
+0xec 0x043c
+0xed 0x043d
+0xee 0x043e
+0xef 0x043f
+0xf0 0x0440
+0xf1 0x0441
+0xf2 0x0442
+0xf3 0x0443
+0xf4 0x0444
+0xf5 0x0445
+0xf6 0x0446
+0xf7 0x0447
+0xf8 0x0448
+0xf9 0x0449
+0xfa 0x044a
+0xfb 0x044b
+0xfc 0x044c
+0xfd 0x044d
+0xfe 0x044e
+0xff 0x00a4
diff --git a/tp/maintain/lib/libintl-perl/tests/02macarabic.t b/tp/maintain/lib/libintl-perl/tests/02macarabic.t
new file mode 100644
index 0000000..0636d94
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macarabic.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACARABIC',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACARABIC',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACARABIC');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACARABIC',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00a0
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x06ba
+0x8c 0x00ab
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x2026
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00bb
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f7
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa5 0xfffd
+0xa5 0xfffd
+0xa5 0xfffd
+0xa5 0xfffd
+0xa5 0xfffd
+0xa5 0x066a
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0xfffd
+0xac 0x060c
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0xfffd
+0xb0 0x0660
+0xb1 0x0661
+0xb2 0x0662
+0xb3 0x0663
+0xb4 0x0664
+0xb5 0x0665
+0xb6 0x0666
+0xb7 0x0667
+0xb8 0x0668
+0xb9 0x0669
+0xbb 0xfffd
+0xbb 0x061b
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0xfffd
+0xbf 0x061f
+0xc0 0x066d
+0xc1 0x0621
+0xc2 0x0622
+0xc3 0x0623
+0xc4 0x0624
+0xc5 0x0625
+0xc6 0x0626
+0xc7 0x0627
+0xc8 0x0628
+0xc9 0x0629
+0xca 0x062a
+0xcb 0x062b
+0xcc 0x062c
+0xcd 0x062d
+0xce 0x062e
+0xcf 0x062f
+0xd0 0x0630
+0xd1 0x0631
+0xd2 0x0632
+0xd3 0x0633
+0xd4 0x0634
+0xd5 0x0635
+0xd6 0x0636
+0xd7 0x0637
+0xd8 0x0638
+0xd9 0x0639
+0xda 0x063a
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0xfffd
+0xe0 0x0640
+0xe1 0x0641
+0xe2 0x0642
+0xe3 0x0643
+0xe4 0x0644
+0xe5 0x0645
+0xe6 0x0646
+0xe7 0x0647
+0xe8 0x0648
+0xe9 0x0649
+0xea 0x064a
+0xeb 0x064b
+0xec 0x064c
+0xed 0x064d
+0xee 0x064e
+0xef 0x064f
+0xf0 0x0650
+0xf1 0x0651
+0xf2 0x0652
+0xf3 0x067e
+0xf4 0x0679
+0xf5 0x0686
+0xf6 0x06d5
+0xf7 0x06a4
+0xf8 0x06af
+0xf9 0x0688
+0xfa 0x0691
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0xfffd
+0xfe 0x0698
+0xff 0x06d2
diff --git a/tp/maintain/lib/libintl-perl/tests/02maccroatian.t b/tp/maintain/lib/libintl-perl/tests/02maccroatian.t
new file mode 100644
index 0000000..e6e1600
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02maccroatian.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACCROATIAN',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACCROATIAN',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACCROATIAN');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACCROATIAN',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x0160
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x017d
+0xaf 0x00d8
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x2206
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x0161
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x2126
+0xbe 0x017e
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x0106
+0xc7 0x00ab
+0xc8 0x010c
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x0110
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd9 0xfffd
+0xd9 0x00a9
+0xda 0x2044
+0xdb 0x00a4
+0xdc 0x2039
+0xdd 0x203a
+0xde 0x00c6
+0xdf 0x00bb
+0xe0 0x2013
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x0107
+0xe7 0x00c1
+0xe8 0x010d
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf0 0x0111
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf6 0x02c6
+0xf7 0x02dc
+0xf8 0x00af
+0xf9 0x03c0
+0xfa 0x00cb
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x00ca
+0xfe 0x00e6
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02maccyrillic.t b/tp/maintain/lib/libintl-perl/tests/02maccyrillic.t
new file mode 100644
index 0000000..c90a386
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02maccyrillic.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACCYRILLIC',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACCYRILLIC',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACCYRILLIC');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACCYRILLIC',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0410
+0x81 0x0411
+0x82 0x0412
+0x83 0x0413
+0x84 0x0414
+0x85 0x0415
+0x86 0x0416
+0x87 0x0417
+0x88 0x0418
+0x89 0x0419
+0x8a 0x041a
+0x8b 0x041b
+0x8c 0x041c
+0x8d 0x041d
+0x8e 0x041e
+0x8f 0x041f
+0x90 0x0420
+0x91 0x0421
+0x92 0x0422
+0x93 0x0423
+0x94 0x0424
+0x95 0x0425
+0x96 0x0426
+0x97 0x0427
+0x98 0x0428
+0x99 0x0429
+0x9a 0x042a
+0x9b 0x042b
+0x9c 0x042c
+0x9d 0x042d
+0x9e 0x042e
+0x9f 0x042f
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x0406
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x0402
+0xac 0x0452
+0xad 0x2260
+0xae 0x0403
+0xaf 0x0453
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x0456
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x0408
+0xb8 0x0404
+0xb9 0x0454
+0xba 0x0407
+0xbb 0x0457
+0xbc 0x0409
+0xbd 0x0459
+0xbe 0x040a
+0xbf 0x045a
+0xc0 0x0458
+0xc1 0x0405
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x040b
+0xcc 0x045b
+0xcd 0x040c
+0xce 0x045c
+0xcf 0x0455
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x201e
+0xd8 0x040e
+0xd9 0x045e
+0xda 0x040f
+0xdb 0x045f
+0xdc 0x2116
+0xdd 0x0401
+0xde 0x0451
+0xdf 0x044f
+0xe0 0x0430
+0xe1 0x0431
+0xe2 0x0432
+0xe3 0x0433
+0xe4 0x0434
+0xe5 0x0435
+0xe6 0x0436
+0xe7 0x0437
+0xe8 0x0438
+0xe9 0x0439
+0xea 0x043a
+0xeb 0x043b
+0xec 0x043c
+0xed 0x043d
+0xee 0x043e
+0xef 0x043f
+0xf0 0x0440
+0xf1 0x0441
+0xf2 0x0442
+0xf3 0x0443
+0xf4 0x0444
+0xf5 0x0445
+0xf6 0x0446
+0xf7 0x0447
+0xf8 0x0448
+0xf9 0x0449
+0xfa 0x044a
+0xfb 0x044b
+0xfc 0x044c
+0xfd 0x044d
+0xfe 0x044e
+0xff 0x00a4
diff --git a/tp/maintain/lib/libintl-perl/tests/02macgreek.t b/tp/maintain/lib/libintl-perl/tests/02macgreek.t
new file mode 100644
index 0000000..52db6cb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macgreek.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACGREEK',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACGREEK',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACGREEK');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACGREEK',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00b9
+0x82 0x00b2
+0x83 0x00c9
+0x84 0x00b3
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x0385
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x0384
+0x8c 0x00a8
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00a3
+0x93 0x2122
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x2022
+0x97 0x00bd
+0x98 0x2030
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00a6
+0x9c 0x00ad
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x0393
+0xa2 0x0394
+0xa3 0x0398
+0xa4 0x039b
+0xa5 0x039e
+0xa6 0x03a0
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x03a3
+0xab 0x03aa
+0xac 0x00a7
+0xad 0x2260
+0xae 0x00b0
+0xaf 0x0387
+0xb0 0x0391
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x0392
+0xb6 0x0395
+0xb7 0x0396
+0xb8 0x0397
+0xb9 0x0399
+0xba 0x039a
+0xbb 0x039c
+0xbc 0x03a6
+0xbd 0x03ab
+0xbe 0x03a8
+0xbf 0x03a9
+0xc0 0x03ac
+0xc1 0x039d
+0xc2 0x00ac
+0xc3 0x039f
+0xc4 0x03a1
+0xc5 0x2248
+0xc6 0x03a4
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x03a5
+0xcc 0x03a7
+0xcd 0x0386
+0xce 0x0388
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2015
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x0389
+0xd8 0x038a
+0xd9 0x038c
+0xda 0x038e
+0xdb 0x03ad
+0xdc 0x03ae
+0xdd 0x03af
+0xde 0x03cc
+0xdf 0x038f
+0xe0 0x03cd
+0xe1 0x03b1
+0xe2 0x03b2
+0xe3 0x03c8
+0xe4 0x03b4
+0xe5 0x03b5
+0xe6 0x03c6
+0xe7 0x03b3
+0xe8 0x03b7
+0xe9 0x03b9
+0xea 0x03be
+0xeb 0x03ba
+0xec 0x03bb
+0xed 0x03bc
+0xee 0x03bd
+0xef 0x03bf
+0xf0 0x03c0
+0xf1 0x03ce
+0xf2 0x03c1
+0xf3 0x03c3
+0xf4 0x03c4
+0xf5 0x03b8
+0xf6 0x03c9
+0xf7 0x03c2
+0xf8 0x03c7
+0xf9 0x03c5
+0xfa 0x03b6
+0xfb 0x03ca
+0xfc 0x03cb
+0xfd 0x0390
+0xfe 0x03b0
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02machebrew.t b/tp/maintain/lib/libintl-perl/tests/02machebrew.t
new file mode 100644
index 0000000..c175397
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02machebrew.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACHEBREW',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACHEBREW',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACHEBREW');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACHEBREW',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0xfb1f
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0xfffd
+0xa6 0x20aa
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0xfffd
+0xc1 0x201e
+0xc6 0xfffd
+0xc6 0xfffd
+0xc6 0xfffd
+0xc6 0xfffd
+0xc6 0x05bc
+0xc7 0xfb4b
+0xc8 0xfb35
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x05b8
+0xcc 0x05b7
+0xcd 0x05b5
+0xce 0x05b6
+0xcf 0x05b4
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0xfb2a
+0xd7 0xfb2b
+0xd8 0x05bf
+0xd9 0x05b0
+0xda 0x05b2
+0xdb 0x05b1
+0xdc 0x05bb
+0xdd 0x05b9
+0xdf 0xfffd
+0xdf 0x05b3
+0xe0 0x05d0
+0xe1 0x05d1
+0xe2 0x05d2
+0xe3 0x05d3
+0xe4 0x05d4
+0xe5 0x05d5
+0xe6 0x05d6
+0xe7 0x05d7
+0xe8 0x05d8
+0xe9 0x05d9
+0xea 0x05da
+0xeb 0x05db
+0xec 0x05dc
+0xed 0x05dd
+0xee 0x05de
+0xef 0x05df
+0xf0 0x05e0
+0xf1 0x05e1
+0xf2 0x05e2
+0xf3 0x05e3
+0xf4 0x05e4
+0xf5 0x05e5
+0xf6 0x05e6
+0xf7 0x05e7
+0xf8 0x05e8
+0xf9 0x05e9
+0xfa 0x05ea
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02maciceland.t b/tp/maintain/lib/libintl-perl/tests/02maciceland.t
new file mode 100644
index 0000000..9089a10
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02maciceland.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACICELAND',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACICELAND',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACICELAND');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACICELAND',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x00dd
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x00c6
+0xaf 0x00d8
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x03c0
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x2126
+0xbe 0x00e6
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x2044
+0xdb 0x00a4
+0xdc 0x00d0
+0xdd 0x00f0
+0xde 0x00de
+0xdf 0x00fe
+0xe0 0x00fd
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf1 0xfffd
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf6 0x02c6
+0xf7 0x02dc
+0xf8 0x00af
+0xf9 0x02d8
+0xfa 0x02d9
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x02dd
+0xfe 0x02db
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02macintosh.t b/tp/maintain/lib/libintl-perl/tests/02macintosh.t
new file mode 100644
index 0000000..dc752de
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macintosh.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACINTOSH',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACINTOSH',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACINTOSH');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACINTOSH',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x00c6
+0xaf 0x00d8
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x03c0
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x03a9
+0xbe 0x00e6
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x0394
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x2044
+0xdb 0x20ac
+0xdc 0x2039
+0xdd 0x203a
+0xde 0xfb01
+0xdf 0xfb02
+0xe0 0x2021
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf0 0xe01e
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf6 0x02c6
+0xf7 0x02dc
+0xf8 0x00af
+0xf9 0x02d8
+0xfa 0x02d9
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x02dd
+0xfe 0x02db
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02macromania.t b/tp/maintain/lib/libintl-perl/tests/02macromania.t
new file mode 100644
index 0000000..e76eaa3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macromania.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACROMANIA',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACROMANIA',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACROMANIA');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACROMANIA',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x0102
+0xaf 0x015e
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x03c0
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x2126
+0xbe 0x0103
+0xbf 0x015f
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x2044
+0xdb 0x00a4
+0xdc 0x2039
+0xdd 0x203a
+0xde 0x0162
+0xdf 0x0163
+0xe0 0x2021
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf1 0xfffd
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf5 0x0131
+0xf6 0x02c6
+0xf7 0x02dc
+0xf8 0x00af
+0xf9 0x02d8
+0xfa 0x02d9
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x02dd
+0xfe 0x02db
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02macthai.t b/tp/maintain/lib/libintl-perl/tests/02macthai.t
new file mode 100644
index 0000000..1877e5b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macthai.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACTHAI',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACTHAI',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACTHAI');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACTHAI',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00ab
+0x81 0x00bb
+0x82 0x2026
+0x83 0xf88c
+0x84 0xf88f
+0x85 0xf892
+0x86 0xf895
+0x87 0xf898
+0x88 0xf88b
+0x89 0xf88e
+0x8a 0xf891
+0x8b 0xf894
+0x8c 0xf897
+0x8d 0x201c
+0x8e 0x201d
+0x8f 0xf899
+0x91 0xfffd
+0x91 0x2022
+0x92 0xf884
+0x93 0xf889
+0x94 0xf885
+0x95 0xf886
+0x96 0xf887
+0x97 0xf888
+0x98 0xf88a
+0x99 0xf88d
+0x9a 0xf890
+0x9b 0xf893
+0x9c 0xf896
+0x9d 0x2018
+0x9e 0x2019
+0xa0 0xfffd
+0xa0 0x00a0
+0xa1 0x0e01
+0xa2 0x0e02
+0xa3 0x0e03
+0xa4 0x0e04
+0xa5 0x0e05
+0xa6 0x0e06
+0xa7 0x0e07
+0xa8 0x0e08
+0xa9 0x0e09
+0xaa 0x0e0a
+0xab 0x0e0b
+0xac 0x0e0c
+0xad 0x0e0d
+0xae 0x0e0e
+0xaf 0x0e0f
+0xb0 0x0e10
+0xb1 0x0e11
+0xb2 0x0e12
+0xb3 0x0e13
+0xb4 0x0e14
+0xb5 0x0e15
+0xb6 0x0e16
+0xb7 0x0e17
+0xb8 0x0e18
+0xb9 0x0e19
+0xba 0x0e1a
+0xbb 0x0e1b
+0xbc 0x0e1c
+0xbd 0x0e1d
+0xbe 0x0e1e
+0xbf 0x0e1f
+0xc0 0x0e20
+0xc1 0x0e21
+0xc2 0x0e22
+0xc3 0x0e23
+0xc4 0x0e24
+0xc5 0x0e25
+0xc6 0x0e26
+0xc7 0x0e27
+0xc8 0x0e28
+0xc9 0x0e29
+0xca 0x0e2a
+0xcb 0x0e2b
+0xcc 0x0e2c
+0xcd 0x0e2d
+0xce 0x0e2e
+0xcf 0x0e2f
+0xd0 0x0e30
+0xd1 0x0e31
+0xd2 0x0e32
+0xd3 0x0e33
+0xd4 0x0e34
+0xd5 0x0e35
+0xd6 0x0e36
+0xd7 0x0e37
+0xd8 0x0e38
+0xd9 0x0e39
+0xda 0x0e3a
+0xdb 0xfeff
+0xdc 0x200b
+0xdd 0x2013
+0xde 0x2014
+0xdf 0x0e3f
+0xe0 0x0e40
+0xe1 0x0e41
+0xe2 0x0e42
+0xe3 0x0e43
+0xe4 0x0e44
+0xe5 0x0e45
+0xe6 0x0e46
+0xe7 0x0e47
+0xe8 0x0e48
+0xe9 0x0e49
+0xea 0x0e4a
+0xeb 0x0e4b
+0xec 0x0e4c
+0xed 0x0e4d
+0xee 0x2122
+0xef 0x0e4f
+0xf0 0x0e50
+0xf1 0x0e51
+0xf2 0x0e52
+0xf3 0x0e53
+0xf4 0x0e54
+0xf5 0x0e55
+0xf6 0x0e56
+0xf7 0x0e57
+0xf8 0x0e58
+0xf9 0x0e59
+0xfa 0x00ae
+0xfb 0x00a9
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02macturkish.t b/tp/maintain/lib/libintl-perl/tests/02macturkish.t
new file mode 100644
index 0000000..882f79f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macturkish.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACTURKISH',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACTURKISH',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACTURKISH');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACTURKISH',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00c4
+0x81 0x00c5
+0x82 0x00c7
+0x83 0x00c9
+0x84 0x00d1
+0x85 0x00d6
+0x86 0x00dc
+0x87 0x00e1
+0x88 0x00e0
+0x89 0x00e2
+0x8a 0x00e4
+0x8b 0x00e3
+0x8c 0x00e5
+0x8d 0x00e7
+0x8e 0x00e9
+0x8f 0x00e8
+0x90 0x00ea
+0x91 0x00eb
+0x92 0x00ed
+0x93 0x00ec
+0x94 0x00ee
+0x95 0x00ef
+0x96 0x00f1
+0x97 0x00f3
+0x98 0x00f2
+0x99 0x00f4
+0x9a 0x00f6
+0x9b 0x00f5
+0x9c 0x00fa
+0x9d 0x00f9
+0x9e 0x00fb
+0x9f 0x00fc
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x00df
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x00b4
+0xac 0x00a8
+0xad 0x2260
+0xae 0x00c6
+0xaf 0x00d8
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x00a5
+0xb5 0x00b5
+0xb6 0x2202
+0xb7 0x2211
+0xb8 0x220f
+0xb9 0x03c0
+0xba 0x222b
+0xbb 0x00aa
+0xbc 0x00ba
+0xbd 0x2126
+0xbe 0x00e6
+0xbf 0x00f8
+0xc0 0x00bf
+0xc1 0x00a1
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x00c0
+0xcc 0x00c3
+0xcd 0x00d5
+0xce 0x0152
+0xcf 0x0153
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x25ca
+0xd8 0x00ff
+0xd9 0x0178
+0xda 0x011e
+0xdb 0x011f
+0xdc 0x0130
+0xdd 0x0131
+0xde 0x015e
+0xdf 0x015f
+0xe0 0x2021
+0xe1 0x00b7
+0xe2 0x201a
+0xe3 0x201e
+0xe4 0x2030
+0xe5 0x00c2
+0xe6 0x00ca
+0xe7 0x00c1
+0xe8 0x00cb
+0xe9 0x00c8
+0xea 0x00cd
+0xeb 0x00ce
+0xec 0x00cf
+0xed 0x00cc
+0xee 0x00d3
+0xef 0x00d4
+0xf1 0xfffd
+0xf1 0x00d2
+0xf2 0x00da
+0xf3 0x00db
+0xf4 0x00d9
+0xf6 0xfffd
+0xf6 0x02c6
+0xf7 0x02dc
+0xf8 0x00af
+0xf9 0x02d8
+0xfa 0x02d9
+0xfb 0x02da
+0xfc 0x00b8
+0xfd 0x02dd
+0xfe 0x02db
+0xff 0x02c7
diff --git a/tp/maintain/lib/libintl-perl/tests/02macukraine.t b/tp/maintain/lib/libintl-perl/tests/02macukraine.t
new file mode 100644
index 0000000..1846c5d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02macukraine.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'MACUKRAINE',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'MACUKRAINE',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACUKRAINE');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'MACUKRAINE',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x0410
+0x81 0x0411
+0x82 0x0412
+0x83 0x0413
+0x84 0x0414
+0x85 0x0415
+0x86 0x0416
+0x87 0x0417
+0x88 0x0418
+0x89 0x0419
+0x8a 0x041a
+0x8b 0x041b
+0x8c 0x041c
+0x8d 0x041d
+0x8e 0x041e
+0x8f 0x041f
+0x90 0x0420
+0x91 0x0421
+0x92 0x0422
+0x93 0x0423
+0x94 0x0424
+0x95 0x0425
+0x96 0x0426
+0x97 0x0427
+0x98 0x0428
+0x99 0x0429
+0x9a 0x042a
+0x9b 0x042b
+0x9c 0x042c
+0x9d 0x042d
+0x9e 0x042e
+0x9f 0x042f
+0xa0 0x2020
+0xa1 0x00b0
+0xa2 0x0490
+0xa3 0x00a3
+0xa4 0x00a7
+0xa5 0x2022
+0xa6 0x00b6
+0xa7 0x0406
+0xa8 0x00ae
+0xa9 0x00a9
+0xaa 0x2122
+0xab 0x0402
+0xac 0x0452
+0xad 0x2260
+0xae 0x0403
+0xaf 0x0453
+0xb0 0x221e
+0xb1 0x00b1
+0xb2 0x2264
+0xb3 0x2265
+0xb4 0x0456
+0xb5 0x00b5
+0xb6 0x0491
+0xb7 0x0408
+0xb8 0x0404
+0xb9 0x0454
+0xba 0x0407
+0xbb 0x0457
+0xbc 0x0409
+0xbd 0x0459
+0xbe 0x040a
+0xbf 0x045a
+0xc0 0x0458
+0xc1 0x0405
+0xc2 0x00ac
+0xc3 0x221a
+0xc4 0x0192
+0xc5 0x2248
+0xc6 0x2206
+0xc7 0x00ab
+0xc8 0x00bb
+0xc9 0x2026
+0xca 0x00a0
+0xcb 0x040b
+0xcc 0x045b
+0xcd 0x040c
+0xce 0x045c
+0xcf 0x0455
+0xd0 0x2013
+0xd1 0x2014
+0xd2 0x201c
+0xd3 0x201d
+0xd4 0x2018
+0xd5 0x2019
+0xd6 0x00f7
+0xd7 0x201e
+0xd8 0x040e
+0xd9 0x045e
+0xda 0x040f
+0xdb 0x045f
+0xdc 0x2116
+0xdd 0x0401
+0xde 0x0451
+0xdf 0x044f
+0xe0 0x0430
+0xe1 0x0431
+0xe2 0x0432
+0xe3 0x0433
+0xe4 0x0434
+0xe5 0x0435
+0xe6 0x0436
+0xe7 0x0437
+0xe8 0x0438
+0xe9 0x0439
+0xea 0x043a
+0xeb 0x043b
+0xec 0x043c
+0xed 0x043d
+0xee 0x043e
+0xef 0x043f
+0xf0 0x0440
+0xf1 0x0441
+0xf2 0x0442
+0xf3 0x0443
+0xf4 0x0444
+0xf5 0x0445
+0xf6 0x0446
+0xf7 0x0447
+0xf8 0x0448
+0xf9 0x0449
+0xfa 0x044a
+0xfb 0x044b
+0xfc 0x044c
+0xfd 0x044d
+0xfe 0x044e
+0xff 0x00a4
diff --git a/tp/maintain/lib/libintl-perl/tests/02nats-dano.t b/tp/maintain/lib/libintl-perl/tests/02nats-dano.t
new file mode 100644
index 0000000..a922610
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02nats-dano.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'NATS-DANO',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'NATS-DANO',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NATS-DANO');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NATS-DANO',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x00ab
+0x23 0x00bb
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0xe018
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x00c6
+0x5c 0x00d8
+0x5d 0x00c5
+0x5e 0x25a0
+0x5f 0x005f
+0x60 0xe019
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x00e6
+0x7c 0x00f8
+0x7d 0x00e5
+0x7e 0x2013
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02nats-sefi.t b/tp/maintain/lib/libintl-perl/tests/02nats-sefi.t
new file mode 100644
index 0000000..e7124fe
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02nats-sefi.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'NATS-SEFI',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'NATS-SEFI',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NATS-SEFI');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NATS-SEFI',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0xe018
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x00c4
+0x5c 0x00d6
+0x5d 0x00c5
+0x5e 0x25a0
+0x5f 0x005f
+0x60 0xe019
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x00e4
+0x7c 0x00f6
+0x7d 0x00e5
+0x7e 0x2013
+0x7f 0x007f
+0x80 0xfffd
+0x81 0xfffd
+0x82 0xfffd
+0x83 0xfffd
+0x84 0xfffd
+0x85 0xfffd
+0x86 0xfffd
+0x87 0xfffd
+0x88 0xfffd
+0x89 0xfffd
+0x8a 0xfffd
+0x8b 0xfffd
+0x8c 0xfffd
+0x8d 0xfffd
+0x8e 0xfffd
+0x8f 0xfffd
+0x90 0xfffd
+0x91 0xfffd
+0x92 0xfffd
+0x93 0xfffd
+0x94 0xfffd
+0x95 0xfffd
+0x96 0xfffd
+0x97 0xfffd
+0x98 0xfffd
+0x99 0xfffd
+0x9a 0xfffd
+0x9b 0xfffd
+0x9c 0xfffd
+0x9d 0xfffd
+0x9e 0xfffd
+0x9f 0xfffd
+0xa0 0xfffd
+0xa1 0xfffd
+0xa2 0xfffd
+0xa3 0xfffd
+0xa4 0xfffd
+0xa5 0xfffd
+0xa6 0xfffd
+0xa7 0xfffd
+0xa8 0xfffd
+0xa9 0xfffd
+0xaa 0xfffd
+0xab 0xfffd
+0xac 0xfffd
+0xad 0xfffd
+0xae 0xfffd
+0xaf 0xfffd
+0xb0 0xfffd
+0xb1 0xfffd
+0xb2 0xfffd
+0xb3 0xfffd
+0xb4 0xfffd
+0xb5 0xfffd
+0xb6 0xfffd
+0xb7 0xfffd
+0xb8 0xfffd
+0xb9 0xfffd
+0xba 0xfffd
+0xbb 0xfffd
+0xbc 0xfffd
+0xbd 0xfffd
+0xbe 0xfffd
+0xbf 0xfffd
+0xc0 0xfffd
+0xc1 0xfffd
+0xc2 0xfffd
+0xc3 0xfffd
+0xc4 0xfffd
+0xc5 0xfffd
+0xc6 0xfffd
+0xc7 0xfffd
+0xc8 0xfffd
+0xc9 0xfffd
+0xca 0xfffd
+0xcb 0xfffd
+0xcc 0xfffd
+0xcd 0xfffd
+0xce 0xfffd
+0xcf 0xfffd
+0xd0 0xfffd
+0xd1 0xfffd
+0xd2 0xfffd
+0xd3 0xfffd
+0xd4 0xfffd
+0xd5 0xfffd
+0xd6 0xfffd
+0xd7 0xfffd
+0xd8 0xfffd
+0xd9 0xfffd
+0xda 0xfffd
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0xfffd
+0xe0 0xfffd
+0xe1 0xfffd
+0xe2 0xfffd
+0xe3 0xfffd
+0xe4 0xfffd
+0xe5 0xfffd
+0xe6 0xfffd
+0xe7 0xfffd
+0xe8 0xfffd
+0xe9 0xfffd
+0xea 0xfffd
+0xeb 0xfffd
+0xec 0xfffd
+0xed 0xfffd
+0xee 0xfffd
+0xef 0xfffd
+0xf0 0xfffd
+0xf1 0xfffd
+0xf2 0xfffd
+0xf3 0xfffd
+0xf4 0xfffd
+0xf5 0xfffd
+0xf6 0xfffd
+0xf7 0xfffd
+0xf8 0xfffd
+0xf9 0xfffd
+0xfa 0xfffd
+0xfb 0xfffd
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02nextstep.t b/tp/maintain/lib/libintl-perl/tests/02nextstep.t
new file mode 100644
index 0000000..a122d26
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02nextstep.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'NEXTSTEP',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'NEXTSTEP',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NEXTSTEP');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'NEXTSTEP',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x00a0
+0x81 0x00c0
+0x82 0x00c1
+0x83 0x00c2
+0x84 0x00c3
+0x85 0x00c4
+0x86 0x00c5
+0x87 0x00c7
+0x88 0x00c8
+0x89 0x00c9
+0x8a 0x00ca
+0x8b 0x00cb
+0x8c 0x00cc
+0x8d 0x00cd
+0x8e 0x00ce
+0x8f 0x00cf
+0x90 0x00d0
+0x91 0x00d1
+0x92 0x00d2
+0x93 0x00d3
+0x94 0x00d4
+0x95 0x00d5
+0x96 0x00d6
+0x97 0x00d9
+0x98 0x00da
+0x99 0x00db
+0x9a 0x00dc
+0x9b 0x00dd
+0x9c 0x00de
+0x9d 0x00b5
+0x9e 0x00d7
+0x9f 0x00f7
+0xa0 0x00a9
+0xa1 0x00a1
+0xa2 0x00a2
+0xa3 0x00a3
+0xa4 0x2044
+0xa5 0x00a5
+0xa6 0x0192
+0xa7 0x00a7
+0xa8 0x00a4
+0xa9 0x2019
+0xaa 0x201c
+0xab 0x00ab
+0xac 0x2039
+0xad 0x203a
+0xae 0xfb01
+0xaf 0xfb02
+0xb0 0x00ae
+0xb1 0x2013
+0xb2 0x2020
+0xb3 0x2021
+0xb4 0x00b7
+0xb5 0x00a6
+0xb6 0x00b6
+0xb7 0x2022
+0xb8 0x201a
+0xb9 0x201e
+0xba 0x201d
+0xbb 0x00bb
+0xbc 0x2026
+0xbd 0x2030
+0xbe 0x00ac
+0xbf 0x00bf
+0xc0 0x00b9
+0xc1 0x02cb
+0xc2 0x00b4
+0xc3 0x02c6
+0xc4 0x02dc
+0xc5 0x00af
+0xc6 0x02d8
+0xc7 0x02d9
+0xc8 0x00a8
+0xc9 0x00b2
+0xca 0x02da
+0xcb 0x00b8
+0xcc 0x00b3
+0xcd 0x02dd
+0xce 0x02db
+0xcf 0x02c7
+0xd0 0x2014
+0xd1 0x00b1
+0xd2 0x00bc
+0xd3 0x00bd
+0xd4 0x00be
+0xd5 0x00e0
+0xd6 0x00e1
+0xd7 0x00e2
+0xd8 0x00e3
+0xd9 0x00e4
+0xda 0x00e5
+0xdb 0x00e7
+0xdc 0x00e8
+0xdd 0x00e9
+0xde 0x00ea
+0xdf 0x00eb
+0xe0 0x00ec
+0xe1 0x00c6
+0xe2 0x00ed
+0xe3 0x00aa
+0xe4 0x00ee
+0xe5 0x00ef
+0xe6 0x00f0
+0xe7 0x00f1
+0xe8 0x0141
+0xe9 0x00d8
+0xea 0x0152
+0xeb 0x00ba
+0xec 0x00f2
+0xed 0x00f3
+0xee 0x00f4
+0xef 0x00f5
+0xf0 0x00f6
+0xf1 0x00e6
+0xf2 0x00f9
+0xf3 0x00fa
+0xf4 0x00fb
+0xf5 0x0131
+0xf6 0x00fc
+0xf7 0x00fd
+0xf8 0x0142
+0xf9 0x00f8
+0xfa 0x0153
+0xfb 0x00df
+0xfc 0x00fe
+0xfd 0x00ff
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02sami-ws2.t b/tp/maintain/lib/libintl-perl/tests/02sami-ws2.t
new file mode 100644
index 0000000..c9dbee3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02sami-ws2.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'WIN-SAMI-2',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'WIN-SAMI-2',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'WIN-SAMI-2');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'WIN-SAMI-2',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x20ac
+0x82 0xfffd
+0x82 0x010c
+0x83 0x0192
+0x84 0x010d
+0x85 0x01b7
+0x86 0x0292
+0x87 0x01ee
+0x88 0x01ef
+0x89 0x0110
+0x8a 0x0160
+0x8b 0x2039
+0x8c 0x0152
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0xfffd
+0x91 0x2018
+0x92 0x2019
+0x93 0x201c
+0x94 0x201d
+0x95 0x2022
+0x96 0x2013
+0x97 0x2014
+0x98 0x0111
+0x99 0x01e6
+0x9a 0x0161
+0x9b 0x203a
+0x9c 0x0153
+0x9f 0xfffd
+0x9f 0xfffd
+0x9f 0x0178
+0xa0 0x00a0
+0xa1 0x01e7
+0xa2 0x01e4
+0xa3 0x00a3
+0xa4 0x00a4
+0xa5 0x01e5
+0xa6 0x00a6
+0xa7 0x00a7
+0xa8 0x00a8
+0xa9 0x00a9
+0xaa 0x021e
+0xab 0x00ab
+0xac 0x00ac
+0xad 0x00ad
+0xae 0x00ae
+0xaf 0x021f
+0xb0 0x00b0
+0xb1 0x00b1
+0xb2 0x01e8
+0xb3 0x01e9
+0xb4 0x00b4
+0xb5 0x00b5
+0xb6 0x00b6
+0xb7 0x00b7
+0xb8 0x014a
+0xb9 0x014b
+0xba 0x0166
+0xbb 0x00bb
+0xbc 0x0167
+0xbd 0x00bd
+0xbe 0x017d
+0xbf 0x017e
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x00c4
+0xc5 0x00c5
+0xc6 0x00c6
+0xc7 0x00c7
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x00cb
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x00ce
+0xcf 0x00cf
+0xd0 0x00d0
+0xd1 0x00d1
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x00d5
+0xd6 0x00d6
+0xd7 0x00d7
+0xd8 0x00d8
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x00db
+0xdc 0x00dc
+0xdd 0x00dd
+0xde 0x00de
+0xdf 0x00df
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x00e4
+0xe5 0x00e5
+0xe6 0x00e6
+0xe7 0x00e7
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x00eb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x00ee
+0xef 0x00ef
+0xf0 0x00f0
+0xf1 0x00f1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x00f6
+0xf7 0x00f7
+0xf8 0x00f8
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x00fb
+0xfc 0x00fc
+0xfd 0x00fd
+0xfe 0x00fe
+0xff 0x00ff
diff --git a/tp/maintain/lib/libintl-perl/tests/02tis-620.t b/tp/maintain/lib/libintl-perl/tests/02tis-620.t
new file mode 100644
index 0000000..0d0eb2f
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02tis-620.t
@@ -0,0 +1,367 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'TIS-620',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'TIS-620',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'TIS-620');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'TIS-620',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0xa0 0xfffd
+0xa1 0x0e01
+0xa2 0x0e02
+0xa3 0x0e03
+0xa4 0x0e04
+0xa5 0x0e05
+0xa6 0x0e06
+0xa7 0x0e07
+0xa8 0x0e08
+0xa9 0x0e09
+0xaa 0x0e0a
+0xab 0x0e0b
+0xac 0x0e0c
+0xad 0x0e0d
+0xae 0x0e0e
+0xaf 0x0e0f
+0xb0 0x0e10
+0xb1 0x0e11
+0xb2 0x0e12
+0xb3 0x0e13
+0xb4 0x0e14
+0xb5 0x0e15
+0xb6 0x0e16
+0xb7 0x0e17
+0xb8 0x0e18
+0xb9 0x0e19
+0xba 0x0e1a
+0xbb 0x0e1b
+0xbc 0x0e1c
+0xbd 0x0e1d
+0xbe 0x0e1e
+0xbf 0x0e1f
+0xc0 0x0e20
+0xc1 0x0e21
+0xc2 0x0e22
+0xc3 0x0e23
+0xc4 0x0e24
+0xc5 0x0e25
+0xc6 0x0e26
+0xc7 0x0e27
+0xc8 0x0e28
+0xc9 0x0e29
+0xca 0x0e2a
+0xcb 0x0e2b
+0xcc 0x0e2c
+0xcd 0x0e2d
+0xce 0x0e2e
+0xcf 0x0e2f
+0xd0 0x0e30
+0xd1 0x0e31
+0xd2 0x0e32
+0xd3 0x0e33
+0xd4 0x0e34
+0xd5 0x0e35
+0xd6 0x0e36
+0xd7 0x0e37
+0xd8 0x0e38
+0xd9 0x0e39
+0xda 0x0e3a
+0xdb 0xfffd
+0xdc 0xfffd
+0xdd 0xfffd
+0xde 0xfffd
+0xdf 0x0e3f
+0xe0 0x0e40
+0xe1 0x0e41
+0xe2 0x0e42
+0xe3 0x0e43
+0xe4 0x0e44
+0xe5 0x0e45
+0xe6 0x0e46
+0xe7 0x0e47
+0xe8 0x0e48
+0xe9 0x0e49
+0xea 0x0e4a
+0xeb 0x0e4b
+0xec 0x0e4c
+0xed 0x0e4d
+0xee 0x0e4e
+0xef 0x0e4f
+0xf0 0x0e50
+0xf1 0x0e51
+0xf2 0x0e52
+0xf3 0x0e53
+0xf4 0x0e54
+0xf5 0x0e55
+0xf6 0x0e56
+0xf7 0x0e57
+0xf8 0x0e58
+0xf9 0x0e59
+0xfa 0x0e5a
+0xfb 0x0e5b
+0xfc 0xfffd
+0xfd 0xfffd
+0xfe 0xfffd
+0xff 0xfffd
diff --git a/tp/maintain/lib/libintl-perl/tests/02us-ascii.t b/tp/maintain/lib/libintl-perl/tests/02us-ascii.t
new file mode 100644
index 0000000..74fd1b0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02us-ascii.t
@@ -0,0 +1,269 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $codes = {};
+while (<DATA>) {
+ my ($code, $ucs4, undef) = split /\s+/, $_;
+ $codes->{oct $code} = oct $ucs4;
+}
+
+my $cd_int = Locale::Recode->new (from => 'ASCII',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'ASCII',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ASCII');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs4) = each %$codes) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs4) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs4) = each %$codes) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs4) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($code, $ucs4) = each %$codes) {
+ my $outbuf = [ $ucs4 ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'ISO-8859-2',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+# Local Variables:
+# mode: perl
+# perl-indent-level: 4
+# perl-continued-statement-offset: 4
+# perl-continued-brace-offset: 0
+# perl-brace-offset: -4
+# perl-brace-imaginary-offset: 0
+# perl-label-offset: -4
+# cperl-indent-level: 4
+# cperl-continued-statement-offset: 2
+# tab-width: 4
+# End:
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0A 0x000A
+0x0B 0x000B
+0x0C 0x000C
+0x0D 0x000D
+0x0E 0x000E
+0x0F 0x000F
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1A 0x001A
+0x1B 0x001B
+0x1C 0x001C
+0x1D 0x001D
+0x1E 0x001E
+0x1F 0x001F
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2A 0x002A
+0x2B 0x002B
+0x2C 0x002C
+0x2D 0x002D
+0x2E 0x002E
+0x2F 0x002F
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3A 0x003A
+0x3B 0x003B
+0x3C 0x003C
+0x3D 0x003D
+0x3E 0x003E
+0x3F 0x003F
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4A 0x004A
+0x4B 0x004B
+0x4C 0x004C
+0x4D 0x004D
+0x4E 0x004E
+0x4F 0x004F
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5A 0x005A
+0x5B 0x005B
+0x5C 0x005C
+0x5D 0x005D
+0x5E 0x005E
+0x5F 0x005F
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6A 0x006A
+0x6B 0x006B
+0x6C 0x006C
+0x6D 0x006D
+0x6E 0x006E
+0x6F 0x006F
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7A 0x007A
+0x7B 0x007B
+0x7C 0x007C
+0x7D 0x007D
+0x7E 0x007E
+0x7F 0x007F
diff --git a/tp/maintain/lib/libintl-perl/tests/02utf-8.t b/tp/maintain/lib/libintl-perl/tests/02utf-8.t
new file mode 100644
index 0000000..16a7fc2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02utf-8.t
@@ -0,0 +1,124 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 5;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $codes = {};
+foreach (0 .. 0xcfff
+ # 0 .. 0x11_000,
+ # 0x10_000 .. 0x11_000,
+ # 0x200_000 .. 0x201_000, # :-( # Not supported by Perl 5.6
+ # 0x4_000_000 .. 0x4_001_000, # :-( # Not supported by Perl 5.6
+ ) {
+ $codes->{$_} = int2utf8 $_;
+}
+
+my $cd_int = Locale::Recode->new (from => 'UTF-8',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'UTF-8');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($ucs4, $outbuf) = each %$codes) {
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs4) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert from internal representation.
+my $result_rev = 1;
+if (1) {
+ # FIXME: This test only succeeds with use bytes in Perl >= 5.8.0.
+ # However, this will fail with Perl <= Perl 5.6.0. :-(
+ # FIXME: Is it really fixed now?
+while (my ($ucs4, $code) = each %$codes) {
+ my $outbuf = [ $ucs4 ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code eq $outbuf) {
+ $result_rev = 0;
+ last;
+ }
+}
+}
+ok $result_rev;
+
+# Check handling of unknown characters. This assumes that the
+# character set is a subset of US-ASCII.
+my $test_string1 = "\xffSupergirl\xff";
+$cd_rev = Locale::Recode->new (from => 'ASCII',
+ to => 'UTF-8',
+ );
+$result_rev = $cd_rev->recode ($test_string1);
+ok $result_rev && $test_string1 eq "�Supergirl�";
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+# Local Variables:
+# mode: perl
+# perl-indent-level: 4
+# perl-continued-statement-offset: 4
+# perl-continued-brace-offset: 0
+# perl-brace-offset: -4
+# perl-brace-imaginary-offset: 0
+# perl-label-offset: -4
+# cperl-indent-level: 4
+# cperl-continued-statement-offset: 2
+# tab-width: 4
+# End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/02viscii.t b/tp/maintain/lib/libintl-perl/tests/02viscii.t
new file mode 100644
index 0000000..1f206fb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/02viscii.t
@@ -0,0 +1,399 @@
+#! /usr/local/bin/perl -w
+
+# vim: tabstop=4
+# vim: syntax=perl
+
+use strict;
+
+use Test;
+
+BEGIN {
+ plan tests => 7;
+}
+
+use Locale::Recode;
+
+sub int2utf8;
+
+my $local2ucs = {};
+my $ucs2local = {};
+
+while (<DATA>) {
+ my ($code, $ucs, undef) = map { oct $_ } split /\s+/, $_;
+ $local2ucs->{$code} = $ucs;
+ $ucs2local->{$ucs} = $code unless $ucs == 0xfffd;
+}
+
+my $cd_int = Locale::Recode->new (from => 'VISCII',
+ to => 'INTERNAL');
+ok !$cd_int->getError;
+
+my $cd_utf8 = Locale::Recode->new (from => 'VISCII',
+ to => 'UTF-8');
+ok !$cd_utf8->getError;
+
+my $cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'VISCII');
+ok !$cd_rev->getError;
+
+# Convert into internal representation.
+my $result_int = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_int->recode ($outbuf);
+ unless ($result && $outbuf->[0] == $ucs) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Convert to UTF-8.
+my $result_utf8 = 1;
+while (my ($code, $ucs) = each %$local2ucs) {
+ my $outbuf = chr $code;
+ my $result = $cd_utf8->recode ($outbuf);
+ unless ($result && $outbuf eq int2utf8 $ucs) {
+ $result_utf8 = 0;
+ last;
+ }
+}
+ok $result_utf8;
+
+# Convert from internal representation.
+my $result_rev = 1;
+while (my ($ucs, $code) = each %$ucs2local) {
+ my $outbuf = [ $ucs ];
+ my $result = $cd_rev->recode ($outbuf);
+ unless ($result && $code == ord $outbuf) {
+ $result_int = 0;
+ last;
+ }
+}
+ok $result_int;
+
+# Check handling of unknown characters.
+my $test_string1 = [ unpack 'c*', ' Supergirl ' ];
+$test_string1->[0] = 0xad0be;
+$test_string1->[-1] = 0xbeefbabe;
+my $test_string2 = [ unpack 'c*', 'Supergirl' ];
+
+my $unknown = "\x3f"; # Unknown character!
+
+$cd_rev = Locale::Recode->new (from => 'INTERNAL',
+ to => 'VISCII',
+ )
+&& $cd_rev->recode ($test_string1)
+&& $cd_rev->recode ($test_string2)
+&& ($test_string2 = $unknown . $test_string2 . $unknown);
+
+ok $test_string1 eq $test_string2;
+
+sub int2utf8
+{
+ my $ucs4 = shift;
+
+ if ($ucs4 <= 0x7f) {
+ return chr $ucs4;
+ } elsif ($ucs4 <= 0x7ff) {
+ return pack ("C2",
+ (0xc0 | (($ucs4 >> 6) & 0x1f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0xffff) {
+ return pack ("C3",
+ (0xe0 | (($ucs4 >> 12) & 0xf)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x1fffff) {
+ return pack ("C4",
+ (0xf0 | (($ucs4 >> 18) & 0x7)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } elsif ($ucs4 <= 0x3ffffff) {
+ return pack ("C5",
+ (0xf0 | (($ucs4 >> 24) & 0x3)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ } else {
+ return pack ("C6",
+ (0xf0 | (($ucs4 >> 30) & 0x3)),
+ (0x80 | (($ucs4 >> 24) & 0x1)),
+ (0x80 | (($ucs4 >> 18) & 0x3f)),
+ (0x80 | (($ucs4 >> 12) & 0x3f)),
+ (0x80 | (($ucs4 >> 6) & 0x3f)),
+ (0x80 | ($ucs4 & 0x3f)));
+ }
+}
+
+#Local Variables:
+#mode: perl
+#perl-indent-level: 4
+#perl-continued-statement-offset: 4
+#perl-continued-brace-offset: 0
+#perl-brace-offset: -4
+#perl-brace-imaginary-offset: 0
+#perl-label-offset: -4
+#tab-width: 4
+#End:
+
+
+__DATA__
+0x00 0x0000
+0x01 0x0001
+0x02 0x1eb2
+0x03 0x0003
+0x04 0x0004
+0x05 0x1eb4
+0x06 0x1eaa
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x1ef6
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x1ef8
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x1ef4
+0x1f 0x001f
+0x20 0x0020
+0x21 0x0021
+0x22 0x0022
+0x23 0x0023
+0x24 0x0024
+0x25 0x0025
+0x26 0x0026
+0x27 0x0027
+0x28 0x0028
+0x29 0x0029
+0x2a 0x002a
+0x2b 0x002b
+0x2c 0x002c
+0x2d 0x002d
+0x2e 0x002e
+0x2f 0x002f
+0x30 0x0030
+0x31 0x0031
+0x32 0x0032
+0x33 0x0033
+0x34 0x0034
+0x35 0x0035
+0x36 0x0036
+0x37 0x0037
+0x38 0x0038
+0x39 0x0039
+0x3a 0x003a
+0x3b 0x003b
+0x3c 0x003c
+0x3d 0x003d
+0x3e 0x003e
+0x3f 0x003f
+0x40 0x0040
+0x41 0x0041
+0x42 0x0042
+0x43 0x0043
+0x44 0x0044
+0x45 0x0045
+0x46 0x0046
+0x47 0x0047
+0x48 0x0048
+0x49 0x0049
+0x4a 0x004a
+0x4b 0x004b
+0x4c 0x004c
+0x4d 0x004d
+0x4e 0x004e
+0x4f 0x004f
+0x50 0x0050
+0x51 0x0051
+0x52 0x0052
+0x53 0x0053
+0x54 0x0054
+0x55 0x0055
+0x56 0x0056
+0x57 0x0057
+0x58 0x0058
+0x59 0x0059
+0x5a 0x005a
+0x5b 0x005b
+0x5c 0x005c
+0x5d 0x005d
+0x5e 0x005e
+0x5f 0x005f
+0x60 0x0060
+0x61 0x0061
+0x62 0x0062
+0x63 0x0063
+0x64 0x0064
+0x65 0x0065
+0x66 0x0066
+0x67 0x0067
+0x68 0x0068
+0x69 0x0069
+0x6a 0x006a
+0x6b 0x006b
+0x6c 0x006c
+0x6d 0x006d
+0x6e 0x006e
+0x6f 0x006f
+0x70 0x0070
+0x71 0x0071
+0x72 0x0072
+0x73 0x0073
+0x74 0x0074
+0x75 0x0075
+0x76 0x0076
+0x77 0x0077
+0x78 0x0078
+0x79 0x0079
+0x7a 0x007a
+0x7b 0x007b
+0x7c 0x007c
+0x7d 0x007d
+0x7e 0x007e
+0x7f 0x007f
+0x80 0x1ea0
+0x81 0x1eae
+0x82 0x1eb0
+0x83 0x1eb6
+0x84 0x1ea4
+0x85 0x1ea6
+0x86 0x1ea8
+0x87 0x1eac
+0x88 0x1ebc
+0x89 0x1eb8
+0x8a 0x1ebe
+0x8b 0x1ec0
+0x8c 0x1ec2
+0x8d 0x1ec4
+0x8e 0x1ec6
+0x8f 0x1ed0
+0x90 0x1ed2
+0x91 0x1ed4
+0x92 0x1ed6
+0x93 0x1ed8
+0x94 0x1ee2
+0x95 0x1eda
+0x96 0x1edc
+0x97 0x1ede
+0x98 0x1eca
+0x99 0x1ece
+0x9a 0x1ecc
+0x9b 0x1ec8
+0x9c 0x1ee6
+0x9d 0x0168
+0x9e 0x1ee4
+0x9f 0x1ef2
+0xa0 0x00d5
+0xa1 0x1eaf
+0xa2 0x1eb1
+0xa3 0x1eb7
+0xa4 0x1ea5
+0xa5 0x1ea7
+0xa6 0x1ea9
+0xa7 0x1ead
+0xa8 0x1ebd
+0xa9 0x1eb9
+0xaa 0x1ebf
+0xab 0x1ec1
+0xac 0x1ec3
+0xad 0x1ec5
+0xae 0x1ec7
+0xaf 0x1ed1
+0xb0 0x1ed3
+0xb1 0x1ed5
+0xb2 0x1ed7
+0xb3 0x1ee0
+0xb4 0x01a0
+0xb5 0x1ed9
+0xb6 0x1edd
+0xb7 0x1edf
+0xb8 0x1ecb
+0xb9 0x1ef0
+0xba 0x1ee8
+0xbb 0x1eea
+0xbc 0x1eec
+0xbd 0x01a1
+0xbe 0x1edb
+0xbf 0x01af
+0xc0 0x00c0
+0xc1 0x00c1
+0xc2 0x00c2
+0xc3 0x00c3
+0xc4 0x1ea2
+0xc5 0x0102
+0xc6 0x1eb3
+0xc7 0x1eb5
+0xc8 0x00c8
+0xc9 0x00c9
+0xca 0x00ca
+0xcb 0x1eba
+0xcc 0x00cc
+0xcd 0x00cd
+0xce 0x0128
+0xcf 0x1ef3
+0xd0 0x0110
+0xd1 0x1ee9
+0xd2 0x00d2
+0xd3 0x00d3
+0xd4 0x00d4
+0xd5 0x1ea1
+0xd6 0x1ef7
+0xd7 0x1eeb
+0xd8 0x1eed
+0xd9 0x00d9
+0xda 0x00da
+0xdb 0x1ef9
+0xdc 0x1ef5
+0xdd 0x00dd
+0xde 0x1ee1
+0xdf 0x01b0
+0xe0 0x00e0
+0xe1 0x00e1
+0xe2 0x00e2
+0xe3 0x00e3
+0xe4 0x1ea3
+0xe5 0x0103
+0xe6 0x1eef
+0xe7 0x1eab
+0xe8 0x00e8
+0xe9 0x00e9
+0xea 0x00ea
+0xeb 0x1ebb
+0xec 0x00ec
+0xed 0x00ed
+0xee 0x0129
+0xef 0x1ec9
+0xf0 0x0111
+0xf1 0x1ef1
+0xf2 0x00f2
+0xf3 0x00f3
+0xf4 0x00f4
+0xf5 0x00f5
+0xf6 0x1ecf
+0xf7 0x1ecd
+0xf8 0x1ee5
+0xf9 0x00f9
+0xfa 0x00fa
+0xfb 0x0169
+0xfc 0x1ee7
+0xfd 0x00fd
+0xfe 0x1ee3
+0xff 0x1eee
diff --git a/tp/maintain/lib/libintl-perl/tests/03_tester_david_pp.t b/tp/maintain/lib/libintl-perl/tests/03_tester_david_pp.t
new file mode 100644
index 0000000..0872727
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03_tester_david_pp.t
@@ -0,0 +1,73 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 6;
+
+use Locale::Messages qw (LC_MESSAGES bindtextdomain textdomain dcgettext dgettext gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Normal lookup.
+ok dcgettext (existing => 'View', LC_MESSAGES), 'Anzeigen';
+
+# Can we retrieve a translation with the gettext glue?
+ok dcgettext (existing => "Which folder would you like to view?\004View",
+ LC_MESSAGES), 'Ansicht';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03_tester_david_xs.t b/tp/maintain/lib/libintl-perl/tests/03_tester_david_xs.t
new file mode 100644
index 0000000..0872727
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03_tester_david_xs.t
@@ -0,0 +1,73 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 6;
+
+use Locale::Messages qw (LC_MESSAGES bindtextdomain textdomain dcgettext dgettext gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Normal lookup.
+ok dcgettext (existing => 'View', LC_MESSAGES), 'Anzeigen';
+
+# Can we retrieve a translation with the gettext glue?
+ok dcgettext (existing => "Which folder would you like to view?\004View",
+ LC_MESSAGES), 'Ansicht';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_pp.t b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_pp.t
new file mode 100644
index 0000000..b791a8d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_pp.t
@@ -0,0 +1,104 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 14;
+
+use Locale::Messages qw (bindtextdomain textdomain bind_textdomain_codeset
+ gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir) eq File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $textdomain, $bound_domain;
+
+my $bound_codeset = bind_textdomain_codeset $textdomain => 'ISO-8859-1';
+
+ok defined $bound_codeset;
+ok $bound_codeset, 'ISO-8859-1';
+
+skip $missing_locale, gettext ('January'), 'Jnner';
+ok gettext ('March'), 'Mrz';
+
+# This will cause GNU gettext to re-load our catalog.
+$bound_dir = bindtextdomain $textdomain => $locale_dir . '/../LocaleData';
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir),
+ File::Spec->catdir ("$locale_dir/../LocaleData"));
+
+$bound_codeset = bind_textdomain_codeset $textdomain => 'UTF-8';
+
+ok defined $bound_codeset;
+ok uc $bound_codeset, 'UTF-8';
+
+skip $missing_locale, gettext ('January'), 'Jänner';
+skip $missing_locale, gettext ('March'), 'März';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_xs.t b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_xs.t
new file mode 100644
index 0000000..b791a8d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_codeset_xs.t
@@ -0,0 +1,104 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 14;
+
+use Locale::Messages qw (bindtextdomain textdomain bind_textdomain_codeset
+ gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir) eq File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $textdomain, $bound_domain;
+
+my $bound_codeset = bind_textdomain_codeset $textdomain => 'ISO-8859-1';
+
+ok defined $bound_codeset;
+ok $bound_codeset, 'ISO-8859-1';
+
+skip $missing_locale, gettext ('January'), 'Jnner';
+ok gettext ('March'), 'Mrz';
+
+# This will cause GNU gettext to re-load our catalog.
+$bound_dir = bindtextdomain $textdomain => $locale_dir . '/../LocaleData';
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir),
+ File::Spec->catdir ("$locale_dir/../LocaleData"));
+
+$bound_codeset = bind_textdomain_codeset $textdomain => 'UTF-8';
+
+ok defined $bound_codeset;
+ok uc $bound_codeset, 'UTF-8';
+
+skip $missing_locale, gettext ('January'), 'Jänner';
+skip $missing_locale, gettext ('March'), 'März';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_pp.t b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_pp.t
new file mode 100644
index 0000000..4c12c60
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_pp.t
@@ -0,0 +1,88 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 7;
+
+use Locale::Messages qw (LC_MESSAGES textdomain bind_textdomain_filter
+ gettext dgettext dcgettext
+ ngettext dngettext dcngettext);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+textdomain 'bogus';
+
+my $gettext = gettext ('foobar');
+my $dgettext = dgettext (bogus => 'foobar');
+my $dcgettext = dcgettext (bogus => 'foobar', LC_MESSAGES);
+my $ngettext = ngettext ('foobar', 'barbaz', 1);
+my $dngettext = dngettext (bogus => 'foobar', 'barbaz', 1);
+my $dcngettext = dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
+
+package MyPackage;
+
+use strict;
+
+sub new {
+ bless {}, shift;
+}
+
+sub filterMethod {
+ my ($self, $string) = @_;
+
+ return 'prefix - ' . $string;
+};
+
+package main;
+
+sub wrapper {
+ my ($string, $obj) = @_;
+
+ $obj->filterMethod ($string);
+}
+
+my $obj = MyPackage->new;
+ok (bind_textdomain_filter ('bogus', \&wrapper, $obj));
+
+my $prefix = 'prefix - ';
+ok "$prefix$gettext", gettext ('foobar');
+ok "$prefix$dgettext", dgettext (bogus => 'foobar');
+ok "$prefix$dcgettext", dcgettext (bogus => 'foobar', LC_MESSAGES);
+ok "$prefix$ngettext", ngettext ('foobar', 'barbaz', 1);
+ok "$prefix$dngettext", dngettext (bogus => 'foobar', 'barbaz', 1);
+ok "$prefix$dcngettext",
+ dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_xs.t b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_xs.t
new file mode 100644
index 0000000..4c12c60
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bind_textdomain_filter_xs.t
@@ -0,0 +1,88 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 7;
+
+use Locale::Messages qw (LC_MESSAGES textdomain bind_textdomain_filter
+ gettext dgettext dcgettext
+ ngettext dngettext dcngettext);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+textdomain 'bogus';
+
+my $gettext = gettext ('foobar');
+my $dgettext = dgettext (bogus => 'foobar');
+my $dcgettext = dcgettext (bogus => 'foobar', LC_MESSAGES);
+my $ngettext = ngettext ('foobar', 'barbaz', 1);
+my $dngettext = dngettext (bogus => 'foobar', 'barbaz', 1);
+my $dcngettext = dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
+
+package MyPackage;
+
+use strict;
+
+sub new {
+ bless {}, shift;
+}
+
+sub filterMethod {
+ my ($self, $string) = @_;
+
+ return 'prefix - ' . $string;
+};
+
+package main;
+
+sub wrapper {
+ my ($string, $obj) = @_;
+
+ $obj->filterMethod ($string);
+}
+
+my $obj = MyPackage->new;
+ok (bind_textdomain_filter ('bogus', \&wrapper, $obj));
+
+my $prefix = 'prefix - ';
+ok "$prefix$gettext", gettext ('foobar');
+ok "$prefix$dgettext", dgettext (bogus => 'foobar');
+ok "$prefix$dcgettext", dcgettext (bogus => 'foobar', LC_MESSAGES);
+ok "$prefix$ngettext", ngettext ('foobar', 'barbaz', 1);
+ok "$prefix$dngettext", dngettext (bogus => 'foobar', 'barbaz', 1);
+ok "$prefix$dcngettext",
+ dcngettext (bogus => 'foobar', 'barbaz', 1, LC_MESSAGES);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_pp.t b/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_pp.t
new file mode 100644
index 0000000..03aeceb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_pp.t
@@ -0,0 +1,67 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 12;
+
+use Locale::Messages qw (bindtextdomain);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $bound_domain = bindtextdomain 'existing';
+ok defined $bound_domain;
+ok length $bound_domain;
+
+$bound_domain = bindtextdomain 'existing', '.';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'existing';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'not_existing';
+ok defined $bound_domain;
+ok length $bound_domain;
+
+$bound_domain = bindtextdomain 'not_existing', '.';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'not_existing';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_xs.t b/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_xs.t
new file mode 100644
index 0000000..03aeceb
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03bindtextdomain_xs.t
@@ -0,0 +1,67 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 12;
+
+use Locale::Messages qw (bindtextdomain);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $bound_domain = bindtextdomain 'existing';
+ok defined $bound_domain;
+ok length $bound_domain;
+
+$bound_domain = bindtextdomain 'existing', '.';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'existing';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'not_existing';
+ok defined $bound_domain;
+ok length $bound_domain;
+
+$bound_domain = bindtextdomain 'not_existing', '.';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+$bound_domain = bindtextdomain 'not_existing';
+ok defined $bound_domain;
+ok $bound_domain, '.';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dcgettext_pp.t
new file mode 100644
index 0000000..572f7c9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcgettext_pp.t
@@ -0,0 +1,86 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 11;
+
+use Locale::Messages qw (bindtextdomain dcgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+ok 'Dezember', dcgettext (existing => 'December', LC_MESSAGES);
+ok 'September', dcgettext (existing => 'September', LC_MESSAGES);
+ok 'Not translated', dcgettext (existing => 'Not translated', LC_MESSAGES);
+skip $missing_locale, 'Jnner', dcgettext (existing => 'January', LC_MESSAGES);
+
+ok 'Montag', dcgettext (additional => 'Monday', LC_MESSAGES);
+ok 'Not translated', dcgettext (additional => 'Not translated', LC_MESSAGES);
+skip $missing_locale,
+ dcgettext (additional => 'Saturday', LC_MESSAGES), 'Sonnabend';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dcgettext_xs.t
new file mode 100644
index 0000000..572f7c9
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcgettext_xs.t
@@ -0,0 +1,86 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 11;
+
+use Locale::Messages qw (bindtextdomain dcgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+ok 'Dezember', dcgettext (existing => 'December', LC_MESSAGES);
+ok 'September', dcgettext (existing => 'September', LC_MESSAGES);
+ok 'Not translated', dcgettext (existing => 'Not translated', LC_MESSAGES);
+skip $missing_locale, 'Jnner', dcgettext (existing => 'January', LC_MESSAGES);
+
+ok 'Montag', dcgettext (additional => 'Monday', LC_MESSAGES);
+ok 'Not translated', dcgettext (additional => 'Not translated', LC_MESSAGES);
+skip $missing_locale,
+ dcgettext (additional => 'Saturday', LC_MESSAGES), 'Sonnabend';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcngettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dcngettext_pp.t
new file mode 100644
index 0000000..cc8a7f3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcngettext_pp.t
@@ -0,0 +1,139 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 85;
+
+use Locale::Messages qw (bindtextdomain dcngettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ my $translation = dcngettext (not_here => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcngettext (existing => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = dcngettext (existing => $strings[0], $strings[1], $_, LC_MESSAGES);
+ skip $missing_locale, $translation, $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+for (0 .. 9) {
+ my $translation = dcngettext (additional => $strings[0], $strings[1], $_, LC_MESSAGES);
+ ok $translation, $_ == 1 ? 'Singular' : 'Plural';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = dcngettext (additional => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ skip $missing_locale, $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcngettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dcngettext_xs.t
new file mode 100644
index 0000000..cc8a7f3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcngettext_xs.t
@@ -0,0 +1,139 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 85;
+
+use Locale::Messages qw (bindtextdomain dcngettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ my $translation = dcngettext (not_here => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcngettext (existing => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = dcngettext (existing => $strings[0], $strings[1], $_, LC_MESSAGES);
+ skip $missing_locale, $translation, $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+for (0 .. 9) {
+ my $translation = dcngettext (additional => $strings[0], $strings[1], $_, LC_MESSAGES);
+ ok $translation, $_ == 1 ? 'Singular' : 'Plural';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = dcngettext (additional => $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ skip $missing_locale, $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_pp.t
new file mode 100644
index 0000000..7a45992
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_pp.t
@@ -0,0 +1,143 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 95;
+
+use Locale::Messages qw (bindtextdomain dcnpgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dcnpgettext (not_here => $context3, $strings3[0], $strings3[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dcnpgettext (not_here => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (existing => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (existing => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (additional => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = dcnpgettext (additional => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_xs.t
new file mode 100644
index 0000000..7a45992
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcnpgettext_xs.t
@@ -0,0 +1,143 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 95;
+
+use Locale::Messages qw (bindtextdomain dcnpgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dcnpgettext (not_here => $context3, $strings3[0], $strings3[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dcnpgettext (not_here => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (existing => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (existing => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dcnpgettext (additional => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = dcnpgettext (additional => $context, $strings[0], $strings[1], $_, LC_MESSAGES);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcpgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dcpgettext_pp.t
new file mode 100644
index 0000000..baf8ce7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcpgettext_pp.t
@@ -0,0 +1,72 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 10;
+
+use Locale::Messages qw (bindtextdomain dcgettext dcpgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+# make sure dgettext and dpgettext return diff values
+ok 'Anzeigen', dcgettext (existing => 'View', LC_MESSAGES);
+ok 'Ansicht', dcpgettext (existing => 'Which folder would you like to view?','View', LC_MESSAGES);
+ok 'Not translated', dcpgettext (existing => 'none', 'Not translated', LC_MESSAGES);
+
+ok 'Ein weiterer Blick', dcpgettext (additional => 'Context', 'Another View', LC_MESSAGES);
+ok 'Not translated', dcpgettext (additional => 'none', 'Not translated', LC_MESSAGES);
+ok 'Ein weiterer Blick', dcpgettext (additional => 'Context', 'Another View', LC_MESSAGES);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dcpgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dcpgettext_xs.t
new file mode 100644
index 0000000..baf8ce7
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dcpgettext_xs.t
@@ -0,0 +1,72 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 10;
+
+use Locale::Messages qw (bindtextdomain dcgettext dcpgettext LC_MESSAGES);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+# make sure dgettext and dpgettext return diff values
+ok 'Anzeigen', dcgettext (existing => 'View', LC_MESSAGES);
+ok 'Ansicht', dcpgettext (existing => 'Which folder would you like to view?','View', LC_MESSAGES);
+ok 'Not translated', dcpgettext (existing => 'none', 'Not translated', LC_MESSAGES);
+
+ok 'Ein weiterer Blick', dcpgettext (additional => 'Context', 'Another View', LC_MESSAGES);
+ok 'Not translated', dcpgettext (additional => 'none', 'Not translated', LC_MESSAGES);
+ok 'Ein weiterer Blick', dcpgettext (additional => 'Context', 'Another View', LC_MESSAGES);
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dgettext_pp.t
new file mode 100644
index 0000000..af4c84c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dgettext_pp.t
@@ -0,0 +1,85 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 11;
+
+use Locale::Messages qw (bindtextdomain dgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+ok 'Dezember', dgettext (existing => 'December');
+ok 'September', dgettext (existing => 'September');
+ok 'Not translated', dgettext (existing => 'Not translated');
+skip $missing_locale, 'Jnner', dgettext (existing => 'January');
+
+ok 'Montag', dgettext (additional => 'Monday');
+ok dgettext (additional => 'Not translated'), 'Not translated';
+skip $missing_locale, dgettext (additional => 'Saturday'), 'Sonnabend';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dgettext_xs.t
new file mode 100644
index 0000000..af4c84c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dgettext_xs.t
@@ -0,0 +1,85 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 11;
+
+use Locale::Messages qw (bindtextdomain dgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+ok 'Dezember', dgettext (existing => 'December');
+ok 'September', dgettext (existing => 'September');
+ok 'Not translated', dgettext (existing => 'Not translated');
+skip $missing_locale, 'Jnner', dgettext (existing => 'January');
+
+ok 'Montag', dgettext (additional => 'Monday');
+ok dgettext (additional => 'Not translated'), 'Not translated';
+skip $missing_locale, dgettext (additional => 'Saturday'), 'Sonnabend';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dngettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dngettext_pp.t
new file mode 100644
index 0000000..5f05a61
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dngettext_pp.t
@@ -0,0 +1,141 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 85;
+
+use Locale::Messages qw (bindtextdomain dngettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ my $translation = dngettext (not_here => $strings[0], $strings[1], $_);
+ ok $translation, $_ == 1 ? 'Singular' : 'Plural';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dngettext (existing => $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = dngettext (existing => $strings[0], $strings[1], $_);
+ skip $missing_locale,
+ $translation, $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+for (0 .. 9) {
+ my $translation = dngettext (additional => $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = dngettext (additional => $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ skip $missing_locale, $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dngettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dngettext_xs.t
new file mode 100644
index 0000000..5f05a61
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dngettext_xs.t
@@ -0,0 +1,141 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 85;
+
+use Locale::Messages qw (bindtextdomain dngettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ my $translation = dngettext (not_here => $strings[0], $strings[1], $_);
+ ok $translation, $_ == 1 ? 'Singular' : 'Plural';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dngettext (existing => $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = dngettext (existing => $strings[0], $strings[1], $_);
+ skip $missing_locale,
+ $translation, $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($locale_dir), File::Spec->catdir ($bound_dir));
+
+for (0 .. 9) {
+ my $translation = dngettext (additional => $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = dngettext (additional => $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ skip $missing_locale, $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dnpgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dnpgettext_pp.t
new file mode 100644
index 0000000..df9c0cc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dnpgettext_pp.t
@@ -0,0 +1,144 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 95;
+
+use Locale::Messages qw (bindtextdomain dnpgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dnpgettext (not_here => $context3, $strings3[0], $strings3[1], $_);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dnpgettext (not_here => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dnpgettext (existing => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 9) {
+ my $translation = dnpgettext (existing => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $expected, $translation;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dnpgettext (additional => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = dnpgettext (additional => $context, $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dnpgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dnpgettext_xs.t
new file mode 100644
index 0000000..df9c0cc
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dnpgettext_xs.t
@@ -0,0 +1,144 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 95;
+
+use Locale::Messages qw (bindtextdomain dnpgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dnpgettext (not_here => $context3, $strings3[0], $strings3[1], $_);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = dnpgettext (not_here => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dnpgettext (existing => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 9) {
+ my $translation = dnpgettext (existing => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $expected, $translation;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+for (0 .. 9) {
+ my $translation = dnpgettext (additional => $context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = dnpgettext (additional => $context, $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03dpgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03dpgettext_pp.t
new file mode 100644
index 0000000..7483c82
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dpgettext_pp.t
@@ -0,0 +1,73 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 9;
+
+use Locale::Messages qw (bindtextdomain gettext dgettext dpgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+# make sure dgettext and dpgettext return diff values
+ok dgettext (existing => 'View'), 'Anzeigen';
+ok dpgettext (existing => 'Which folder would you like to view?', 'View'), 'Ansicht';
+ok dpgettext (existing => 'none', 'Not translated'), 'Not translated';
+
+ok dpgettext (additional => 'Context', 'Another View'), 'Ein weiterer Blick';
+ok dpgettext (additional => 'none', 'Not translated'), 'Not translated';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03dpgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03dpgettext_xs.t
new file mode 100644
index 0000000..7483c82
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03dpgettext_xs.t
@@ -0,0 +1,73 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 9;
+
+use Locale::Messages qw (bindtextdomain gettext dgettext dpgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^/\\]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain existing => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+$bound_dir = bindtextdomain additional => $locale_dir;
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+# make sure dgettext and dpgettext return diff values
+ok dgettext (existing => 'View'), 'Anzeigen';
+ok dpgettext (existing => 'Which folder would you like to view?', 'View'), 'Ansicht';
+ok dpgettext (existing => 'none', 'Not translated'), 'Not translated';
+
+ok dpgettext (additional => 'Context', 'Another View'), 'Ein weiterer Blick';
+ok dpgettext (additional => 'none', 'Not translated'), 'Not translated';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03gettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03gettext_pp.t
new file mode 100644
index 0000000..f8dfcde
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03gettext_pp.t
@@ -0,0 +1,91 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 8;
+
+use Locale::Messages qw (bindtextdomain textdomain gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Default case.
+ok gettext ('December'), 'Dezember';
+
+# msgid eq msgstr.
+ok gettext ('September'), 'September';
+
+# Unknown.
+ok gettext ('Not translated'), 'Not translated';
+
+# Special translation for Austrian German.
+skip $missing_locale, gettext ('January'), 'Jnner';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03gettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03gettext_xs.t
new file mode 100644
index 0000000..f8dfcde
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03gettext_xs.t
@@ -0,0 +1,91 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 8;
+
+use Locale::Messages qw (bindtextdomain textdomain gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Default case.
+ok gettext ('December'), 'Dezember';
+
+# msgid eq msgstr.
+ok gettext ('September'), 'September';
+
+# Unknown.
+ok gettext ('Not translated'), 'Not translated';
+
+# Special translation for Austrian German.
+skip $missing_locale, gettext ('January'), 'Jnner';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03language_pp.t b/tp/maintain/lib/libintl-perl/tests/03language_pp.t
new file mode 100644
index 0000000..f69ae6b
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03language_pp.t
@@ -0,0 +1,90 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 6;
+
+use Locale::Messages qw (bindtextdomain textdomain gettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ # The xs version of this test is omitted on purpose. We can
+ # only test it when the locale de and de_AT are installed, but
+ # checking for them will spoil our results.
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+# Actually both de_AT and de are required. We assume here that
+# de will be installed, too, if de_AT is. This test does not
+# use Locale::Util::set_locale() for setting the locale, and
+# that is on purpose.
+my $missing_locale = POSIX::setlocale (POSIX::LC_ALL() => '') ?
+ '' : 'locale de_AT missing';
+POSIX::setlocale (POSIX::LC_ALL() => 'C');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANG=whatever");
+Locale::Messages::nl_putenv ("LC_ALL=whatever");
+Locale::Messages::nl_putenv ("LC_MESSAGES=whatever");
+Locale::Messages::nl_putenv ("LANGUAGE=ab_CD:ef_GH:de_AT:de");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+POSIX::setlocale (POSIX::LC_ALL(), '');
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Austrian German has precedence.
+skip $missing_locale, gettext ('January'), 'Jnner';
+my $translation = gettext ('January');
+
+Locale::Messages::nl_putenv ("LANGUAGE=ab_CD:ef_GH:de:de_AT");
+ok gettext ('February'), 'Februar'; # not 'Feber'!
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03ngettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03ngettext_pp.t
new file mode 100644
index 0000000..ba41a35
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03ngettext_pp.t
@@ -0,0 +1,155 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 88;
+
+use Locale::Messages qw (bindtextdomain textdomain ngettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+textdomain 'not_here';
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain && $textdomain eq $bound_domain;
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+ ok $translation, $expected;
+}
+
+$textdomain = 'additional';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+$bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03ngettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03ngettext_xs.t
new file mode 100644
index 0000000..ba41a35
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03ngettext_xs.t
@@ -0,0 +1,155 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 88;
+
+use Locale::Messages qw (bindtextdomain textdomain ngettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+textdomain 'not_here';
+
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($locale_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain && $textdomain eq $bound_domain;
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = 'locale de_AT missing';
+my $setlocale = POSIX::setlocale (POSIX::LC_ALL() => '');
+if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+} else {
+ require Locale::Util;
+
+ $setlocale = Locale::Util::set_locale (POSIX::LC_ALL(), 'de', 'AT');
+ if ($setlocale && $setlocale =~ /(?:austria|at)/i) {
+ $missing_locale = '';
+ }
+}
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl' : 'Mehrzahl';
+ ok $translation, $expected;
+}
+
+$textdomain = 'additional';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+$bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => $setlocale) unless $missing_locale;
+
+for (0 .. 40) {
+ my $translation = ngettext ($strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus $plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03npgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03npgettext_pp.t
new file mode 100644
index 0000000..0ec2d0a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03npgettext_pp.t
@@ -0,0 +1,157 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 99;
+
+use Locale::Messages qw (bindtextdomain textdomain npgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+textdomain 'not_here';
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = npgettext ($context3, $strings3[0], $strings3[1], $_);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+my $missing_locale = POSIX::setlocale (POSIX::LC_ALL() => '') ?
+ '' : 'locale de_AT missing';
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $translation, $expected;
+}
+
+$textdomain = 'additional';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+$bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03npgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03npgettext_xs.t
new file mode 100644
index 0000000..0ec2d0a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03npgettext_xs.t
@@ -0,0 +1,157 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 99;
+
+use Locale::Messages qw (bindtextdomain textdomain npgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+bindtextdomain not_here => $locale_dir;
+textdomain 'not_here';
+
+# make sure it works with distinct key (where context doesn't matter)
+my $context3 = "Context here (3)";
+my @strings3 = ("Singular 3", "Plural 3");
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = npgettext ($context3, $strings3[0], $strings3[1], $_);
+ my $expected = $_ == 1 ? 'Singular 3' : 'Plural 3';
+ ok $translation, $expected;
+}
+
+# not try a msgid that matches existing one
+my $context = "Context here (2)";
+my @strings = qw (Singular Plural);
+for (0 .. 9) {
+ # Prototype checking fails here if you pass the list @strings.
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+my $missing_locale = POSIX::setlocale (POSIX::LC_ALL() => '') ?
+ '' : 'locale de_AT missing';
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Einzahl 2' : 'Mehrzahl 2';
+ ok $translation, $expected;
+}
+
+$textdomain = 'additional';
+Locale::Messages::nl_putenv ("LANGUAGE=C");
+Locale::Messages::nl_putenv ("LC_ALL=C");
+Locale::Messages::nl_putenv ("LANG=C");
+Locale::Messages::nl_putenv ("LC_MESSAGES=C");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+$bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+$bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+for (0 .. 9) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $expected = $_ == 1 ? 'Singular' : 'Plural';
+ ok $translation, $expected;
+}
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+POSIX::setlocale (POSIX::LC_ALL() => '');
+
+for (0 .. 40) {
+ my $translation = npgettext ($context, $strings[0], $strings[1], $_);
+ my $plural = ($_ == 1 ? 0 :
+ $_ % 10 == 2 ? 1 :
+ $_ % 10 == 3 || $_ %10 == 4 ? 2 : 3);
+ ok $translation, "Numerus 2:$plural";
+}
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
+
diff --git a/tp/maintain/lib/libintl-perl/tests/03pgettext_pp.t b/tp/maintain/lib/libintl-perl/tests/03pgettext_pp.t
new file mode 100644
index 0000000..65cc427
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03pgettext_pp.t
@@ -0,0 +1,78 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 8;
+
+use Locale::Messages qw (bindtextdomain textdomain gettext pgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Default case.
+ok gettext ('View'), 'Anzeigen';
+
+# Default context case.
+ok pgettext ('Which folder would you like to view?','View'), 'Ansicht';
+
+# msgid eq msgstr.
+ok pgettext ('Which folder would you like to view? (2)','View'), 'View 2';
+
+# Unknown.
+ok pgettext ('none', 'Not translated'), 'Not translated';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03pgettext_xs.t b/tp/maintain/lib/libintl-perl/tests/03pgettext_xs.t
new file mode 100644
index 0000000..65cc427
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03pgettext_xs.t
@@ -0,0 +1,78 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 8;
+
+use Locale::Messages qw (bindtextdomain textdomain gettext pgettext);
+require POSIX;
+require File::Spec;
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $locale_dir = $0;
+$locale_dir =~ s,[^\\/]+$,, or $locale_dir = '.';
+$locale_dir .= '/LocaleData';
+
+my $textdomain = 'existing';
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+my $bound_dir = bindtextdomain $textdomain => $locale_dir;
+
+ok defined $bound_dir;
+ok (File::Spec->catdir ($bound_dir), File::Spec->catdir ($bound_dir));
+
+my $bound_domain = textdomain $textdomain;
+
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+# Default case.
+ok gettext ('View'), 'Anzeigen';
+
+# Default context case.
+ok pgettext ('Which folder would you like to view?','View'), 'Ansicht';
+
+# msgid eq msgstr.
+ok pgettext ('Which folder would you like to view? (2)','View'), 'View 2';
+
+# Unknown.
+ok pgettext ('none', 'Not translated'), 'Not translated';
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03textdomain_pp.t b/tp/maintain/lib/libintl-perl/tests/03textdomain_pp.t
new file mode 100644
index 0000000..5fef14a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03textdomain_pp.t
@@ -0,0 +1,53 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 4;
+
+use Locale::Messages qw (textdomain);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $textdomain = '';
+my $bound_domain = textdomain '';
+ok defined $bound_domain;
+ok $bound_domain, 'messages';
+
+$textdomain = 'existing';
+$bound_domain = textdomain $textdomain;
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/03textdomain_xs.t b/tp/maintain/lib/libintl-perl/tests/03textdomain_xs.t
new file mode 100644
index 0000000..5fef14a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/03textdomain_xs.t
@@ -0,0 +1,53 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 4;
+
+use Locale::Messages qw (textdomain);
+
+BEGIN {
+ my $package;
+ if ($0 =~ /_pp\.t$/) {
+ $package = 'gettext_pp';
+ } else {
+ $package = 'gettext_xs';
+ }
+
+ my $selected = Locale::Messages->select_package ($package);
+ if ($selected ne $package && 'gettext_xs' eq $package) {
+ print "1..0 # Skip: Locale::$package not available here.\n";
+ exit 0;
+ }
+ plan tests => NUM_TESTS;
+}
+
+my $textdomain = '';
+my $bound_domain = textdomain '';
+ok defined $bound_domain;
+ok $bound_domain, 'messages';
+
+$textdomain = 'existing';
+$bound_domain = textdomain $textdomain;
+ok defined $bound_domain;
+ok $bound_domain, $textdomain;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/04find_domain_bug.t b/tp/maintain/lib/libintl-perl/tests/04find_domain_bug.t
new file mode 100644
index 0000000..87f05c0
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/04find_domain_bug.t
@@ -0,0 +1,75 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 2;
+
+use Locale::Messages;
+use POSIX;
+
+BEGIN {
+ plan tests => NUM_TESTS;
+}
+
+# Jan Kratochvil described the following bug: When using any functions
+# from Locale::TextDomain with a locale setting for a language that
+# has no message catalog installed, __find_domain() from Locale::TextDomain
+# will never look into the directories "LocaleData" again. It
+# tries to bindtextdomain() to all search directories, and when it
+# fails to find a translation for the emtpy string (should always be
+# present), it will assume that this directory is not the one holding
+# the mo files.
+#
+# This can actually only happen, when you switch languages behind the
+# user's back. Fixed by checking for the presence of _any_ (g)mo file
+# in the relevant directories.
+BEGIN {
+ # Force language that is not supported.
+ Locale::Messages::nl_putenv ("LANGUAGE=en_US");
+ Locale::Messages::nl_putenv ("LC_ALL=en_US");
+ Locale::Messages::nl_putenv ("LANG=en_US");
+ Locale::Messages::nl_putenv ("LC_MESSAGES=en_US");
+ Locale::Messages::nl_putenv ("OUTPUT_CHARSET=iso-8859-1");
+
+ POSIX::setlocale (POSIX::LC_ALL() => '');
+}
+
+# Make sure that LocaleData/ can befound.
+BEGIN {
+ unshift @INC, $1 if $0 =~ m#(.*)[\\\/]#;
+}
+use Locale::TextDomain ('existing');
+
+ok "February" eq __"February";
+
+Locale::Messages::nl_putenv ("LANGUAGE=de_AT");
+Locale::Messages::nl_putenv ("LC_ALL=de_AT");
+Locale::Messages::nl_putenv ("LANG=de_AT");
+Locale::Messages::nl_putenv ("LC_MESSAGES=de_AT");
+
+my $missing_locale = POSIX::setlocale (POSIX::LC_ALL() => '') ?
+ '' : 'locale de_AT missing';
+
+my $locale = POSIX::setlocale (POSIX::LC_ALL() => '');
+my $translation = Locale::TextDomain::__("February");
+skip $missing_locale, "Feber" eq $translation;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/04scalar_noop.t b/tp/maintain/lib/libintl-perl/tests/04scalar_noop.t
new file mode 100644
index 0000000..9fb9b15
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/04scalar_noop.t
@@ -0,0 +1,54 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 5;
+
+use Locale::TextDomain;
+use POSIX;
+
+BEGIN {
+ plan tests => NUM_TESTS;
+}
+
+# When called in scalar context, N__() should return its argument,
+# not a list. On the other hand, the other noop functions should
+# simply returns their arguments, see
+# https://rt.cpan.org/Ticket/Display.html?id=46471 for more.
+
+my $scalar;
+
+$scalar = scalar N__"foobar";
+ok 'foobar' eq $scalar;
+
+($scalar) = scalar N__"foobar";
+ok 'foobar' eq $scalar;
+
+$scalar = scalar N__n"one", "two", 4;
+ok 3 eq $scalar;
+
+$scalar = scalar N__p"ctx", "foobar";
+ok 2 eq $scalar;
+
+$scalar = scalar N__np"ctx", "one", "two", 5;
+ok 4 eq $scalar;
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/05parse_accept.t b/tp/maintain/lib/libintl-perl/tests/05parse_accept.t
new file mode 100644
index 0000000..90a826e
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/05parse_accept.t
@@ -0,0 +1,55 @@
+#! /usr/local/bin/perl -w
+
+# vim: syntax=perl
+# vim: tabstop=4
+
+use strict;
+
+use Test;
+
+use constant NUM_TESTS => 4;
+
+use Locale::Util qw (parse_http_accept_language parse_http_accept_charset);
+
+BEGIN {
+ plan tests => NUM_TESTS;
+}
+
+my ($string, @items, $items);
+
+$string = "baz; q=0.1, foo, bar; q=0.7";
+@items = parse_http_accept_language $string;
+$items = join '|', @items;
+ok $items, "foo|bar|baz";
+
+# Illegal language identifiers should be filtered out.
+$string = "baz; q=0.1, illegal4this, foo, bar; q=0.7";
+@items = parse_http_accept_language $string;
+$items = join '|', @items;
+ok $items, "foo|bar|baz";
+
+# The catch-all language is C.
+$string = "baz; q=0.1, *; q=0.05, foo, bar; q=0.7";
+@items = parse_http_accept_language $string;
+$items = join '|', @items;
+ok $items, "foo|bar|baz|C";
+
+$string = "baz; q=0.1, foo, bar; q=0.7";
+@items = parse_http_accept_charset $string;
+$items = join '|', @items;
+ok $items, "foo|bar|baz";
+
+__END__
+
+Local Variables:
+mode: perl
+perl-indent-level: 4
+perl-continued-statement-offset: 4
+perl-continued-brace-offset: 0
+perl-brace-offset: -4
+perl-brace-imaginary-offset: 0
+perl-label-offset: -4
+cperl-indent-level: 4
+cperl-continued-statement-offset: 2
+tab-width: 4
+End:
diff --git a/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/additional.mo b/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/additional.mo
new file mode 100644
index 0000000..123d188
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/additional.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/existing.mo b/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/existing.mo
new file mode 100644
index 0000000..8da9288
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/LocaleData/de/LC_MESSAGES/existing.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/additional.mo b/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/additional.mo
new file mode 100644
index 0000000..d555a74
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/additional.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/existing.mo b/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/existing.mo
new file mode 100644
index 0000000..e6cfda3
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/LocaleData/de_AT/LC_MESSAGES/existing.mo
Binary files differ
diff --git a/tp/maintain/lib/libintl-perl/tests/po/Makefile b/tp/maintain/lib/libintl-perl/tests/po/Makefile
new file mode 100644
index 0000000..bd71076
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/po/Makefile
@@ -0,0 +1,47 @@
+# Makefile for various po files. This Makefile is intended for the
+# maintainer. No problem if you cannot run it on your system.
+
+srcdir = .
+top_srcdir = ..
+
+LINGUAS = de de_AT
+PACKAGES = existing additional
+
+#CATALOGS = $(addsuffix .po, LINGUAS)
+CATALOGS = $(LINGUAS)
+MO_FILES = $(foreach pkg,$(PACKAGES), $(addprefix $(pkg)., $(addsuffix .mo, $(LINGUAS))))
+
+MSGMERGE = msgmerge
+MSGFMT = msgfmt
+CATOBJEXT = .po
+
+all: default
+
+default: install
+
+install: $(MO_FILES)
+ cd $(srcdir); \
+ targetdir='$(top_srcdir)/LocaleData'; \
+ languages='$(LINGUAS)'; \
+ packages='$(PACKAGES)'; \
+ for package in $$packages; do \
+ for lang in $$languages; do \
+ dest="$$targetdir/$$lang/LC_MESSAGES/$$package.mo"; \
+ cat="$$package.$$lang.mo"; \
+ echo "installing $$cat as $$dest"; \
+ cp -f $$cat $$dest && chmod 644 $$dest || exit 1; \
+ done; \
+ done
+
+update-mo: $(MO_FILES)
+ @echo "MO-FILES: $(MO_FILES)"
+
+clean:
+ rm -f $(MO_FILES) *~
+
+.SUFFIXES:
+.SUFFIXES: .po .mo
+
+.po.mo:
+ $(MSGFMT) --check --statistics --verbose -o $@ $<
+
diff --git a/tp/maintain/lib/libintl-perl/tests/po/additional.de.po b/tp/maintain/lib/libintl-perl/tests/po/additional.de.po
new file mode 100644
index 0000000..c739c5c
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/po/additional.de.po
@@ -0,0 +1,58 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: libintl-perl-text 0.01\n"
+"POT-Creation-Date: 2002-07-13 11:47+02:00\n"
+"PO-Revision-Date: 1999-02-16 21:14+01:00\n"
+"Last-Translator: Guido Flohr <guido@imperia.net>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==2 ? 1 : n%10==3 || n%"
+"10==4 ? 2 : 3);\n"
+
+# The Plural-Forms header is wrong on purpose. It is in fact the correct
+# setting for Slovenian, but we abuse it here for testing ngettext and
+# friends.
+msgid "Singular"
+msgid_plural "Plural"
+msgstr[0] "Numerus 0"
+msgstr[1] "Numerus 1"
+msgstr[2] "Numerus 2"
+msgstr[3] "Numerus 3"
+
+msgctxt "Context here (2)"
+msgid "Singular"
+msgid_plural "Plural"
+msgstr[0] "Numerus 2:0"
+msgstr[1] "Numerus 2:1"
+msgstr[2] "Numerus 2:2"
+msgstr[3] "Numerus 2:3"
+
+msgid "Sunday"
+msgstr "Sonntag"
+
+msgid "Monday"
+msgstr "Montag"
+
+msgid "Tuesday"
+msgstr "Dienstag"
+
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+msgid "Thursday"
+msgstr "Donnerstag"
+
+msgid "Friday"
+msgstr "Freitag"
+
+msgid "Saturday"
+msgstr "Samstag"
+
+msgid "Another View"
+msgstr "Eine andere Ansicht ohne Kontext"
+
+msgctxt "Context"
+msgid "Another View"
+msgstr "Eine andere Ansicht mit Kontext"
diff --git a/tp/maintain/lib/libintl-perl/tests/po/additional.de_AT.po b/tp/maintain/lib/libintl-perl/tests/po/additional.de_AT.po
new file mode 100644
index 0000000..f26e08a
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/po/additional.de_AT.po
@@ -0,0 +1,16 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: libintl-perl-text 0.01\n"
+"POT-Creation-Date: 2002-07-13 11:47+02:00\n"
+"PO-Revision-Date: 1999-02-16 21:14+01:00\n"
+"Last-Translator: Guido Flohr <guido@imperia.net>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==2 ? 1 : n%10==3 || n%"
+"10==4 ? 2 : 3);\n"
+
+msgid "Saturday"
+msgstr "Sonnabend"
+
diff --git a/tp/maintain/lib/libintl-perl/tests/po/existing.de.po b/tp/maintain/lib/libintl-perl/tests/po/existing.de.po
new file mode 100644
index 0000000..53a67e2
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/po/existing.de.po
@@ -0,0 +1,76 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: libintl-perl-text 1.12\n"
+"POT-Creation-Date: 2002-07-13 11:47+02:00\n"
+"PO-Revision-Date: 2005-08-10 19:02+03:00\n"
+"Last-Translator: Guido Flohr <guido@imperia.net>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Singular"
+msgid_plural "Plural"
+msgstr[0] "Einzahl"
+msgstr[1] "Mehrzahl"
+
+msgid "January"
+msgstr "Januar"
+
+msgid "February"
+msgstr "Februar"
+
+msgid "March"
+msgstr "März"
+
+msgid "April"
+msgstr "April"
+
+msgid "May"
+msgstr "Mai"
+
+msgid "June"
+msgstr "Juni"
+
+msgid "July"
+msgstr "Juli"
+
+msgid "August"
+msgstr "August"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "Oktober"
+
+msgid "November"
+msgstr "November"
+
+msgid "December"
+msgstr "Dezember"
+
+msgid "View"
+msgstr "Anzeigen"
+
+msgctxt "Which folder would you like to view?"
+msgid "View"
+msgstr "Ansicht"
+
+msgctxt "Which folder would you like to view? (2)"
+msgid "View"
+msgstr "View 2"
+
+msgctxt "Context here (2)"
+msgid "Singular"
+msgid_plural "Plural"
+msgstr[0] "Einzahl 2"
+msgstr[1] "Mehrzahl 2"
+
+msgctxt "Context here (3)"
+msgid "Singular 3"
+msgid_plural "Plural 3"
+msgstr[0] "Einzahl 3"
+msgstr[1] "Mehrzahl 3"
+
diff --git a/tp/maintain/lib/libintl-perl/tests/po/existing.de_AT.po b/tp/maintain/lib/libintl-perl/tests/po/existing.de_AT.po
new file mode 100644
index 0000000..452b47d
--- /dev/null
+++ b/tp/maintain/lib/libintl-perl/tests/po/existing.de_AT.po
@@ -0,0 +1,16 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: libintl-perl-text 1.12\n"
+"POT-Creation-Date: 2002-07-13 11:47+02:00\n"
+"PO-Revision-Date: 2005-08-10 19:01+03:00\n"
+"Last-Translator: Guido Flohr <guido@imperia.net>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "January"
+msgstr "Jnner"
+
+msgid "February"
+msgstr "Feber"
diff --git a/tp/maintain/prepare_perl_module_files.sh b/tp/maintain/prepare_perl_module_files.sh
new file mode 100755
index 0000000..a5ca79a
--- /dev/null
+++ b/tp/maintain/prepare_perl_module_files.sh
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+set -e
+
+# Regenerate files required for perl
+
+./maintain/change_perl_modules_version.sh auto
+
+# This regenerate files in t/include_dir/
+make
+PACKAGE=`grep '^PACKAGE = ' Makefile | sed 's/^PACKAGE = //'`
+if test z"$PACKAGE" = 'z' ; then
+ exit 1
+fi
+# LocaleData are also generated through Makefile.docstr. Here we want
+# them to be generated by the Makefile in po*/ to test that it works.
+rm -rf LocaleData
+
+for dir in po po_document; do
+ rm -rf $dir
+ mkdir $dir
+ cp maintain/Makefile_perl_po $dir/Makefile
+ grep '^tp\/' ../$dir/POTFILES.in | sed -e 's/^tp/../' > $dir/POTFILES.in
+ echo "# File automatically generated from texinfo files"
+ echo "PACKAGE = $PACKAGE" > $dir/PACKAGE
+ cat ../$dir/Makevars >> $dir/PACKAGE
+ linguas_str=
+ for lingua in `cat ../$dir/LINGUAS`; do
+ linguas_str="$linguas_str $lingua"
+ cp -p ../$dir/$lingua.po $dir
+ done
+ echo "LINGUAS = $linguas_str" >> $dir/PACKAGE
+
+ (cd $dir && make all && make clean)
+done
+
+find LocaleData po_document po t/include_dir -type f | sort > maintain/MANIFEST_generated_files
+make MANIFEST
+cp -p ../COPYING .
+sed 's/\(my \$hardcoded_version = \).*/\1 undef;/' texi2any.pl > texi2any
+chmod a+x texi2any
+touch -r texi2any.pl texi2any
+
diff --git a/tp/maintain/prepare_perl_standalone_module_archive.sh b/tp/maintain/prepare_perl_standalone_module_archive.sh
new file mode 100755
index 0000000..faf7d42
--- /dev/null
+++ b/tp/maintain/prepare_perl_standalone_module_archive.sh
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+# Make sure that we start with the automake generated Makefile
+(cd ../ && ./config.status)
+./maintain/prepare_perl_module_files.sh
+
+VERSION=`grep '^VERSION = ' Makefile | sed 's/^VERSION = *//'`
+[ z"$VERSION" = 'z' ] && exit 1
+perl Makefile.PL NO_MYMETA=1
+rm -f Texinfo-$VERSION.tar.gz
+make && make dist
+tar xzvf Texinfo-$VERSION.tar.gz
+(cd Texinfo-$VERSION/ && perl Makefile.PL && make && make test && \
+ ./maintain/all_tests.sh clean && make distcheck) || exit 1
+rm -rf Texinfo-$VERSION/
+
+./maintain/clean_perl_module_files.sh
diff --git a/tp/maintain/regenerate_cmd_tests.sh b/tp/maintain/regenerate_cmd_tests.sh
new file mode 100755
index 0000000..2fa16b1
--- /dev/null
+++ b/tp/maintain/regenerate_cmd_tests.sh
@@ -0,0 +1,164 @@
+#! /bin/sh
+# $Id: regenerate_cmd_tests.sh 5238 2013-03-14 23:22:01Z karl $
+# Use information from test driving files to regenerate test scripts
+# that run only one test, and file lists to be use in Makefiles.
+#
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Originally written by Patrice Dumas.
+
+#set -x
+
+test_file='tests-parser.txt'
+test_scripts_dir='test_scripts'
+
+test -d $test_scripts_dir || mkdir $test_scripts_dir
+
+dir=`echo $0 | sed 's,/[^/]*$,,'`
+outfile=$1
+shift
+
+while test z"$1" = 'z-base' -o z"$1" = 'z-long' -o z"$1" = 'z-tex_html'; do
+ if test z"$1" = 'z-base'; then
+ base_test_dirs=$2
+ elif test z"$1" = 'z-long'; then
+ long_test_dirs=$2
+ elif test z"$1" = 'z-tex_html'; then
+ tex_html_test_dirs=$2
+ else
+ echo "$0: Bad args" 1>&2
+ exit 1
+ fi
+ shift
+ shift
+done
+
+
+(
+cd "$dir/../tests" || exit 1
+
+test_driving_files='test_driving_files_generated_list ='
+one_test_files='one_test_files_generated_list = '
+
+gather_tests() {
+type=$1
+shift
+test_dirs=$1
+for test_dir in $test_dirs; do
+ driving_file=$test_dir/tests-parser.txt
+ if test -f $driving_file; then
+ test_driving_files="$test_driving_files $driving_file"
+ while read line
+ do
+ if echo $line | grep -qs '^ *#'; then continue; fi
+# there are better ways
+ name=`echo $line | awk '{print $1}'`
+ arg=$name
+ file=`echo $line | awk '{print $2}'`
+ remaining=`echo $line | sed 's/[a-zA-Z0-9_./-]* *[a-zA-Z0-9_./-]* *//'`
+ test "z$name" = 'z' -o "$zfile" = 'z' && continue
+ basename=`basename $file .texi`
+ if test "z$name" = 'ztexi' ; then
+ name="texi_${basename}"
+ arg="texi ${basename}.texi"
+ fi
+ one_test_file="$test_scripts_dir/${test_dir}_$name.sh"
+ one_test_files="$one_test_files \\
+ $one_test_file"
+ echo '#! /bin/sh
+
+if test z"$srcdir" = "z"; then
+ srcdir=.
+fi
+
+command=run_parser_all.sh
+one_test_logs_dir=test_log
+diffs_dir=diffs
+
+' > $one_test_file
+ if test $type = 'base'; then
+ echo '
+if test "z$LONG_TESTS" = z"yes"; then
+ echo "Skipping short tests because we are only doing long tests"
+ exit 77
+fi' >> $one_test_file
+ elif test $type = 'long'; then
+ echo '
+if test "z$LONG_TESTS" != z"yes" && test "z$ALL_TESTS" != z"yes"; then
+ echo "Skipping long tests that take a lot of time to run"
+ exit 77
+fi
+
+if test "z$TEX_HTML_TESTS" = z"yes"; then
+ echo "Skipping long tests, only doing HTML TeX tests"
+ exit 77
+fi
+' >> $one_test_file
+ elif test $type = 'tex_html'; then
+ echo '
+if test "z$TEX_HTML_TESTS" != z"yes"; then
+ echo "Skipping HTML TeX tests that are not easily reproducible"
+ exit 77
+fi
+' >> $one_test_file
+ fi
+ echo "dir=$test_dir
+arg='$arg'
+name='$name'
+"'[ -d "$dir" ] || mkdir $dir
+
+srcdir_test=$dir; export srcdir_test;
+cd "$dir" || exit 99
+../"$srcdir"/"$command" -dir $dir $arg
+exit_status=$?
+cat $one_test_logs_dir/$name.log
+if test -f $diffs_dir/$name.diff; then
+ echo
+ cat $diffs_dir/$name.diff
+fi
+exit $exit_status
+' >> $one_test_file
+ chmod 0755 $one_test_file
+ done < $driving_file
+ else
+ echo "$0: Missing file $driving_file" 1>&2
+ exit 1
+ fi
+done
+}
+
+basefile=`basename $outfile`
+cat >$outfile <<END_HEADER
+# $basefile generated by $0.
+#
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+END_HEADER
+
+gather_tests long "$long_test_dirs"
+gather_tests base "$base_test_dirs"
+gather_tests tex_html "$tex_html_test_dirs"
+
+echo "$test_driving_files
+" >> $outfile
+
+echo "$one_test_files
+" >>$outfile
+
+)
diff --git a/tp/maintain/regenerate_converters_documentation.sh b/tp/maintain/regenerate_converters_documentation.sh
new file mode 100755
index 0000000..e2504e8
--- /dev/null
+++ b/tp/maintain/regenerate_converters_documentation.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+# This file pastes the content of maintain/template.pod at the end of
+# converter modules, with the output format name suitably setup.
+# This file should be run when maintain/template.pod is modified.
+
+for format in HTML TexinfoXML DocBook Info Plaintext; do
+ sed -e '/^__END__/q' Texinfo/Convert/$format.pm > Texinfo/Convert/$format.pm.$$.tmp || exit 1
+ sed "s/OUTFORMAT/$format/g" maintain/template.pod > maintain/$format.pod
+ sed -e "/^__END__/r maintain/$format.pod" Texinfo/Convert/$format.pm.$$.tmp > Texinfo/Convert/$format.pm || exit 1
+ rm -f maintain/$format.pod Texinfo/Convert/$format.pm.$$.tmp
+done
diff --git a/tp/maintain/regenerate_docstr.sh b/tp/maintain/regenerate_docstr.sh
new file mode 100755
index 0000000..da2a088
--- /dev/null
+++ b/tp/maintain/regenerate_docstr.sh
@@ -0,0 +1,60 @@
+#! /bin/sh
+# $Id: regenerate_docstr.sh 5197 2013-02-23 13:06:21Z pertusus $
+# Copyright 2011, 2012, 2013 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Originally written by Patrice Dumas.
+
+dir=`echo $0 | sed 's,/[^/]*$,,'`
+outfile=$1
+
+(
+cd "$dir/.." || exit 1
+
+if test -f ../po_document/LINGUAS; then :; else
+ echo "$0: no ../po_document/LINGUAS, goodbye" 1>&2
+ exit 1
+fi
+
+basefile=`basename $outfile`
+cat >$outfile <<END_HEADER
+# $basefile generated by $0.
+#
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+END_HEADER
+
+for lingua in `cat ../po_document/LINGUAS`; do
+ # Only run by maintainers, so assume GNU make (by using $@ in regular rules).
+ # Just for convenience.
+ echo '
+$(srcdir)/../po_document/'"$lingua.gmo"': $(srcdir)/../po_document/'"$lingua.po"'
+ cd $(srcdir)/../po_document/ && $(MAKE) $(AM_MAKEFLAGS) '"$lingua.gmo"'
+
+LocaleData/'"$lingua"'/LC_MESSAGES/$(document_domain).mo: $(srcdir)/../po_document/'"$lingua"'.gmo
+ $(MKDIR_P) `dirname $@`
+ $(INSTALL_DATA) $(srcdir)/../po_document/'"$lingua"'.gmo $@
+
+' >>$outfile
+
+ dependencies="$dependencies "'LocaleData/'"$lingua"'/LC_MESSAGES/$(document_domain).mo'
+done
+
+echo 'document_strings_mo_files = '"$dependencies" >>$outfile
+)
+
diff --git a/tp/maintain/regenerate_documentlanguages.pl b/tp/maintain/regenerate_documentlanguages.pl
new file mode 100755
index 0000000..5f66d79
--- /dev/null
+++ b/tp/maintain/regenerate_documentlanguages.pl
@@ -0,0 +1,78 @@
+#! /usr/bin/env perl
+
+# regenerate_documentlanguages.pl: download the iana files language
+# and regenerate Texinfo/Documentlanguages.pm list of languages and regions
+#
+# Copyright 2010, 2011, 2012 Free Software Foundation, Inc.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+#
+# Original author: Patrice Dumas <pertusus@free.fr>
+#
+# Calling that script for each release could be a good idea.
+
+use strict;
+
+# emulates -w
+BEGIN
+{
+ $^W = 1;
+}
+
+my $dir = 'maintain';
+system ("cd $dir && wget -N http://www.iana.org/assignments/language-subtag-registry");
+
+open (TXT,"$dir/language-subtag-registry") or die "Open $dir/language-subtag-registry: $!\n";
+
+my $entry;
+my @entries;
+while (<TXT>) {
+ if (/^%%/) {
+ push @entries, $entry if (defined($entry));
+ $entry = undef;
+ } else {
+ if (/^(\w+): (.*)/) {
+ $entry->{$1} = $2;
+ }
+ }
+}
+push @entries, $entry if (defined($entry));
+if (!defined($entry->{'Type'})) {
+ die "Type not defined for $entry ".join('|', keys(%$entry))."\n";
+}
+
+open (OUT, ">Texinfo/Documentlanguages.pm") or die "Open Texinfo/Documentlanguages.pm: $!\n";
+
+print OUT "# This file was automatically generated from $0\n\n";
+
+print OUT "package Texinfo::Documentlanguages;\n\n";
+
+print OUT 'our %language_codes = ('."\n";
+foreach my $entry (@entries)
+{
+ # Scope collection macrolanguage are used
+ if ($entry->{'Type'} eq 'language' and !defined($entry->{'Preferred-Value'})
+ and !defined($entry->{'Macrolanguage'})
+ and (!defined($entry->{'Scope'})
+ or ($entry->{'Scope'} ne 'special'
+ and $entry->{'Scope'} ne 'private-use'))) {
+ print OUT "'$entry->{'Subtag'}' => 1,\n";
+ print STDERR "$entry->{'Subtag'} Scope $entry->{'Scope'}\n"
+ if defined($entry->{'Scope'});
+ }
+}
+print OUT ");\n\n";
+
+print OUT 'our %region_codes = ('."\n";
+foreach my $entry (@entries)
+{
+ if ($entry->{'Type'} eq 'region' and !defined($entry->{'Preferred-Value'})
+ and $entry->{'Description'} ne 'Private use'
+ and $entry->{'Subtag'} !~ /^\d{3}$/) {
+ print OUT "'$entry->{'Subtag'}' => 1,\n";
+ }
+}
+print OUT ");\n\n1;\n";
diff --git a/tp/maintain/regenerate_file_lists.pl b/tp/maintain/regenerate_file_lists.pl
new file mode 100755
index 0000000..2187da7
--- /dev/null
+++ b/tp/maintain/regenerate_file_lists.pl
@@ -0,0 +1,100 @@
+#! /usr/bin/env perl
+# $Id: regenerate_file_lists.pl 5197 2013-02-23 13:06:21Z pertusus $
+# Copyright 2011, 2012 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Originally written by Patrice Dumas.
+
+use strict;
+
+# emulates -w
+BEGIN
+{
+ $^W = 1;
+}
+use File::Find;
+use File::Basename;
+use File::Spec;
+
+my ($command, $mydir, $suffix) = fileparse($0);
+my $parent = File::Spec->catdir($mydir, File::Spec->updir());
+chdir($parent) || die "chdir $parent: $!";
+-d "t" || (die "goodbye, no t directory in " . `pwd`);
+
+my %files;
+find (\&wanted, ('t'));
+sub wanted
+{
+ if ((/\.pl$/ and $File::Find::dir =~ m:^t/results/[^/]+:)
+ or (!/^CVS$/ and !/^\.svn$/
+ and $File::Find::dir =~ m:^t/results/[^/]+/[^/]+/res_[^/]+$:)) {
+ $files{$File::Find::name} = 1;
+ }
+}
+
+my %tap_files;
+find (\&wanted_tap_files, ('t'));
+sub wanted_tap_files
+{
+ if (/\.t$/ and $File::Find::dir =~ /t$/) {
+ $tap_files{$File::Find::name} = 1;
+ }
+}
+
+my %include_files;
+find (\&wanted_include_files, ('t'));
+sub wanted_include_files
+{
+ if (/\.[a-z]+$/ and !/^\.svn$/
+ and $File::Find::dir =~ m:^t/include_reference:) {
+ $include_files{$File::Find::name} = 1;
+ }
+}
+#print STDERR join('|', keys(%include_files))."\n";
+
+open (INCLUDE, '>Makefile.tres') or die "open(>Makefile.tres) failed: $!";
+print INCLUDE <<EOH;
+# Makefile.tres generated by $0.
+#
+# Copyright 2013 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+EOH
+
+print INCLUDE 'test_tap_files_generated_list =';
+foreach my $file (sort(keys(%tap_files))) {
+ print INCLUDE " \\\n $file";
+}
+print INCLUDE "\n\n";
+
+print INCLUDE 'test_files_generated_list = $(test_tap_files_generated_list)';
+foreach my $file (sort(keys(%files)), sort(keys(%include_files))) {
+ print INCLUDE " \\\n $file";
+}
+print INCLUDE "\n\n";
+
+print INCLUDE "t/include_dir:\n".
+ "\t".'$(MKDIR_P) $@'."\n\n";
+my $test_copied_include_files = 'test_copied_include_files =';
+foreach my $include_file (keys(%include_files)) {
+ my $bfile = basename($include_file);
+ $test_copied_include_files .= " t/include_dir/$bfile";
+
+ print INCLUDE "t/include_dir/$bfile: \$(srcdir)/$include_file t/include_dir\n"
+ ."\t".'$(INSTALL_DATA) $(srcdir)/'.$include_file.' $@'."\n\n";
+}
+
+print INCLUDE $test_copied_include_files ."\n\n";
diff --git a/tp/maintain/template.pod b/tp/maintain/template.pod
new file mode 100644
index 0000000..f41bfc5
--- /dev/null
+++ b/tp/maintain/template.pod
@@ -0,0 +1,71 @@
+# Automatically generated from maintain/template.pod
+
+=head1 NAME
+
+Texinfo::Convert::OUTFORMAT - Convert Texinfo tree to OUTFORMAT
+
+=head1 SYNOPSIS
+
+ my $converter
+ = Texinfo::Convert::OUTFORMAT->converter({'parser' => $parser});
+
+ $converter->output($tree);
+
+=head1 DESCRIPTION
+
+Texinfo::Convert::OUTFORMAT converts a Texinfo tree to OUTFORMAT.
+
+=head1 METHODS
+
+=over
+
+=item $converter = Texinfo::Convert::OUTFORMAT->converter($options)
+
+Initialize an OUTFORMAT converter.
+
+The I<$options> hash reference holds options for the converter. In
+this option hash reference a parser object may be associated with the
+I<parser> key. The other options should be configuration options
+described in the Texinfo manual. Those options, when appropriate,
+override the document content.
+
+See L<Texinfo::Convert::Converter> for more informations.
+
+=item $converter->output($tree)
+
+Convert a Texinfo tree I<$tree> and output the result in files as
+described in the Texinfo manual.
+
+=item $result = $converter->convert($tree)
+
+Convert a Texinfo tree I<$tree> or tree portion and return
+the resulting output.
+
+=item $result = $converter->convert_tree($tree)
+
+Convert a Texinfo tree portion I<$tree> and return the resulting
+output. This function do not try to output a full document but only
+portions of document. For a full document use C<convert>.
+
+=item $result = $converter->output_internal_links()
+
+Returns text representing the links in the document. At present the format
+should follow the C<--internal-links> option of texi2any/makeinfo specification
+and this is only relevant for HTML.
+
+=back
+
+=head1 AUTHOR
+
+Patrice Dumas, E<lt>pertusus@free.frE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2012 Free Software Foundation, Inc.
+
+This library is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or (at
+your option) any later version.
+
+=cut