OSDN Git Service

Add VC++ Project files for PuTTY DLL without exported functions.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 25 Oct 2011 13:12:55 +0000 (22:12 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 25 Oct 2011 13:12:55 +0000 (22:12 +0900)
299 files changed:
FFFTP.sln
FFFTP.vc90.sln
FFFTP.vc90.vcproj
FFFTP.vcproj
FFFTP_Eng_Release/FFFTP.exe
FFFTP_English.vc90.vcproj
FFFTP_English.vcproj
Release/FFFTP.exe
putty/BE_ALL.C [new file with mode: 0644]
putty/BE_ALL_S.C [new file with mode: 0644]
putty/BE_NONE.C [new file with mode: 0644]
putty/BE_NOSSH.C [new file with mode: 0644]
putty/BE_NOS_S.C [new file with mode: 0644]
putty/BUILDSCR [new file with mode: 0644]
putty/CHARSET/CHARSET.H [new file with mode: 0644]
putty/CHARSET/ENUM.C [new file with mode: 0644]
putty/CHARSET/FROMUCS.C [new file with mode: 0644]
putty/CHARSET/INTERNAL.H [new file with mode: 0644]
putty/CHARSET/LOCALENC.C [new file with mode: 0644]
putty/CHARSET/MACENC.C [new file with mode: 0644]
putty/CHARSET/MIMEENC.C [new file with mode: 0644]
putty/CHARSET/README [new file with mode: 0644]
putty/CHARSET/SBCS.C [new file with mode: 0644]
putty/CHARSET/SBCS.DAT [new file with mode: 0644]
putty/CHARSET/SBCSDAT.C [new file with mode: 0644]
putty/CHARSET/SBCSGEN.PL [new file with mode: 0644]
putty/CHARSET/SLOOKUP.C [new file with mode: 0644]
putty/CHARSET/TOUCS.C [new file with mode: 0644]
putty/CHARSET/UTF8.C [new file with mode: 0644]
putty/CHARSET/XENC.C [new file with mode: 0644]
putty/CMDGEN.C [new file with mode: 0644]
putty/CMDLINE.C [new file with mode: 0644]
putty/CONFIG.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/MAIN.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/MAKEFILE [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/MALLOC.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/MALLOC.H [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/PTY.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/PTY.H [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/README [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/SEL.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/SEL.H [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/TELNET.C [new file with mode: 0644]
putty/CONTRIB/CYGTERMD/TELNET.H [new file with mode: 0644]
putty/CONTRIB/KH2REG.PY [new file with mode: 0644]
putty/CPROXY.C [new file with mode: 0644]
putty/DIALOG.C [new file with mode: 0644]
putty/DIALOG.H [new file with mode: 0644]
putty/DOC/BLURB.BUT [new file with mode: 0644]
putty/DOC/CHM.BUT [new file with mode: 0644]
putty/DOC/CHM.CSS [new file with mode: 0644]
putty/DOC/CONFIG.BUT [new file with mode: 0644]
putty/DOC/ERRORS.BUT [new file with mode: 0644]
putty/DOC/FAQ.BUT [new file with mode: 0644]
putty/DOC/FEEDBACK.BUT [new file with mode: 0644]
putty/DOC/GS.BUT [new file with mode: 0644]
putty/DOC/INDEX.BUT [new file with mode: 0644]
putty/DOC/INTRO.BUT [new file with mode: 0644]
putty/DOC/LICENCE.BUT [new file with mode: 0644]
putty/DOC/MAKEFILE [new file with mode: 0644]
putty/DOC/MAN-PG.BUT [new file with mode: 0644]
putty/DOC/MAN-PL.BUT [new file with mode: 0644]
putty/DOC/MAN-PSCP.BUT [new file with mode: 0644]
putty/DOC/MAN-PSFT.BUT [new file with mode: 0644]
putty/DOC/MAN-PTEL.BUT [new file with mode: 0644]
putty/DOC/MAN-PTER.BUT [new file with mode: 0644]
putty/DOC/MAN-PUTT.BUT [new file with mode: 0644]
putty/DOC/MANCFG.BUT [new file with mode: 0644]
putty/DOC/MANPAGES.BUT [new file with mode: 0644]
putty/DOC/PAGEANT.BUT [new file with mode: 0644]
putty/DOC/PGPKEYS.BUT [new file with mode: 0644]
putty/DOC/PLINK.BUT [new file with mode: 0644]
putty/DOC/PSCP.BUT [new file with mode: 0644]
putty/DOC/PSFTP.BUT [new file with mode: 0644]
putty/DOC/PUBKEY.BUT [new file with mode: 0644]
putty/DOC/SITE.BUT [new file with mode: 0644]
putty/DOC/SSHNAMES.BUT [new file with mode: 0644]
putty/DOC/UDP.BUT [new file with mode: 0644]
putty/DOC/USING.BUT [new file with mode: 0644]
putty/DOC/VIDS.BUT [new file with mode: 0644]
putty/ICONS/CICON.PL [new file with mode: 0644]
putty/ICONS/ICON.PL [new file with mode: 0644]
putty/ICONS/MAKEFILE [new file with mode: 0644]
putty/ICONS/MKICON.PY [new file with mode: 0644]
putty/IMPORT.C [new file with mode: 0644]
putty/INT64.C [new file with mode: 0644]
putty/INT64.H [new file with mode: 0644]
putty/LDISC.C [new file with mode: 0644]
putty/LDISC.H [new file with mode: 0644]
putty/LDISCUCS.C [new file with mode: 0644]
putty/LICENCE [new file with mode: 0644]
putty/LOGGING.C [new file with mode: 0644]
putty/MACOSX/INFO.PLI [new file with mode: 0644]
putty/MACOSX/MAKEFILE [new file with mode: 0644]
putty/MACOSX/OSX.H [new file with mode: 0644]
putty/MACOSX/OSXCLASS.H [new file with mode: 0644]
putty/MACOSX/OSXCTRLS.M [new file with mode: 0644]
putty/MACOSX/OSXDLG.M [new file with mode: 0644]
putty/MACOSX/OSXMAIN.M [new file with mode: 0644]
putty/MACOSX/OSXSEL.M [new file with mode: 0644]
putty/MACOSX/OSXWIN.M [new file with mode: 0644]
putty/MACOSX/PUTTY.ICN [new file with mode: 0644]
putty/MACOSX/README.OSX [new file with mode: 0644]
putty/MINIBIDI.C [new file with mode: 0644]
putty/MISC.C [new file with mode: 0644]
putty/MISC.H [new file with mode: 0644]
putty/MKAUTO.SH [new file with mode: 0644]
putty/MKFILES.PL [new file with mode: 0644]
putty/MKUNXARC.SH [new file with mode: 0644]
putty/NETWORK.H [new file with mode: 0644]
putty/NOCPROXY.C [new file with mode: 0644]
putty/NOGSS.C [new file with mode: 0644]
putty/NOPRINT.C [new file with mode: 0644]
putty/NOTIMING.C [new file with mode: 0644]
putty/PGSSAPI.C [new file with mode: 0644]
putty/PGSSAPI.H [new file with mode: 0644]
putty/PINGER.C [new file with mode: 0644]
putty/PORTFWD.C [new file with mode: 0644]
putty/PPROXY.C [new file with mode: 0644]
putty/PROXY.C [new file with mode: 0644]
putty/PROXY.H [new file with mode: 0644]
putty/PSCP.C [new file with mode: 0644]
putty/PSFTP.C [new file with mode: 0644]
putty/PSFTP.H [new file with mode: 0644]
putty/PUTTY.H [new file with mode: 0644]
putty/PUTTYMEM.H [new file with mode: 0644]
putty/PUTTYPS.H [new file with mode: 0644]
putty/PuTTY.vc90.vcproj [new file with mode: 0644]
putty/PuTTY.vcproj [new file with mode: 0644]
putty/RAW.C [new file with mode: 0644]
putty/README [new file with mode: 0644]
putty/RECIPE [new file with mode: 0644]
putty/RESOURCE.H [new file with mode: 0644]
putty/RLOGIN.C [new file with mode: 0644]
putty/Release/PuTTY.dll [new file with mode: 0644]
putty/SERCFG.C [new file with mode: 0644]
putty/SETTINGS.C [new file with mode: 0644]
putty/SFTP.C [new file with mode: 0644]
putty/SFTP.H [new file with mode: 0644]
putty/SIGN.SH [new file with mode: 0644]
putty/SSH.C [new file with mode: 0644]
putty/SSH.H [new file with mode: 0644]
putty/SSHAES.C [new file with mode: 0644]
putty/SSHARCF.C [new file with mode: 0644]
putty/SSHBLOWF.C [new file with mode: 0644]
putty/SSHBN.C [new file with mode: 0644]
putty/SSHCRC.C [new file with mode: 0644]
putty/SSHCRCDA.C [new file with mode: 0644]
putty/SSHDES.C [new file with mode: 0644]
putty/SSHDH.C [new file with mode: 0644]
putty/SSHDSS.C [new file with mode: 0644]
putty/SSHDSSG.C [new file with mode: 0644]
putty/SSHGSS.H [new file with mode: 0644]
putty/SSHGSSC.C [new file with mode: 0644]
putty/SSHGSSC.H [new file with mode: 0644]
putty/SSHMD5.C [new file with mode: 0644]
putty/SSHNOGSS.C [new file with mode: 0644]
putty/SSHPRIME.C [new file with mode: 0644]
putty/SSHPUBK.C [new file with mode: 0644]
putty/SSHRAND.C [new file with mode: 0644]
putty/SSHRSA.C [new file with mode: 0644]
putty/SSHRSAG.C [new file with mode: 0644]
putty/SSHSH256.C [new file with mode: 0644]
putty/SSHSH512.C [new file with mode: 0644]
putty/SSHSHA.C [new file with mode: 0644]
putty/SSHZLIB.C [new file with mode: 0644]
putty/STORAGE.H [new file with mode: 0644]
putty/TELNET.C [new file with mode: 0644]
putty/TERMINAL.C [new file with mode: 0644]
putty/TERMINAL.H [new file with mode: 0644]
putty/TESTBACK.C [new file with mode: 0644]
putty/TESTDATA/BIGNUM.PY [new file with mode: 0644]
putty/TESTDATA/COLOURS.TXT [new file with mode: 0644]
putty/TESTDATA/LATTRS.TXT [new file with mode: 0644]
putty/TESTDATA/SCOCOLS.TXT [new file with mode: 0644]
putty/TESTDATA/UTF8.TXT [new file with mode: 0644]
putty/TESTDATA/VT100.TXT [new file with mode: 0644]
putty/TIME.C [new file with mode: 0644]
putty/TIMING.C [new file with mode: 0644]
putty/TREE234.C [new file with mode: 0644]
putty/TREE234.H [new file with mode: 0644]
putty/UNIX/CONFIGUR.AC [new file with mode: 0644]
putty/UNIX/GTKCFG.C [new file with mode: 0644]
putty/UNIX/GTKCOLS.C [new file with mode: 0644]
putty/UNIX/GTKCOLS.H [new file with mode: 0644]
putty/UNIX/GTKDLG.C [new file with mode: 0644]
putty/UNIX/GTKFONT.C [new file with mode: 0644]
putty/UNIX/GTKFONT.H [new file with mode: 0644]
putty/UNIX/GTKWIN.C [new file with mode: 0644]
putty/UNIX/MAKEFILE.GTK [new file with mode: 0644]
putty/UNIX/MAKEFILE.IN [new file with mode: 0644]
putty/UNIX/MAKEFILE.UX [new file with mode: 0644]
putty/UNIX/UNIX.H [new file with mode: 0644]
putty/UNIX/UXAGENTC.C [new file with mode: 0644]
putty/UNIX/UXCFG.C [new file with mode: 0644]
putty/UNIX/UXCONS.C [new file with mode: 0644]
putty/UNIX/UXGEN.C [new file with mode: 0644]
putty/UNIX/UXGSS.C [new file with mode: 0644]
putty/UNIX/UXMISC.C [new file with mode: 0644]
putty/UNIX/UXNET.C [new file with mode: 0644]
putty/UNIX/UXNOISE.C [new file with mode: 0644]
putty/UNIX/UXPLINK.C [new file with mode: 0644]
putty/UNIX/UXPRINT.C [new file with mode: 0644]
putty/UNIX/UXPROXY.C [new file with mode: 0644]
putty/UNIX/UXPTERM.C [new file with mode: 0644]
putty/UNIX/UXPTY.C [new file with mode: 0644]
putty/UNIX/UXPUTTY.C [new file with mode: 0644]
putty/UNIX/UXSEL.C [new file with mode: 0644]
putty/UNIX/UXSER.C [new file with mode: 0644]
putty/UNIX/UXSFTP.C [new file with mode: 0644]
putty/UNIX/UXSIGNAL.C [new file with mode: 0644]
putty/UNIX/UXSTORE.C [new file with mode: 0644]
putty/UNIX/UXUCS.C [new file with mode: 0644]
putty/UNIX/UX_X11.C [new file with mode: 0644]
putty/UNIX/XKEYSYM.C [new file with mode: 0644]
putty/UNIX/XPMPTCFG.C [new file with mode: 0644]
putty/UNIX/XPMPTERM.C [new file with mode: 0644]
putty/UNIX/XPMPUCFG.C [new file with mode: 0644]
putty/UNIX/XPMPUTTY.C [new file with mode: 0644]
putty/VERSION.C [new file with mode: 0644]
putty/WCWIDTH.C [new file with mode: 0644]
putty/WILDCARD.C [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PAGEANT/PAGEANT.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PLINK/PLINK.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PSCP/PSCP.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PSFTP/PSFTP.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PUTTY/PUTTY.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PUTTYGEN/PUTTYGEN.DEV [new file with mode: 0644]
putty/WINDOWS/DEVCPP/PUTTYTEL/PUTTYTEL.DEV [new file with mode: 0644]
putty/WINDOWS/MAKEFILE.BOR [new file with mode: 0644]
putty/WINDOWS/MAKEFILE.CYG [new file with mode: 0644]
putty/WINDOWS/MAKEFILE.LCC [new file with mode: 0644]
putty/WINDOWS/MAKEFILE.VC [new file with mode: 0644]
putty/WINDOWS/MSVC/PAGEANT/PAGEANT.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PLINK/PLINK.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PSCP/PSCP.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PSFTP/PSFTP.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PUTTY.DSW [new file with mode: 0644]
putty/WINDOWS/MSVC/PUTTY/PUTTY.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PUTTYGEN/PUTTYGEN.DSP [new file with mode: 0644]
putty/WINDOWS/MSVC/PUTTYTEL/PUTTYTEL.DSP [new file with mode: 0644]
putty/WINDOWS/PAGEANT.ICO [new file with mode: 0644]
putty/WINDOWS/PAGEANT.MFT [new file with mode: 0644]
putty/WINDOWS/PAGEANT.RC [new file with mode: 0644]
putty/WINDOWS/PAGEANTS.ICO [new file with mode: 0644]
putty/WINDOWS/PLINK.RC [new file with mode: 0644]
putty/WINDOWS/PSCP.ICO [new file with mode: 0644]
putty/WINDOWS/PSCP.RC [new file with mode: 0644]
putty/WINDOWS/PSFTP.RC [new file with mode: 0644]
putty/WINDOWS/PUTTY.ICO [new file with mode: 0644]
putty/WINDOWS/PUTTY.ISS [new file with mode: 0644]
putty/WINDOWS/PUTTY.MFT [new file with mode: 0644]
putty/WINDOWS/PUTTY.RC [new file with mode: 0644]
putty/WINDOWS/PUTTYCFG.ICO [new file with mode: 0644]
putty/WINDOWS/PUTTYGEN.ICO [new file with mode: 0644]
putty/WINDOWS/PUTTYGEN.MFT [new file with mode: 0644]
putty/WINDOWS/PUTTYGEN.RC [new file with mode: 0644]
putty/WINDOWS/PUTTYINS.ICO [new file with mode: 0644]
putty/WINDOWS/PUTTYTEL.RC [new file with mode: 0644]
putty/WINDOWS/RCSTUFF.H [new file with mode: 0644]
putty/WINDOWS/README.TXT [new file with mode: 0644]
putty/WINDOWS/SIZETIP.C [new file with mode: 0644]
putty/WINDOWS/VERSION.RC2 [new file with mode: 0644]
putty/WINDOWS/WEBSITE.URL [new file with mode: 0644]
putty/WINDOWS/WINCFG.C [new file with mode: 0644]
putty/WINDOWS/WINCONS.C [new file with mode: 0644]
putty/WINDOWS/WINCTRLS.C [new file with mode: 0644]
putty/WINDOWS/WINDEFS.C [new file with mode: 0644]
putty/WINDOWS/WINDLG.C [new file with mode: 0644]
putty/WINDOWS/WINDOW.C [new file with mode: 0644]
putty/WINDOWS/WINGSS.C [new file with mode: 0644]
putty/WINDOWS/WINHANDL.C [new file with mode: 0644]
putty/WINDOWS/WINHELP.C [new file with mode: 0644]
putty/WINDOWS/WINHELP.H [new file with mode: 0644]
putty/WINDOWS/WINJUMP.C [new file with mode: 0644]
putty/WINDOWS/WINMISC.C [new file with mode: 0644]
putty/WINDOWS/WINNET.C [new file with mode: 0644]
putty/WINDOWS/WINNOISE.C [new file with mode: 0644]
putty/WINDOWS/WINNOJMP.C [new file with mode: 0644]
putty/WINDOWS/WINPGEN.C [new file with mode: 0644]
putty/WINDOWS/WINPGNT.C [new file with mode: 0644]
putty/WINDOWS/WINPGNTC.C [new file with mode: 0644]
putty/WINDOWS/WINPLINK.C [new file with mode: 0644]
putty/WINDOWS/WINPRINT.C [new file with mode: 0644]
putty/WINDOWS/WINPROXY.C [new file with mode: 0644]
putty/WINDOWS/WINSER.C [new file with mode: 0644]
putty/WINDOWS/WINSFTP.C [new file with mode: 0644]
putty/WINDOWS/WINSTORE.C [new file with mode: 0644]
putty/WINDOWS/WINSTUFF.H [new file with mode: 0644]
putty/WINDOWS/WINTIME.C [new file with mode: 0644]
putty/WINDOWS/WINUCS.C [new file with mode: 0644]
putty/WINDOWS/WINUTILS.C [new file with mode: 0644]
putty/WINDOWS/WINX11.C [new file with mode: 0644]
putty/WINDOWS/WIN_RES.H [new file with mode: 0644]
putty/WINDOWS/WIN_RES.RC2 [new file with mode: 0644]
putty/X11FWD.C [new file with mode: 0644]
putty/dllmain.c [new file with mode: 0644]
putty/stdafx.h [new file with mode: 0644]
putty/targetver.h [new file with mode: 0644]

index 1de1a58..6a7e1a6 100644 (file)
--- a/FFFTP.sln
+++ b/FFFTP.sln
@@ -4,6 +4,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP", "FFFTP.vcproj", "{5
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP_English", "FFFTP_English.vcproj", "{EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}"\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PuTTY", "putty\PuTTY.vc90.vcproj", "{AF1981EB-379B-43B8-BE66-298194297B5C}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Win32 = Debug|Win32\r
@@ -18,6 +20,10 @@ Global
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Debug|Win32.Build.0 = Debug|Win32\r
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Release|Win32.ActiveCfg = Release|Win32\r
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Release|Win32.Build.0 = Release|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Debug|Win32.Build.0 = Debug|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Release|Win32.ActiveCfg = Release|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Release|Win32.Build.0 = Release|Win32\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index f73d409..34ca1c7 100644 (file)
@@ -4,6 +4,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP", "FFFTP.vc90.vcproj"
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FFFTP_English", "FFFTP_English.vc90.vcproj", "{EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}"\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PuTTY", "putty\PuTTY.vc90.vcproj", "{AF1981EB-379B-43B8-BE66-298194297B5C}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Win32 = Debug|Win32\r
@@ -18,6 +20,10 @@ Global
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Debug|Win32.Build.0 = Debug|Win32\r
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Release|Win32.ActiveCfg = Release|Win32\r
                {EE7CC1BD-92A9-46D5-8270-386BD7BEEA55}.Release|Win32.Build.0 = Release|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Debug|Win32.Build.0 = Debug|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Release|Win32.ActiveCfg = Release|Win32\r
+               {AF1981EB-379B-43B8-BE66-298194297B5C}.Release|Win32.Build.0 = Release|Win32\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index 53eb2cb..a479903 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\punycode.c"\r
+                               RelativePath=".\protectprocess.c"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\protectprocess.c"\r
+                               RelativePath=".\punycode.c"\r
                                >\r
                        </File>\r
                        <File\r
index eb47506..d56ef28 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\punycode.c"\r
+                               RelativePath=".\protectprocess.c"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\protectprocess.c"\r
+                               RelativePath=".\punycode.c"\r
                                >\r
                        </File>\r
                        <File\r
index b46c757..9ab70df 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 9d26882..e1d0fb4 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\punycode.c"\r
+                               RelativePath=".\protectprocess.c"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\protectprocess.c"\r
+                               RelativePath=".\punycode.c"\r
                                >\r
                        </File>\r
                        <File\r
index 37259ff..dcdc984 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\punycode.c"\r
+                               RelativePath=".\protectprocess.c"\r
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath=".\protectprocess.c"\r
+                               RelativePath=".\punycode.c"\r
                                >\r
                        </File>\r
                        <File\r
index fb4deb7..303c723 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
diff --git a/putty/BE_ALL.C b/putty/BE_ALL.C
new file mode 100644 (file)
index 0000000..05ba82d
--- /dev/null
@@ -0,0 +1,31 @@
+/*\r
+ * Linking module for PuTTY proper: list the available backends\r
+ * including ssh.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+/*\r
+ * This appname is not strictly in the right place, since Plink\r
+ * also uses this module. However, Plink doesn't currently use any\r
+ * of the dialog-box sorts of things that make use of appname, so\r
+ * it shouldn't do any harm here. I'm trying to avoid having to\r
+ * have tiny little source modules containing nothing but\r
+ * declarations of appname, for as long as I can...\r
+ */\r
+const char *const appname = "PuTTY";\r
+\r
+#ifdef TELNET_DEFAULT\r
+const int be_default_protocol = PROT_TELNET;\r
+#else\r
+const int be_default_protocol = PROT_SSH;\r
+#endif\r
+\r
+Backend *backends[] = {\r
+    &ssh_backend,\r
+    &telnet_backend,\r
+    &rlogin_backend,\r
+    &raw_backend,\r
+    NULL\r
+};\r
diff --git a/putty/BE_ALL_S.C b/putty/BE_ALL_S.C
new file mode 100644 (file)
index 0000000..95891fb
--- /dev/null
@@ -0,0 +1,32 @@
+/*\r
+ * Linking module for PuTTY proper: list the available backends\r
+ * including ssh, plus the serial backend.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+/*\r
+ * This appname is not strictly in the right place, since Plink\r
+ * also uses this module. However, Plink doesn't currently use any\r
+ * of the dialog-box sorts of things that make use of appname, so\r
+ * it shouldn't do any harm here. I'm trying to avoid having to\r
+ * have tiny little source modules containing nothing but\r
+ * declarations of appname, for as long as I can...\r
+ */\r
+const char *const appname = "PuTTY";\r
+\r
+#ifdef TELNET_DEFAULT\r
+const int be_default_protocol = PROT_TELNET;\r
+#else\r
+const int be_default_protocol = PROT_SSH;\r
+#endif\r
+\r
+Backend *backends[] = {\r
+    &ssh_backend,\r
+    &telnet_backend,\r
+    &rlogin_backend,\r
+    &raw_backend,\r
+    &serial_backend,\r
+    NULL\r
+};\r
diff --git a/putty/BE_NONE.C b/putty/BE_NONE.C
new file mode 100644 (file)
index 0000000..95ddbd5
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+ * Linking module for programs that do not support selection of backend\r
+ * (such as pscp or pterm).\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+Backend *backends[] = {\r
+    NULL\r
+};\r
diff --git a/putty/BE_NOSSH.C b/putty/BE_NOSSH.C
new file mode 100644 (file)
index 0000000..e127cd9
--- /dev/null
@@ -0,0 +1,33 @@
+/*\r
+ * Linking module for PuTTYtel: list the available backends not\r
+ * including ssh.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+const int be_default_protocol = PROT_TELNET;\r
+\r
+const char *const appname = "PuTTYtel";\r
+\r
+Backend *backends[] = {\r
+    &telnet_backend,\r
+    &rlogin_backend,\r
+    &raw_backend,\r
+    NULL\r
+};\r
+\r
+/*\r
+ * Stub implementations of functions not used in non-ssh versions.\r
+ */\r
+void random_save_seed(void)\r
+{\r
+}\r
+\r
+void random_destroy_seed(void)\r
+{\r
+}\r
+\r
+void noise_ultralight(unsigned long data)\r
+{\r
+}\r
diff --git a/putty/BE_NOS_S.C b/putty/BE_NOS_S.C
new file mode 100644 (file)
index 0000000..32eb88c
--- /dev/null
@@ -0,0 +1,34 @@
+/*\r
+ * Linking module for PuTTYtel: list the available backends not\r
+ * including ssh.\r
+ */\r
+\r
+#include <stdio.h>\r
+#include "putty.h"\r
+\r
+const int be_default_protocol = PROT_TELNET;\r
+\r
+const char *const appname = "PuTTYtel";\r
+\r
+Backend *backends[] = {\r
+    &telnet_backend,\r
+    &rlogin_backend,\r
+    &raw_backend,\r
+    &serial_backend,\r
+    NULL\r
+};\r
+\r
+/*\r
+ * Stub implementations of functions not used in non-ssh versions.\r
+ */\r
+void random_save_seed(void)\r
+{\r
+}\r
+\r
+void random_destroy_seed(void)\r
+{\r
+}\r
+\r
+void noise_ultralight(unsigned long data)\r
+{\r
+}\r
diff --git a/putty/BUILDSCR b/putty/BUILDSCR
new file mode 100644 (file)
index 0000000..131a734
--- /dev/null
@@ -0,0 +1,118 @@
+# -*- sh -*-\r
+# Build script to construct a full distribution directory of PuTTY.\r
+\r
+module putty\r
+\r
+# Set up the arguments for the main make command.\r
+set Makever -DSVN_REV=$(revision)\r
+ifneq "$(!numeric $(revision))" "yes" set Makever $(Makever) -DMODIFIED\r
+ifneq "$(RELEASE)" "" set Makever $(Makever) -DRELEASE=$(RELEASE)\r
+ifneq "$(date)" "" set Makever $(Makever) -DSNAPSHOT=$(date)\r
+set Makeargs VER="$(Makever)"\r
+ifneq "$(XFLAGS)" "" set Makeargs $(Makeargs) XFLAGS="$(XFLAGS)"\r
+ifneq "$(MAKEARGS)" "" set Makeargs $(Makeargs) $(MAKEARGS)\r
+\r
+# Set up the version string for the docs build.\r
+set Docmakeargs VERSION="PuTTY revision $(revision)"\r
+ifneq "$(RELEASE)" "" set Docmakeargs VERSION="PuTTY release $(RELEASE)"\r
+ifneq "$(date)" "" set Docmakeargs VERSION="PuTTY development snapshot $(date)"\r
+\r
+# Set up the version string for the Unix source archive.\r
+set Unxver r$(revision)\r
+ifneq "$(RELEASE)" "" set Unxver $(RELEASE)\r
+ifneq "$(date)" "" set Unxver $(date)\r
+\r
+# Set up the various version strings for the installer.\r
+set Iversion r$(revision)\r
+set Iname PuTTY revision $(revision)\r
+set Ivertext Revision $(revision)\r
+set Irev $(revision)\r
+set Ifilename putty-$(Iversion)-installer.exe\r
+ifneq "$(RELEASE)" "" set Iversion $(RELEASE)\r
+ifneq "$(RELEASE)" "" set Iname PuTTY version $(RELEASE)\r
+ifneq "$(RELEASE)" "" set Ivertext Release $(RELEASE)\r
+ifneq "$(RELEASE)" "" set Irev 0\r
+ifneq "$(RELEASE)" "" set Ifilename putty-$(RELEASE)-installer.exe\r
+ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
+ifneq "$(date)" "" set Iname PuTTY development snapshot $(date):r$(revision)\r
+ifneq "$(date)" "" set Ivertext Development snapshot $(date):r$(revision)\r
+ifneq "$(date)" "" set Ifilename putty-$(date)-installer.exe\r
+\r
+# Set up the version string for the installer.\r
+set Iversion r$(revision)\r
+ifneq "$(RELEASE)" "" set Iversion $(RELEASE)\r
+ifneq "$(date)" "" set Iversion $(date):r$(revision)\r
+\r
+in putty do ./mksrcarc.sh\r
+in putty do ./mkunxarc.sh $(Unxver)\r
+in putty do perl mkfiles.pl\r
+in putty/doc do make $(Docmakeargs) putty.hlp\r
+in putty/doc do make $(Docmakeargs) chm\r
+\r
+# Munge the installer script locally so that it reports the version\r
+# we're really building.\r
+in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(AppVerName=).*$$/$$1$$a/' '$(Iname)' putty.iss\r
+in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(VersionInfoTextVersion=).*$$/$$1$$a/' '$(Ivertext)' putty.iss\r
+in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;}s/^(AppVersion=).*$$/$$1$$a/' '$(Iversion)' putty.iss\r
+in putty/windows do perl -i~ -pe 'BEGIN{$$a=shift@ARGV;$$a=~s/M//;}s/^(VersionInfoVersion=\d+\.\d+\.)\d+(\.\d+)\r?$$/$$1$$a$$2/' '$(Irev)' putty.iss\r
+\r
+# Windowsify LICENCE, since it's going in the Windows installer.\r
+in putty do perl -i~ -pe 'y/\015//d;s/$$/\015/' LICENCE\r
+\r
+delegate windows\r
+  # FIXME: Cygwin alternative?\r
+  in putty/windows do cmd /c vcvars32 \& nmake -f Makefile.vc $(Makeargs)\r
+  # Ignore exit code from hhc, in favour of seeing whether the .chm\r
+  # file was created. (Yuck; but hhc appears to return non-zero\r
+  # exit codes on whim.)\r
+  in putty/doc do hhc putty.hhp; test -f putty.chm\r
+  in putty/windows do iscc putty.iss\r
+  return putty/windows/*.exe\r
+  return putty/windows/*.map\r
+  return putty/doc/putty.chm\r
+  return putty/windows/Output/setup.exe\r
+enddelegate\r
+in putty/doc do make mostlyclean\r
+in putty/doc do make $(Docmakeargs)\r
+in putty/windows do zip -k -j putty.zip `ls *.exe | grep -v puttytel` ../doc/putty.chm ../doc/putty.hlp ../doc/putty.cnt\r
+in putty/doc do zip puttydoc.zip *.html\r
+\r
+# Deliver the actual PuTTY release directory into a subdir `putty'.\r
+deliver putty/windows/*.exe putty/x86/$@\r
+deliver putty/windows/putty.zip putty/x86/$@\r
+deliver putty/windows/Output/setup.exe putty/x86/$(Ifilename)\r
+deliver putty/doc/puttydoc.zip putty/$@\r
+deliver putty/doc/putty.chm putty/$@\r
+deliver putty/doc/putty.hlp putty/$@\r
+deliver putty/doc/putty.cnt putty/$@\r
+deliver putty/doc/puttydoc.txt putty/$@\r
+deliver putty/doc/*.html putty/htmldoc/$@\r
+deliver putty/putty-src.zip putty/$@\r
+deliver putty/*.tar.gz putty/$@\r
+\r
+# Deliver the map files alongside the `proper' release deliverables.\r
+deliver putty/windows/*.map maps-x86/$@\r
+\r
+# Deliver sign.sh, so that whoever has just built PuTTY (the\r
+# snapshot scripts or me, depending) can conveniently sign it with\r
+# whatever key they want.\r
+deliver putty/sign.sh $@\r
+\r
+# Create files of cryptographic checksums, which will be signed along\r
+# with the files they verify. We've provided MD5 checksums for a\r
+# while, but now MD5 is looking iffy, we're expanding our selection.\r
+#\r
+# Creating these files is most easily done in the destination\r
+# directory, where all the files we're delivering are already in their\r
+# final relative layout.\r
+in-dest putty do a=`\find * -type f -print`; md5sum $$a > md5sums && sha1sum $$a > sha1sums && sha256sum $$a > sha256sums && sha512sum $$a > sha512sums\r
+\r
+# And construct .htaccess files. One in the top-level directory,\r
+# setting the MIME types for Windows help files and providing an\r
+# appropriate link to the source archive:\r
+in-dest putty do echo "AddType application/octet-stream .chm" >> .htaccess\r
+in-dest putty do echo "AddType application/octet-stream .hlp" >> .htaccess\r
+in-dest putty do echo "AddType application/octet-stream .cnt" >> .htaccess\r
+in-dest putty do set -- putty*.tar.gz; for k in '' .DSA .RSA; do echo RedirectMatch temp '(.*/)'putty.tar.gz$$k\$$ '$$1'"$$1$$k" >> .htaccess; done\r
+# And one in the x86 directory, providing a link for the installer.\r
+in-dest putty/x86 do set -- putty*installer.exe; for k in '' .DSA .RSA; do echo RedirectMatch temp '(.*/)'putty-installer.exe$$k\$$ '$$1'"$$1$$k" >> .htaccess; done\r
diff --git a/putty/CHARSET/CHARSET.H b/putty/CHARSET/CHARSET.H
new file mode 100644 (file)
index 0000000..3f7eb34
--- /dev/null
@@ -0,0 +1,154 @@
+/*\r
+ * charset.h - header file for general character set conversion\r
+ * routines.\r
+ */\r
+\r
+#ifndef charset_charset_h\r
+#define charset_charset_h\r
+\r
+#include <stddef.h>\r
+\r
+/*\r
+ * Enumeration that lists all the multibyte or single-byte\r
+ * character sets known to this library.\r
+ */\r
+typedef enum {\r
+    CS_NONE,                          /* used for reporting errors, etc */\r
+    CS_ISO8859_1,\r
+    CS_ISO8859_1_X11,                 /* X font encoding with VT100 glyphs */\r
+    CS_ISO8859_2,\r
+    CS_ISO8859_3,\r
+    CS_ISO8859_4,\r
+    CS_ISO8859_5,\r
+    CS_ISO8859_6,\r
+    CS_ISO8859_7,\r
+    CS_ISO8859_8,\r
+    CS_ISO8859_9,\r
+    CS_ISO8859_10,\r
+    CS_ISO8859_11,\r
+    CS_ISO8859_13,\r
+    CS_ISO8859_14,\r
+    CS_ISO8859_15,\r
+    CS_ISO8859_16,\r
+    CS_CP437,\r
+    CS_CP850,\r
+    CS_CP866,\r
+    CS_CP1250,\r
+    CS_CP1251,\r
+    CS_CP1252,\r
+    CS_CP1253,\r
+    CS_CP1254,\r
+    CS_CP1255,\r
+    CS_CP1256,\r
+    CS_CP1257,\r
+    CS_CP1258,\r
+    CS_KOI8_R,\r
+    CS_KOI8_U,\r
+    CS_MAC_ROMAN,\r
+    CS_MAC_TURKISH,\r
+    CS_MAC_CROATIAN,\r
+    CS_MAC_ICELAND,\r
+    CS_MAC_ROMANIAN,\r
+    CS_MAC_GREEK,\r
+    CS_MAC_CYRILLIC,\r
+    CS_MAC_THAI,\r
+    CS_MAC_CENTEURO,\r
+    CS_MAC_SYMBOL,\r
+    CS_MAC_DINGBATS,\r
+    CS_MAC_ROMAN_OLD,\r
+    CS_MAC_CROATIAN_OLD,\r
+    CS_MAC_ICELAND_OLD,\r
+    CS_MAC_ROMANIAN_OLD,\r
+    CS_MAC_GREEK_OLD,\r
+    CS_MAC_CYRILLIC_OLD,\r
+    CS_MAC_UKRAINE,\r
+    CS_MAC_VT100,\r
+    CS_MAC_VT100_OLD,\r
+    CS_VISCII,\r
+    CS_HP_ROMAN8,\r
+    CS_DEC_MCS,\r
+    CS_UTF8\r
+} charset_t;\r
+\r
+typedef struct {\r
+    unsigned long s0;\r
+} charset_state;\r
+\r
+/*\r
+ * Routine to convert a MB/SB character set to Unicode.\r
+ * \r
+ * This routine accepts some number of bytes, updates a state\r
+ * variable, and outputs some number of Unicode characters. There\r
+ * are no guarantees. You can't even guarantee that at most one\r
+ * Unicode character will be output per byte you feed in; for\r
+ * example, suppose you're reading UTF-8, you've seen E1 80, and\r
+ * then you suddenly see FE. Now you need to output _two_ error\r
+ * characters - one for the incomplete sequence E1 80, and one for\r
+ * the completely invalid UTF-8 byte FE.\r
+ * \r
+ * Returns the number of wide characters output; will never output\r
+ * more than the size of the buffer (as specified on input).\r
+ * Advances the `input' pointer and decrements `inlen', to indicate\r
+ * how far along the input string it got.\r
+ * \r
+ * The sequence of `errlen' wide characters pointed to by `errstr'\r
+ * will be used to indicate a conversion error. If `errstr' is\r
+ * NULL, `errlen' will be ignored, and the library will choose\r
+ * something sensible to do on its own. For Unicode, this will be\r
+ * U+FFFD (REPLACEMENT CHARACTER).\r
+ */\r
+\r
+int charset_to_unicode(char **input, int *inlen, wchar_t *output, int outlen,\r
+                      int charset, charset_state *state,\r
+                      const wchar_t *errstr, int errlen);\r
+\r
+/*\r
+ * Routine to convert Unicode to an MB/SB character set.\r
+ * \r
+ * This routine accepts some number of Unicode characters, updates\r
+ * a state variable, and outputs some number of bytes.\r
+ * \r
+ * Returns the number of bytes characters output; will never output\r
+ * more than the size of the buffer (as specified on input), and\r
+ * will never output a partial MB character. Advances the `input'\r
+ * pointer and decrements `inlen', to indicate how far along the\r
+ * input string it got.\r
+ * \r
+ * The sequence of `errlen' characters pointed to by `errstr' will\r
+ * be used to indicate a conversion error. If `errstr' is NULL,\r
+ * `errlen' will be ignored, and the library will choose something\r
+ * sensible to do on its own (which will vary depending on the\r
+ * output charset).\r
+ */\r
+\r
+int charset_from_unicode(wchar_t **input, int *inlen, char *output, int outlen,\r
+                        int charset, charset_state *state,\r
+                        const char *errstr, int errlen);\r
+\r
+/*\r
+ * Convert X11 encoding names to and from our charset identifiers.\r
+ */\r
+const char *charset_to_xenc(int charset);\r
+int charset_from_xenc(const char *name);\r
+\r
+/*\r
+ * Convert MIME encoding names to and from our charset identifiers.\r
+ */\r
+const char *charset_to_mimeenc(int charset);\r
+int charset_from_mimeenc(const char *name);\r
+\r
+/*\r
+ * Convert our own encoding names to and from our charset\r
+ * identifiers.\r
+ */\r
+const char *charset_to_localenc(int charset);\r
+int charset_from_localenc(const char *name);\r
+int charset_localenc_nth(int n);\r
+\r
+/*\r
+ * Convert Mac OS script/region/font to our charset identifiers.\r
+ */\r
+int charset_from_macenc(int script, int region, int sysvers,\r
+                       const char *fontname);\r
+\r
+#endif /* charset_charset_h */\r
diff --git a/putty/CHARSET/ENUM.C b/putty/CHARSET/ENUM.C
new file mode 100644 (file)
index 0000000..4c559be
--- /dev/null
@@ -0,0 +1,19 @@
+/*\r
+ * enum.c - enumerate all charsets defined by the library.\r
+ * \r
+ * This file maintains a list of every other source file which\r
+ * contains ENUM_CHARSET definitions. It #includes each one with\r
+ * ENUM_CHARSETS defined, which causes those source files to do\r
+ * nothing at all except call the ENUM_CHARSET macro on each\r
+ * charset they define.\r
+ * \r
+ * This file in turn is included from various other places, with\r
+ * the ENUM_CHARSET macro defined to various different things. This\r
+ * allows us to have multiple implementations of the master charset\r
+ * lookup table (a static one and a dynamic one).\r
+ */\r
+\r
+#define ENUM_CHARSETS\r
+#include "sbcsdat.c"\r
+#include "utf8.c"\r
+#undef ENUM_CHARSETS\r
diff --git a/putty/CHARSET/FROMUCS.C b/putty/CHARSET/FROMUCS.C
new file mode 100644 (file)
index 0000000..ce69cd7
--- /dev/null
@@ -0,0 +1,91 @@
+/*\r
+ * fromucs.c - convert Unicode to other character sets.\r
+ */\r
+\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+struct charset_emit_param {\r
+    char *output;\r
+    int outlen;\r
+    const char *errstr;\r
+    int errlen;\r
+    int stopped;\r
+};\r
+\r
+static void charset_emit(void *ctx, long int output)\r
+{\r
+    struct charset_emit_param *param = (struct charset_emit_param *)ctx;\r
+    char outval;\r
+    char const *p;\r
+    int outlen;\r
+\r
+    if (output == ERROR) {\r
+       p = param->errstr;\r
+       outlen = param->errlen;\r
+    } else {\r
+       outval = output;\r
+       p = &outval;\r
+       outlen = 1;\r
+    }\r
+\r
+    if (param->outlen >= outlen) {\r
+       while (outlen > 0) {\r
+           *param->output++ = *p++;\r
+           param->outlen--;\r
+           outlen--;\r
+       }\r
+    } else {\r
+       param->stopped = 1;\r
+    }\r
+}\r
+\r
+int charset_from_unicode(wchar_t **input, int *inlen, char *output, int outlen,\r
+                        int charset, charset_state *state,\r
+                        const char *errstr, int errlen)\r
+{\r
+    charset_spec const *spec = charset_find_spec(charset);\r
+    charset_state localstate;\r
+    struct charset_emit_param param;\r
+\r
+    param.output = output;\r
+    param.outlen = outlen;\r
+    param.stopped = 0;\r
+\r
+    /*\r
+     * charset_emit will expect a valid errstr.\r
+     */\r
+    if (!errstr) {\r
+       /* *shrug* this is good enough, and consistent across all SBCS... */\r
+       param.errstr = ".";\r
+       param.errlen = 1;\r
+    }\r
+    param.errstr = errstr;\r
+    param.errlen = errlen;\r
+\r
+    if (!state) {\r
+       localstate.s0 = 0;\r
+    } else {\r
+       localstate = *state;           /* structure copy */\r
+    }\r
+    state = &localstate;\r
+\r
+    while (*inlen > 0) {\r
+       int lenbefore = param.output - output;\r
+       spec->write(spec, **input, &localstate, charset_emit, &param);\r
+       if (param.stopped) {\r
+           /*\r
+            * The emit function has _tried_ to output some\r
+            * characters, but ran up against the end of the\r
+            * buffer. Leave immediately, and return what happened\r
+            * _before_ attempting to process this character.\r
+            */\r
+           return lenbefore;\r
+       }\r
+       if (state)\r
+           *state = localstate;       /* structure copy */\r
+       (*input)++;\r
+       (*inlen)--;\r
+    }\r
+    return param.output - output;\r
+}\r
diff --git a/putty/CHARSET/INTERNAL.H b/putty/CHARSET/INTERNAL.H
new file mode 100644 (file)
index 0000000..683b8a6
--- /dev/null
@@ -0,0 +1,89 @@
+/*\r
+ * internal.h - internal header stuff for the charset library.\r
+ */\r
+\r
+#ifndef charset_internal_h\r
+#define charset_internal_h\r
+\r
+/* This invariably comes in handy */\r
+#define lenof(x) ( sizeof((x)) / sizeof(*(x)) )\r
+\r
+/* This is an invalid Unicode value used to indicate an error. */\r
+#define ERROR 0xFFFFL                 /* Unicode value representing error */\r
+\r
+typedef struct charset_spec charset_spec;\r
+typedef struct sbcs_data sbcs_data;\r
+\r
+struct charset_spec {\r
+    int charset;                      /* numeric identifier */\r
+\r
+    /*\r
+     * A function to read the character set and output Unicode\r
+     * characters. The `emit' function expects to get Unicode chars\r
+     * passed to it; it should be sent ERROR for any encoding error\r
+     * on the input.\r
+     */\r
+    void (*read)(charset_spec const *charset, long int input_chr,\r
+                charset_state *state,\r
+                void (*emit)(void *ctx, long int output), void *emitctx);\r
+    /*\r
+     * A function to read Unicode characters and output in this\r
+     * character set. The `emit' function expects to get byte\r
+     * values passed to it; it should be sent ERROR for any\r
+     * non-representable characters on the input.\r
+     */\r
+    void (*write)(charset_spec const *charset, long int input_chr,\r
+                 charset_state *state,\r
+                 void (*emit)(void *ctx, long int output), void *emitctx);\r
+    void const *data;\r
+};\r
+\r
+/*\r
+ * This is the format of `data' used by the SBCS read and write\r
+ * functions; so it's the format used in all SBCS definitions.\r
+ */\r
+struct sbcs_data {\r
+    /*\r
+     * This is a simple mapping table converting each SBCS position\r
+     * to a Unicode code point. Some positions may contain ERROR,\r
+     * indicating that that byte value is not defined in the SBCS\r
+     * in question and its occurrence in input is an error.\r
+     */\r
+    unsigned long sbcs2ucs[256];\r
+\r
+    /*\r
+     * This lookup table is used to convert Unicode back to the\r
+     * SBCS. It consists of the valid byte values in the SBCS,\r
+     * sorted in order of their Unicode translation. So given a\r
+     * Unicode value U, you can do a binary search on this table\r
+     * using the above table as a lookup: when testing the Xth\r
+     * position in this table, you branch according to whether\r
+     * sbcs2ucs[ucs2sbcs[X]] is less than, greater than, or equal\r
+     * to U.\r
+     * \r
+     * Note that since there may be fewer than 256 valid byte\r
+     * values in a particular SBCS, we must supply the length of\r
+     * this table as well as the contents.\r
+     */\r
+    unsigned char ucs2sbcs[256];\r
+    int nvalid;\r
+};\r
+\r
+/*\r
+ * Prototypes for internal library functions.\r
+ */\r
+charset_spec const *charset_find_spec(int charset);\r
+void read_sbcs(charset_spec const *charset, long int input_chr,\r
+              charset_state *state,\r
+              void (*emit)(void *ctx, long int output), void *emitctx);\r
+void write_sbcs(charset_spec const *charset, long int input_chr,\r
+               charset_state *state,\r
+               void (*emit)(void *ctx, long int output), void *emitctx);\r
+\r
+/*\r
+ * Placate compiler warning about unused parameters, of which we\r
+ * expect to have some in this library.\r
+ */\r
+#define UNUSEDARG(x) ( (x) = (x) )\r
+\r
+#endif /* charset_internal_h */\r
diff --git a/putty/CHARSET/LOCALENC.C b/putty/CHARSET/LOCALENC.C
new file mode 100644 (file)
index 0000000..9e51f72
--- /dev/null
@@ -0,0 +1,125 @@
+/*\r
+ * local.c - translate our internal character set codes to and from\r
+ * our own set of plausibly legible character-set names. Also\r
+ * provides a canonical name for each encoding (useful for software\r
+ * announcing what character set it will be using), and a set of\r
+ * enumeration functions which return a list of supported\r
+ * encodings one by one.\r
+ * \r
+ * charset_from_localenc will attempt all other text translations\r
+ * as well as this table, to maximise the number of different ways\r
+ * you can select a supported charset.\r
+ */\r
+\r
+#include <ctype.h>\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+static const struct {\r
+    const char *name;\r
+    int charset;\r
+    int return_in_enum;   /* enumeration misses some charsets */\r
+} localencs[] = {\r
+    { "<UNKNOWN>", CS_NONE, 0 },\r
+    { "ISO-8859-1", CS_ISO8859_1, 1 },\r
+    { "ISO-8859-1 with X11 line drawing", CS_ISO8859_1_X11, 0 },\r
+    { "ISO-8859-2", CS_ISO8859_2, 1 },\r
+    { "ISO-8859-3", CS_ISO8859_3, 1 },\r
+    { "ISO-8859-4", CS_ISO8859_4, 1 },\r
+    { "ISO-8859-5", CS_ISO8859_5, 1 },\r
+    { "ISO-8859-6", CS_ISO8859_6, 1 },\r
+    { "ISO-8859-7", CS_ISO8859_7, 1 },\r
+    { "ISO-8859-8", CS_ISO8859_8, 1 },\r
+    { "ISO-8859-9", CS_ISO8859_9, 1 },\r
+    { "ISO-8859-10", CS_ISO8859_10, 1 },\r
+    { "ISO-8859-11", CS_ISO8859_11, 1 },\r
+    { "ISO-8859-13", CS_ISO8859_13, 1 },\r
+    { "ISO-8859-14", CS_ISO8859_14, 1 },\r
+    { "ISO-8859-15", CS_ISO8859_15, 1 },\r
+    { "ISO-8859-16", CS_ISO8859_16, 1 },\r
+    { "CP437", CS_CP437, 1 },\r
+    { "CP850", CS_CP850, 1 },\r
+    { "CP866", CS_CP866, 1 },\r
+    { "CP1250", CS_CP1250, 1 },\r
+    { "CP1251", CS_CP1251, 1 },\r
+    { "CP1252", CS_CP1252, 1 },\r
+    { "CP1253", CS_CP1253, 1 },\r
+    { "CP1254", CS_CP1254, 1 },\r
+    { "CP1255", CS_CP1255, 1 },\r
+    { "CP1256", CS_CP1256, 1 },\r
+    { "CP1257", CS_CP1257, 1 },\r
+    { "CP1258", CS_CP1258, 1 },\r
+    { "KOI8-R", CS_KOI8_R, 1 },\r
+    { "KOI8-U", CS_KOI8_U, 1 },\r
+    { "Mac Roman", CS_MAC_ROMAN, 1 },\r
+    { "Mac Turkish", CS_MAC_TURKISH, 1 },\r
+    { "Mac Croatian", CS_MAC_CROATIAN, 1 },\r
+    { "Mac Iceland", CS_MAC_ICELAND, 1 },\r
+    { "Mac Romanian", CS_MAC_ROMANIAN, 1 },\r
+    { "Mac Greek", CS_MAC_GREEK, 1 },\r
+    { "Mac Cyrillic", CS_MAC_CYRILLIC, 1 },\r
+    { "Mac Thai", CS_MAC_THAI, 1 },\r
+    { "Mac Centeuro", CS_MAC_CENTEURO, 1 },\r
+    { "Mac Symbol", CS_MAC_SYMBOL, 1 },\r
+    { "Mac Dingbats", CS_MAC_DINGBATS, 1 },\r
+    { "Mac Roman (old)", CS_MAC_ROMAN_OLD, 0 },\r
+    { "Mac Croatian (old)", CS_MAC_CROATIAN_OLD, 0 },\r
+    { "Mac Iceland (old)", CS_MAC_ICELAND_OLD, 0 },\r
+    { "Mac Romanian (old)", CS_MAC_ROMANIAN_OLD, 0 },\r
+    { "Mac Greek (old)", CS_MAC_GREEK_OLD, 0 },\r
+    { "Mac Cyrillic (old)", CS_MAC_CYRILLIC_OLD, 0 },\r
+    { "Mac Ukraine", CS_MAC_UKRAINE, 1 },\r
+    { "Mac VT100", CS_MAC_VT100, 1 },\r
+    { "Mac VT100 (old)", CS_MAC_VT100_OLD, 0 },\r
+    { "VISCII", CS_VISCII, 1 },\r
+    { "HP ROMAN8", CS_HP_ROMAN8, 1 },\r
+    { "DEC MCS", CS_DEC_MCS, 1 },\r
+    { "UTF-8", CS_UTF8, 1 },\r
+};\r
+\r
+const char *charset_to_localenc(int charset)\r
+{\r
+    int i;\r
+\r
+    for (i = 0; i < (int)lenof(localencs); i++)\r
+       if (charset == localencs[i].charset)\r
+           return localencs[i].name;\r
+\r
+    return NULL;                      /* not found */\r
+}\r
+\r
+int charset_from_localenc(const char *name)\r
+{\r
+    int i;\r
+\r
+    if ( (i = charset_from_mimeenc(name)) != CS_NONE)\r
+       return i;\r
+    if ( (i = charset_from_xenc(name)) != CS_NONE)\r
+       return i;\r
+\r
+    for (i = 0; i < (int)lenof(localencs); i++) {\r
+       const char *p, *q;\r
+       p = name;\r
+       q = localencs[i].name;\r
+       while (*p || *q) {\r
+               if (tolower((unsigned char)*p) != tolower((unsigned char)*q))\r
+               break;\r
+           p++; q++;\r
+       }\r
+       if (!*p && !*q)\r
+           return localencs[i].charset;\r
+    }\r
+\r
+    return CS_NONE;                   /* not found */\r
+}\r
+\r
+int charset_localenc_nth(int n)\r
+{\r
+    int i;\r
+\r
+    for (i = 0; i < (int)lenof(localencs); i++)\r
+       if (localencs[i].return_in_enum && !n--)\r
+           return localencs[i].charset;\r
+\r
+    return CS_NONE;                   /* end of list */\r
+}\r
diff --git a/putty/CHARSET/MACENC.C b/putty/CHARSET/MACENC.C
new file mode 100644 (file)
index 0000000..a6d9aab
--- /dev/null
@@ -0,0 +1,169 @@
+/* $Id: macenc.c 8037 2008-06-04 23:05:48Z simon $ */\r
+/*\r
+ * Copyright (c) 2003 Ben Harris\r
+ * All rights reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person\r
+ * obtaining a copy of this software and associated documentation\r
+ * files (the "Software"), to deal in the Software without\r
+ * restriction, including without limitation the rights to use,\r
+ * copy, modify, merge, publish, distribute, sublicense, and/or\r
+ * sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following\r
+ * conditions:\r
+ * \r
+ * The above copyright notice and this permission notice shall be\r
+ * included in all copies or substantial portions of the Software.\r
+ * \r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR\r
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\r
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ */\r
+/*\r
+ * macenc.c -- Convert a Mac OS script/region/font combination to our\r
+ * internal charset code.\r
+ */\r
+\r
+#include <string.h>\r
+\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+/*\r
+ * These are defined by Mac OS's <Script.h>, but we'd like to be\r
+ * independent of that.\r
+ */\r
+\r
+#define smRoman                        0\r
+#define smJapanese             1\r
+#define smTradChinese          2\r
+#define smKorean               3\r
+#define smArabic               4\r
+#define smHebrew               5\r
+#define smCyrillic             7\r
+#define smDevenagari           9\r
+#define smGurmukhi             10\r
+#define smGujurati             11\r
+#define smThai                 21\r
+#define smSimpChinese          25\r
+#define smTibetan              26\r
+#define smEthiopic             28\r
+#define smCentralEuroRoman     29\r
+\r
+#define verGreece              20\r
+#define verIceland             21\r
+#define verTurkey              24\r
+#define verYugoCroatian                25\r
+#define verRomania             39\r
+#define verFaroeIsl            47\r
+#define verIran                        48\r
+#define verRussia              49\r
+#define verSlovenian           66\r
+#define verCroatia             68\r
+#define verBulgaria            72\r
+#define verScottishGaelic      75\r
+#define verManxGaelic          76\r
+#define verBreton              77\r
+#define verNunavut             78\r
+#define verWelsh               79\r
+#define verIrishGaelicScript   81\r
+\r
+static const struct {\r
+    int script;\r
+    int region;\r
+    int sysvermin;\r
+    char const *fontname;\r
+    int charset;\r
+} macencs[] = {\r
+    { smRoman, -1,                   0x850, "VT100", CS_MAC_VT100 },\r
+    { smRoman, -1,                   0,     "VT100", CS_MAC_VT100_OLD },\r
+    /*\r
+     * From here on, this table is largely derived from\r
+     * <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT>,\r
+     * with _OLD version added based on the comments in individual\r
+     * mapping files.\r
+     */\r
+    { smRoman, -1,                   0,     "Symbol", CS_MAC_SYMBOL },\r
+    { smRoman, -1,                   0,     "Zapf Dingbats", CS_MAC_DINGBATS },\r
+    { smRoman, verTurkey,            0,     NULL,    CS_MAC_TURKISH },\r
+    { smRoman, verYugoCroatian,      0x850, NULL,    CS_MAC_CROATIAN },\r
+    { smRoman, verYugoCroatian,      0,     NULL,    CS_MAC_CROATIAN_OLD },\r
+    { smRoman, verSlovenian,         0x850, NULL,    CS_MAC_CROATIAN },\r
+    { smRoman, verSlovenian,         0,     NULL,    CS_MAC_CROATIAN_OLD },\r
+    { smRoman, verCroatia,           0x850, NULL,    CS_MAC_CROATIAN },\r
+    { smRoman, verCroatia,           0,     NULL,    CS_MAC_CROATIAN_OLD },\r
+    { smRoman, verIceland,           0x850, NULL,    CS_MAC_ICELAND },\r
+    { smRoman, verIceland,           0,     NULL,    CS_MAC_ICELAND_OLD },\r
+    { smRoman, verFaroeIsl,          0x850, NULL,    CS_MAC_ICELAND },\r
+    { smRoman, verFaroeIsl,          0,     NULL,    CS_MAC_ICELAND_OLD },\r
+    { smRoman, verRomania,           0x850, NULL,    CS_MAC_ROMANIAN },\r
+    { smRoman, verRomania,           0,     NULL,    CS_MAC_ROMANIAN_OLD },\r
+#if 0 /* No mapping table on ftp.unicode.org */\r
+    { smRoman, verIreland,           0x850, NULL,    CS_MAC_CELTIC },\r
+    { smRoman, verIreland,           0,     NULL,    CS_MAC_CELTIC_OLD },\r
+    { smRoman, verScottishGaelic,    0x850, NULL,    CS_MAC_CELTIC },\r
+    { smRoman, verScottishGaelic,    0,     NULL,    CS_MAC_CELTIC_OLD },\r
+    { smRoman, verManxGaelic,        0x850, NULL,    CS_MAC_CELTIC },\r
+    { smRoman, verManxGaelic,        0,     NULL,    CS_MAC_CELTIC_OLD },\r
+    { smRoman, verBreton,            0x850, NULL,    CS_MAC_CELTIC },\r
+    { smRoman, verBreton,            0,     NULL,    CS_MAC_CELTIC_OLD },\r
+    { smRoman, verWelsh,             0x850, NULL,    CS_MAC_CELTIC },\r
+    { smRoman, verWelsh,             0,     NULL,    CS_MAC_CELTIC_OLD },\r
+    { smRoman, verIrishGaelicScript, 0x850, NULL,    CS_MAC_GAELIC },\r
+    { smRoman, verIrishGaelicScript, 0,     NULL,    CS_MAC_GAELIC_OLD },\r
+#endif\r
+    { smRoman, verGreece,            0x922, NULL,    CS_MAC_GREEK },\r
+    { smRoman, verGreece,            0,     NULL,    CS_MAC_GREEK_OLD },\r
+    { smRoman, -1,                   0x850, NULL,    CS_MAC_ROMAN },\r
+    { smRoman, -1,                   0,     NULL,    CS_MAC_ROMAN_OLD },\r
+#if 0 /* Multi-byte encodings, not yet supported */\r
+    { smJapanese,    -1,             0,     NULL,    CS_MAC_JAPANESE },\r
+    { smTradChinese, -1,             0,     NULL,    CS_MAC_CHINTRAD },\r
+    { smKorean,      -1,             0,     NULL,    CS_MAC_KOREAN },\r
+#endif\r
+#if 0 /* Bidirectional encodings, not yet supported */\r
+    { smArabic, verIran,             0,     NULL,    CS_MAC_FARSI },\r
+    { smArabic, -1,                  0,     NULL,    CS_MAC_ARABIC },\r
+    { smHebrew, -1,                  0,     NULL,    CS_MAC_HEBREW },\r
+#endif\r
+    { smCyrillic, -1,                0x900, NULL,    CS_MAC_CYRILLIC },\r
+    { smCyrillic, verRussia,         0,     NULL,    CS_MAC_CYRILLIC_OLD },\r
+    { smCyrillic, verBulgaria,       0,     NULL,    CS_MAC_CYRILLIC_OLD },\r
+    { smCyrillic, -1,                0,     NULL,    CS_MAC_UKRAINE },\r
+#if 0 /* Complex Indic scripts, not yet supported */\r
+    { smDevanagari, -1,              0,     NULL,    CS_MAC_DEVENAGA },\r
+    { smGurmukhi, -1,                0,     NULL,    CS_MAC_GURMUKHI },\r
+    { smGujurati, -1,                0,     NULL,    CS_MAC_GUJURATI },\r
+#endif\r
+    { smThai,  -1,                   0,     NULL,    CS_MAC_THAI },\r
+#if 0 /* Multi-byte encoding, not yet supported */\r
+    { smSimpChinese, -1,             0,     NULL,    CS_MAC_CHINSIMP },\r
+#endif\r
+#if 0 /* No mapping table on ftp.unicode.org */\r
+    { smTibetan, -1,                 0,     NULL,    CS_MAC_TIBETAN },\r
+    { smEthiopic, -1,                0,     NULL,    CS_MAC_ETHIOPIC },\r
+    { smEthiopic, verNanavut,        0,     NULL,    CS_MAC_INUIT },\r
+#endif\r
+    { smCentralEuroRoman, -1,        0,     NULL,    CS_MAC_CENTEURO },\r
+};\r
+\r
+int charset_from_macenc(int script, int region, int sysvers,\r
+                       char const *fontname)\r
+{\r
+    int i;\r
+\r
+    for (i = 0; i < (int)lenof(macencs); i++)\r
+       if ((macencs[i].script == script) &&\r
+           (macencs[i].region < 0 || macencs[i].region == region) &&\r
+           (macencs[i].sysvermin <= sysvers) &&\r
+           (macencs[i].fontname == NULL ||\r
+            (fontname != NULL && strcmp(macencs[i].fontname, fontname) == 0)))\r
+           return macencs[i].charset;\r
+\r
+    return CS_NONE;\r
+}\r
diff --git a/putty/CHARSET/MIMEENC.C b/putty/CHARSET/MIMEENC.C
new file mode 100644 (file)
index 0000000..27b860a
--- /dev/null
@@ -0,0 +1,214 @@
+/*\r
+ * mimeenc.c - translate our internal character set codes to and\r
+ * from MIME standard character-set names.\r
+ * \r
+ */\r
+\r
+#include <ctype.h>\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+static const struct {\r
+    const char *name;\r
+    int charset;\r
+} mimeencs[] = {\r
+    /*\r
+     * These names are taken from\r
+     * \r
+     *   http://www.iana.org/assignments/character-sets\r
+     * \r
+     * Where multiple encoding names map to the same encoding id\r
+     * (such as the variety of aliases for ISO-8859-1), the first\r
+     * is considered canonical and will be returned when\r
+     * translating the id to a string.\r
+     */\r
+    { "ISO-8859-1", CS_ISO8859_1 },\r
+    { "iso-ir-100", CS_ISO8859_1 },\r
+    { "ISO_8859-1", CS_ISO8859_1 },\r
+    { "ISO_8859-1:1987", CS_ISO8859_1 },\r
+    { "latin1", CS_ISO8859_1 },\r
+    { "l1", CS_ISO8859_1 },\r
+    { "IBM819", CS_ISO8859_1 },\r
+    { "CP819", CS_ISO8859_1 },\r
+    { "csISOLatin1", CS_ISO8859_1 },\r
+\r
+    { "ISO-8859-2", CS_ISO8859_2 },\r
+    { "ISO_8859-2:1987", CS_ISO8859_2 },\r
+    { "iso-ir-101", CS_ISO8859_2 },\r
+    { "ISO_8859-2", CS_ISO8859_2 },\r
+    { "latin2", CS_ISO8859_2 },\r
+    { "l2", CS_ISO8859_2 },\r
+    { "csISOLatin2", CS_ISO8859_2 },\r
+\r
+    { "ISO-8859-3", CS_ISO8859_3 },\r
+    { "ISO_8859-3:1988", CS_ISO8859_3 },\r
+    { "iso-ir-109", CS_ISO8859_3 },\r
+    { "ISO_8859-3", CS_ISO8859_3 },\r
+    { "latin3", CS_ISO8859_3 },\r
+    { "l3", CS_ISO8859_3 },\r
+    { "csISOLatin3", CS_ISO8859_3 },\r
+\r
+    { "ISO-8859-4", CS_ISO8859_4 },\r
+    { "ISO_8859-4:1988", CS_ISO8859_4 },\r
+    { "iso-ir-110", CS_ISO8859_4 },\r
+    { "ISO_8859-4", CS_ISO8859_4 },\r
+    { "latin4", CS_ISO8859_4 },\r
+    { "l4", CS_ISO8859_4 },\r
+    { "csISOLatin4", CS_ISO8859_4 },\r
+\r
+    { "ISO-8859-5", CS_ISO8859_5 },\r
+    { "ISO_8859-5:1988", CS_ISO8859_5 },\r
+    { "iso-ir-144", CS_ISO8859_5 },\r
+    { "ISO_8859-5", CS_ISO8859_5 },\r
+    { "cyrillic", CS_ISO8859_5 },\r
+    { "csISOLatinCyrillic", CS_ISO8859_5 },\r
+\r
+    { "ISO-8859-6", CS_ISO8859_6 },\r
+    { "ISO_8859-6:1987", CS_ISO8859_6 },\r
+    { "iso-ir-127", CS_ISO8859_6 },\r
+    { "ISO_8859-6", CS_ISO8859_6 },\r
+    { "ECMA-114", CS_ISO8859_6 },\r
+    { "ASMO-708", CS_ISO8859_6 },\r
+    { "arabic", CS_ISO8859_6 },\r
+    { "csISOLatinArabic", CS_ISO8859_6 },\r
+\r
+    { "ISO-8859-7", CS_ISO8859_7 },\r
+    { "ISO_8859-7:1987", CS_ISO8859_7 },\r
+    { "iso-ir-126", CS_ISO8859_7 },\r
+    { "ISO_8859-7", CS_ISO8859_7 },\r
+    { "ELOT_928", CS_ISO8859_7 },\r
+    { "ECMA-118", CS_ISO8859_7 },\r
+    { "greek", CS_ISO8859_7 },\r
+    { "greek8", CS_ISO8859_7 },\r
+    { "csISOLatinGreek", CS_ISO8859_7 },\r
+\r
+    { "ISO-8859-8", CS_ISO8859_8 },\r
+    { "ISO_8859-8:1988", CS_ISO8859_8 },\r
+    { "iso-ir-138", CS_ISO8859_8 },\r
+    { "ISO_8859-8", CS_ISO8859_8 },\r
+    { "hebrew", CS_ISO8859_8 },\r
+    { "csISOLatinHebrew", CS_ISO8859_8 },\r
+\r
+    { "ISO-8859-9", CS_ISO8859_9 },\r
+    { "ISO_8859-9:1989", CS_ISO8859_9 },\r
+    { "iso-ir-148", CS_ISO8859_9 },\r
+    { "ISO_8859-9", CS_ISO8859_9 },\r
+    { "latin5", CS_ISO8859_9 },\r
+    { "l5", CS_ISO8859_9 },\r
+    { "csISOLatin5", CS_ISO8859_9 },\r
+\r
+    { "ISO-8859-10", CS_ISO8859_10 },\r
+    { "iso-ir-157", CS_ISO8859_10 },\r
+    { "l6", CS_ISO8859_10 },\r
+    { "ISO_8859-10:1992", CS_ISO8859_10 },\r
+    { "csISOLatin6", CS_ISO8859_10 },\r
+    { "latin6", CS_ISO8859_10 },\r
+\r
+    { "ISO-8859-13", CS_ISO8859_13 },\r
+\r
+    { "ISO-8859-14", CS_ISO8859_14 },\r
+    { "iso-ir-199", CS_ISO8859_14 },\r
+    { "ISO_8859-14:1998", CS_ISO8859_14 },\r
+    { "ISO_8859-14", CS_ISO8859_14 },\r
+    { "latin8", CS_ISO8859_14 },\r
+    { "iso-celtic", CS_ISO8859_14 },\r
+    { "l8", CS_ISO8859_14 },\r
+\r
+    { "ISO-8859-15", CS_ISO8859_15 },\r
+    { "ISO_8859-15", CS_ISO8859_15 },\r
+    { "Latin-9", CS_ISO8859_15 },\r
+\r
+    { "ISO-8859-16", CS_ISO8859_16 },\r
+    { "iso-ir-226", CS_ISO8859_16 },\r
+    { "ISO_8859-16", CS_ISO8859_16 },\r
+    { "ISO_8859-16:2001", CS_ISO8859_16 },\r
+    { "latin10", CS_ISO8859_16 },\r
+    { "l10", CS_ISO8859_16 },\r
+\r
+    { "IBM437", CS_CP437 },\r
+    { "cp437", CS_CP437 },\r
+    { "437", CS_CP437 },\r
+    { "csPC8CodePage437", CS_CP437 },\r
+\r
+    { "IBM850", CS_CP850 },\r
+    { "cp850", CS_CP850 },\r
+    { "850", CS_CP850 },\r
+    { "csPC850Multilingual", CS_CP850 },\r
+\r
+    { "IBM866", CS_CP866 },\r
+    { "cp866", CS_CP866 },\r
+    { "866", CS_CP866 },\r
+    { "csIBM866", CS_CP866 },\r
+\r
+    { "windows-1250", CS_CP1250 },\r
+\r
+    { "windows-1251", CS_CP1251 },\r
+\r
+    { "windows-1252", CS_CP1252 },\r
+\r
+    { "windows-1253", CS_CP1253 },\r
+\r
+    { "windows-1254", CS_CP1254 },\r
+\r
+    { "windows-1255", CS_CP1255 },\r
+\r
+    { "windows-1256", CS_CP1256 },\r
+\r
+    { "windows-1257", CS_CP1257 },\r
+\r
+    { "windows-1258", CS_CP1258 },\r
+\r
+    { "KOI8-R", CS_KOI8_R },\r
+    { "csKOI8R", CS_KOI8_R },\r
+\r
+    { "KOI8-U", CS_KOI8_U },\r
+\r
+    { "macintosh", CS_MAC_ROMAN_OLD },\r
+    { "mac", CS_MAC_ROMAN_OLD },\r
+    { "csMacintosh", CS_MAC_ROMAN_OLD },\r
+\r
+    { "VISCII", CS_VISCII },\r
+    { "csVISCII", CS_VISCII },\r
+\r
+    { "hp-roman8", CS_HP_ROMAN8 },\r
+    { "roman8", CS_HP_ROMAN8 },\r
+    { "r8", CS_HP_ROMAN8 },\r
+    { "csHPRoman8", CS_HP_ROMAN8 },\r
+\r
+    { "DEC-MCS", CS_DEC_MCS },\r
+    { "dec", CS_DEC_MCS },\r
+    { "csDECMCS", CS_DEC_MCS },\r
+\r
+    { "UTF-8", CS_UTF8 },\r
+};\r
+\r
+const char *charset_to_mimeenc(int charset)\r
+{\r
+    int i;\r
+\r
+    for (i = 0; i < (int)lenof(mimeencs); i++)\r
+       if (charset == mimeencs[i].charset)\r
+           return mimeencs[i].name;\r
+\r
+    return NULL;                      /* not found */\r
+}\r
+\r
+int charset_from_mimeenc(const char *name)\r
+{\r
+    int i;\r
+\r
+    for (i = 0; i < (int)lenof(mimeencs); i++) {\r
+       const char *p, *q;\r
+       p = name;\r
+       q = mimeencs[i].name;\r
+       while (*p || *q) {\r
+               if (tolower((unsigned char)*p) != tolower((unsigned char)*q))\r
+               break;\r
+           p++; q++;\r
+       }\r
+       if (!*p && !*q)\r
+           return mimeencs[i].charset;\r
+    }\r
+\r
+    return CS_NONE;                   /* not found */\r
+}\r
diff --git a/putty/CHARSET/README b/putty/CHARSET/README
new file mode 100644 (file)
index 0000000..2d08b36
--- /dev/null
@@ -0,0 +1,15 @@
+This subdirectory contains a general character-set conversion\r
+library, used in the Unix port of PuTTY, and available for use in\r
+other ports if it should happen to be useful.\r
+\r
+This is a variant of a library that's currently used in some other\r
+programs such as Timber and Halibut. At some future date, we would\r
+like to merge the two libraries, so that all programs use the same\r
+libcharset.\r
+\r
+It is therefore a _strong_ design goal that this library should remain\r
+perfectly general, and not tied to particulars of PuTTY. It must not\r
+reference any code outside its own subdirectory; it should not have\r
+PuTTY-specific helper routines added to it unless they can be\r
+documented in a general manner which might make them useful in other\r
+circumstances as well.\r
diff --git a/putty/CHARSET/SBCS.C b/putty/CHARSET/SBCS.C
new file mode 100644 (file)
index 0000000..f5ea523
--- /dev/null
@@ -0,0 +1,53 @@
+/*\r
+ * sbcs.c - routines to handle single-byte character sets.\r
+ */\r
+\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+/*\r
+ * The charset_spec for any single-byte character set should\r
+ * provide read_sbcs() as its read function, and its `data' field\r
+ * should be a wchar_t string constant containing the 256 entries\r
+ * of the translation table.\r
+ */\r
+\r
+void read_sbcs(charset_spec const *charset, long int input_chr,\r
+              charset_state *state,\r
+              void (*emit)(void *ctx, long int output), void *emitctx)\r
+{\r
+    const struct sbcs_data *sd = charset->data;\r
+\r
+    UNUSEDARG(state);\r
+\r
+    emit(emitctx, sd->sbcs2ucs[input_chr]);\r
+}\r
+\r
+void write_sbcs(charset_spec const *charset, long int input_chr,\r
+               charset_state *state,\r
+               void (*emit)(void *ctx, long int output), void *emitctx)\r
+{\r
+    const struct sbcs_data *sd = charset->data;\r
+    int i, j, k, c;\r
+\r
+    UNUSEDARG(state);\r
+\r
+    /*\r
+     * Binary-search in the ucs2sbcs table.\r
+     */\r
+    i = -1;\r
+    j = sd->nvalid;\r
+    while (i+1 < j) {\r
+       k = (i+j)/2;\r
+       c = sd->ucs2sbcs[k];\r
+       if (input_chr < sd->sbcs2ucs[c])\r
+           j = k;\r
+       else if (input_chr > sd->sbcs2ucs[c])\r
+           i = k;\r
+       else {\r
+           emit(emitctx, c);\r
+           return;\r
+       }\r
+    }\r
+    emit(emitctx, ERROR);\r
+}\r
diff --git a/putty/CHARSET/SBCS.DAT b/putty/CHARSET/SBCS.DAT
new file mode 100644 (file)
index 0000000..2b919a4
--- /dev/null
@@ -0,0 +1,1117 @@
+  Data file defining single-byte character sets.\r
\r
+  All lines which begin with whitespace are considered comments.\r
+\r
+  To generate an SBCS table from a unicode.org mapping table:\r
+\r
+  gensbcs() {\r
+  wget -q -O - "$1" | tr '\r' '\n' | \\r
+  perl -ne '/^(0x.*)\s+(0x.*)\s+/ and $a[hex $1]=sprintf "%04x", hex $2;' \\r
+   -e 'BEGIN{for($i=0;$i<256;$i++){$a[$i]="XXXX";' \\r
+   -e '      if ($i < 32 or $i == 127) {$a[$i]=sprintf "%04x", $i}}}' \\r
+   -e 'END{for($i=0;$i<256;$i++){printf"%s%s",$a[$i],$i%16==15?"\n":" "}}'\r
+  }\r
+\r
+  (A couple of noteworthy ickinesses here. For a start, any\r
+  undefined characters in the control-code regions (00-1F and 7F)\r
+  are assumed to be the Unicode code point corresponding to their\r
+  index, since the Mac Roman mapping table declines to define them\r
+  but realistically you don't want to be messing with that sort of\r
+  thing. Secondly, the Mac mapping tables are shipped with Mac line\r
+  endings, so note the `tr' to turn them into something legible to\r
+  Perl...)\r
+\r
+  Here are the ISO-8859-x tables, generated by this piece of Bourne\r
+  shell:\r
+\r
+  for i in 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16; do\r
+    echo charset CS_ISO8859_$i\r
+    gensbcs http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-$i.TXT\r
+    echo\r
+  done\r
+\r
+charset CS_ISO8859_1\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+00d0 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 00dd 00de 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+00f0 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 00fd 00fe 00ff\r
+\r
+charset CS_ISO8859_2\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0104 02d8 0141 00a4 013d 015a 00a7 00a8 0160 015e 0164 0179 00ad 017d 017b\r
+00b0 0105 02db 0142 00b4 013e 015b 02c7 00b8 0161 015f 0165 017a 02dd 017e 017c\r
+0154 00c1 00c2 0102 00c4 0139 0106 00c7 010c 00c9 0118 00cb 011a 00cd 00ce 010e\r
+0110 0143 0147 00d3 00d4 0150 00d6 00d7 0158 016e 00da 0170 00dc 00dd 0162 00df\r
+0155 00e1 00e2 0103 00e4 013a 0107 00e7 010d 00e9 0119 00eb 011b 00ed 00ee 010f\r
+0111 0144 0148 00f3 00f4 0151 00f6 00f7 0159 016f 00fa 0171 00fc 00fd 0163 02d9\r
+\r
+charset CS_ISO8859_3\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0126 02d8 00a3 00a4 XXXX 0124 00a7 00a8 0130 015e 011e 0134 00ad XXXX 017b\r
+00b0 0127 00b2 00b3 00b4 00b5 0125 00b7 00b8 0131 015f 011f 0135 00bd XXXX 017c\r
+00c0 00c1 00c2 XXXX 00c4 010a 0108 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+XXXX 00d1 00d2 00d3 00d4 0120 00d6 00d7 011c 00d9 00da 00db 00dc 016c 015c 00df\r
+00e0 00e1 00e2 XXXX 00e4 010b 0109 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+XXXX 00f1 00f2 00f3 00f4 0121 00f6 00f7 011d 00f9 00fa 00fb 00fc 016d 015d 02d9\r
+\r
+charset CS_ISO8859_4\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0104 0138 0156 00a4 0128 013b 00a7 00a8 0160 0112 0122 0166 00ad 017d 00af\r
+00b0 0105 02db 0157 00b4 0129 013c 02c7 00b8 0161 0113 0123 0167 014a 017e 014b\r
+0100 00c1 00c2 00c3 00c4 00c5 00c6 012e 010c 00c9 0118 00cb 0116 00cd 00ce 012a\r
+0110 0145 014c 0136 00d4 00d5 00d6 00d7 00d8 0172 00da 00db 00dc 0168 016a 00df\r
+0101 00e1 00e2 00e3 00e4 00e5 00e6 012f 010d 00e9 0119 00eb 0117 00ed 00ee 012b\r
+0111 0146 014d 0137 00f4 00f5 00f6 00f7 00f8 0173 00fa 00fb 00fc 0169 016b 02d9\r
+\r
+charset CS_ISO8859_5\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0401 0402 0403 0404 0405 0406 0407 0408 0409 040a 040b 040c 00ad 040e 040f\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f\r
+2116 0451 0452 0453 0454 0455 0456 0457 0458 0459 045a 045b 045c 00a7 045e 045f\r
+\r
+charset CS_ISO8859_6\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 XXXX XXXX XXXX 00a4 XXXX XXXX XXXX XXXX XXXX XXXX XXXX 060c 00ad XXXX XXXX\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 061b XXXX XXXX XXXX 061f\r
+XXXX 0621 0622 0623 0624 0625 0626 0627 0628 0629 062a 062b 062c 062d 062e 062f\r
+0630 0631 0632 0633 0634 0635 0636 0637 0638 0639 063a XXXX XXXX XXXX XXXX XXXX\r
+0640 0641 0642 0643 0644 0645 0646 0647 0648 0649 064a 064b 064c 064d 064e 064f\r
+0650 0651 0652 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+\r
+charset CS_ISO8859_7\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 2018 2019 00a3 XXXX XXXX 00a6 00a7 00a8 00a9 XXXX 00ab 00ac 00ad XXXX 2015\r
+00b0 00b1 00b2 00b3 0384 0385 0386 00b7 0388 0389 038a 00bb 038c 00bd 038e 038f\r
+0390 0391 0392 0393 0394 0395 0396 0397 0398 0399 039a 039b 039c 039d 039e 039f\r
+03a0 03a1 XXXX 03a3 03a4 03a5 03a6 03a7 03a8 03a9 03aa 03ab 03ac 03ad 03ae 03af\r
+03b0 03b1 03b2 03b3 03b4 03b5 03b6 03b7 03b8 03b9 03ba 03bb 03bc 03bd 03be 03bf\r
+03c0 03c1 03c2 03c3 03c4 03c5 03c6 03c7 03c8 03c9 03ca 03cb 03cc 03cd 03ce XXXX\r
+\r
+charset CS_ISO8859_8\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 XXXX 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00d7 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00f7 00bb 00bc 00bd 00be XXXX\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 2017\r
+05d0 05d1 05d2 05d3 05d4 05d5 05d6 05d7 05d8 05d9 05da 05db 05dc 05dd 05de 05df\r
+05e0 05e1 05e2 05e3 05e4 05e5 05e6 05e7 05e8 05e9 05ea XXXX XXXX 200e 200f XXXX\r
+\r
+charset CS_ISO8859_9\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+011e 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 0130 015e 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+011f 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 0131 015f 00ff\r
+\r
+charset CS_ISO8859_10\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0104 0112 0122 012a 0128 0136 00a7 013b 0110 0160 0166 017d 00ad 016a 014a\r
+00b0 0105 0113 0123 012b 0129 0137 00b7 013c 0111 0161 0167 017e 2015 016b 014b\r
+0100 00c1 00c2 00c3 00c4 00c5 00c6 012e 010c 00c9 0118 00cb 0116 00cd 00ce 00cf\r
+00d0 0145 014c 00d3 00d4 00d5 00d6 0168 00d8 0172 00da 00db 00dc 00dd 00de 00df\r
+0101 00e1 00e2 00e3 00e4 00e5 00e6 012f 010d 00e9 0119 00eb 0117 00ed 00ee 00ef\r
+00f0 0146 014d 00f3 00f4 00f5 00f6 0169 00f8 0173 00fa 00fb 00fc 00fd 00fe 0138\r
+\r
+charset CS_ISO8859_11\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0e01 0e02 0e03 0e04 0e05 0e06 0e07 0e08 0e09 0e0a 0e0b 0e0c 0e0d 0e0e 0e0f\r
+0e10 0e11 0e12 0e13 0e14 0e15 0e16 0e17 0e18 0e19 0e1a 0e1b 0e1c 0e1d 0e1e 0e1f\r
+0e20 0e21 0e22 0e23 0e24 0e25 0e26 0e27 0e28 0e29 0e2a 0e2b 0e2c 0e2d 0e2e 0e2f\r
+0e30 0e31 0e32 0e33 0e34 0e35 0e36 0e37 0e38 0e39 0e3a XXXX XXXX XXXX XXXX 0e3f\r
+0e40 0e41 0e42 0e43 0e44 0e45 0e46 0e47 0e48 0e49 0e4a 0e4b 0e4c 0e4d 0e4e 0e4f\r
+0e50 0e51 0e52 0e53 0e54 0e55 0e56 0e57 0e58 0e59 0e5a 0e5b XXXX XXXX XXXX XXXX\r
+\r
+charset CS_ISO8859_13\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 201d 00a2 00a3 00a4 201e 00a6 00a7 00d8 00a9 0156 00ab 00ac 00ad 00ae 00c6\r
+00b0 00b1 00b2 00b3 201c 00b5 00b6 00b7 00f8 00b9 0157 00bb 00bc 00bd 00be 00e6\r
+0104 012e 0100 0106 00c4 00c5 0118 0112 010c 00c9 0179 0116 0122 0136 012a 013b\r
+0160 0143 0145 00d3 014c 00d5 00d6 00d7 0172 0141 015a 016a 00dc 017b 017d 00df\r
+0105 012f 0101 0107 00e4 00e5 0119 0113 010d 00e9 017a 0117 0123 0137 012b 013c\r
+0161 0144 0146 00f3 014d 00f5 00f6 00f7 0173 0142 015b 016b 00fc 017c 017e 2019\r
+\r
+charset CS_ISO8859_14\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 1e02 1e03 00a3 010a 010b 1e0a 00a7 1e80 00a9 1e82 1e0b 1ef2 00ad 00ae 0178\r
+1e1e 1e1f 0120 0121 1e40 1e41 00b6 1e56 1e81 1e57 1e83 1e60 1ef3 1e84 1e85 1e61\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+0174 00d1 00d2 00d3 00d4 00d5 00d6 1e6a 00d8 00d9 00da 00db 00dc 00dd 0176 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+0175 00f1 00f2 00f3 00f4 00f5 00f6 1e6b 00f8 00f9 00fa 00fb 00fc 00fd 0177 00ff\r
+\r
+charset CS_ISO8859_15\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 00a1 00a2 00a3 20ac 00a5 0160 00a7 0161 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 017d 00b5 00b6 00b7 017e 00b9 00ba 00bb 0152 0153 0178 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+00d0 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 00dd 00de 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+00f0 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 00fd 00fe 00ff\r
+\r
+charset CS_ISO8859_16\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 0104 0105 0141 20ac 201e 0160 00a7 0161 00a9 0218 00ab 0179 00ad 017a 017b\r
+00b0 00b1 010c 0142 017d 201d 00b6 00b7 017e 010d 0219 00bb 0152 0153 0178 017c\r
+00c0 00c1 00c2 0102 00c4 0106 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+0110 0143 00d2 00d3 00d4 0150 00d6 015a 0170 00d9 00da 00db 00dc 0118 021a 00df\r
+00e0 00e1 00e2 0103 00e4 0107 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+0111 0144 00f2 00f3 00f4 0151 00f6 015b 0171 00f9 00fa 00fb 00fc 0119 021b 00ff\r
+\r
+  Some X fonts are encoded in a variant form of ISO8859-1:\r
+  everything above 0x20 (space) is as normal, but the first 32\r
+  characters contain the VT100 line drawing glyphs as they would\r
+  appear from positions 0x5F to 0x7E inclusive. Here is the modified\r
+  ISO8859-1 code table.\r
+\r
+  Since this table contains a few duplicated positions, we use the\r
+  `sortpriority' hint to indicate that things in the main part of\r
+  the code table (0x20-0xFF) should be generated preferentially when\r
+  converting _from_ Unicode. Hence, U+00b0 (for example) will yield\r
+  0xb0 rather than 0x07.\r
+\r
+charset CS_ISO8859_1_X11\r
+sortpriority 00-1F -1\r
+0020 2666 2592 2409 240c 240d 240a 00b0 00b1 2424 240b 2518 2510 250c 2514 253c\r
+23ba 23bb 2500 23bc 23bd 251c 2524 2534 252c 2502 2264 2265 03c0 2260 00a3 00b7\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+00d0 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 00dd 00de 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+00f0 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 00fd 00fe 00ff\r
+\r
+  Here are some PC (old DOS) code pages, generated by this piece of\r
+  Bourne shell:\r
+\r
+  for i in 437 850 866; do\r
+    echo charset CS_CP$i\r
+    gensbcs http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP$i.TXT\r
+    echo\r
+  done\r
+\r
+charset CS_CP437\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c7 00fc 00e9 00e2 00e4 00e0 00e5 00e7 00ea 00eb 00e8 00ef 00ee 00ec 00c4 00c5\r
+00c9 00e6 00c6 00f4 00f6 00f2 00fb 00f9 00ff 00d6 00dc 00a2 00a3 00a5 20a7 0192\r
+00e1 00ed 00f3 00fa 00f1 00d1 00aa 00ba 00bf 2310 00ac 00bd 00bc 00a1 00ab 00bb\r
+2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255d 255c 255b 2510\r
+2514 2534 252c 251c 2500 253c 255e 255f 255a 2554 2569 2566 2560 2550 256c 2567\r
+2568 2564 2565 2559 2558 2552 2553 256b 256a 2518 250c 2588 2584 258c 2590 2580\r
+03b1 00df 0393 03c0 03a3 03c3 00b5 03c4 03a6 0398 03a9 03b4 221e 03c6 03b5 2229\r
+2261 00b1 2265 2264 2320 2321 00f7 2248 00b0 2219 00b7 221a 207f 00b2 25a0 00a0\r
+\r
+charset CS_CP850\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c7 00fc 00e9 00e2 00e4 00e0 00e5 00e7 00ea 00eb 00e8 00ef 00ee 00ec 00c4 00c5\r
+00c9 00e6 00c6 00f4 00f6 00f2 00fb 00f9 00ff 00d6 00dc 00f8 00a3 00d8 00d7 0192\r
+00e1 00ed 00f3 00fa 00f1 00d1 00aa 00ba 00bf 00ae 00ac 00bd 00bc 00a1 00ab 00bb\r
+2591 2592 2593 2502 2524 00c1 00c2 00c0 00a9 2563 2551 2557 255d 00a2 00a5 2510\r
+2514 2534 252c 251c 2500 253c 00e3 00c3 255a 2554 2569 2566 2560 2550 256c 00a4\r
+00f0 00d0 00ca 00cb 00c8 0131 00cd 00ce 00cf 2518 250c 2588 2584 00a6 00cc 2580\r
+00d3 00df 00d4 00d2 00f5 00d5 00b5 00fe 00de 00da 00db 00d9 00fd 00dd 00af 00b4\r
+00ad 00b1 2017 00be 00b6 00a7 00f7 00b8 00b0 00a8 00b7 00b9 00b3 00b2 25a0 00a0\r
+\r
+charset CS_CP866\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255d 255c 255b 2510\r
+2514 2534 252c 251c 2500 253c 255e 255f 255a 2554 2569 2566 2560 2550 256c 2567\r
+2568 2564 2565 2559 2558 2552 2553 256b 256a 2518 250c 2588 2584 258c 2590 2580\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f\r
+0401 0451 0404 0454 0407 0457 040e 045e 00b0 2219 00b7 221a 2116 00a4 25a0 00a0\r
+\r
+  Here are some Windows code pages, generated by this piece of\r
+  Bourne shell:\r
+\r
+  for i in 1250 1251 1252 1253 1254 1255 1256 1257 1258; do\r
+    echo charset CS_CP$i\r
+    gensbcs http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP$i.TXT\r
+    echo\r
+  done\r
+\r
+charset CS_CP1250\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a XXXX 201e 2026 2020 2021 XXXX 2030 0160 2039 015a 0164 017d 0179\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 XXXX 2122 0161 203a 015b 0165 017e 017a\r
+00a0 02c7 02d8 0141 00a4 0104 00a6 00a7 00a8 00a9 015e 00ab 00ac 00ad 00ae 017b\r
+00b0 00b1 02db 0142 00b4 00b5 00b6 00b7 00b8 0105 015f 00bb 013d 02dd 013e 017c\r
+0154 00c1 00c2 0102 00c4 0139 0106 00c7 010c 00c9 0118 00cb 011a 00cd 00ce 010e\r
+0110 0143 0147 00d3 00d4 0150 00d6 00d7 0158 016e 00da 0170 00dc 00dd 0162 00df\r
+0155 00e1 00e2 0103 00e4 013a 0107 00e7 010d 00e9 0119 00eb 011b 00ed 00ee 010f\r
+0111 0144 0148 00f3 00f4 0151 00f6 00f7 0159 016f 00fa 0171 00fc 00fd 0163 02d9\r
+\r
+charset CS_CP1251\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0402 0403 201a 0453 201e 2026 2020 2021 20ac 2030 0409 2039 040a 040c 040b 040f\r
+0452 2018 2019 201c 201d 2022 2013 2014 XXXX 2122 0459 203a 045a 045c 045b 045f\r
+00a0 040e 045e 0408 00a4 0490 00a6 00a7 0401 00a9 0404 00ab 00ac 00ad 00ae 0407\r
+00b0 00b1 0406 0456 0491 00b5 00b6 00b7 0451 2116 0454 00bb 0458 0405 0455 0457\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f\r
+\r
+charset CS_CP1252\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a 0192 201e 2026 2020 2021 02c6 2030 0160 2039 0152 XXXX 017d XXXX\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 02dc 2122 0161 203a 0153 XXXX 017e 0178\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+00d0 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 00dd 00de 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+00f0 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 00fd 00fe 00ff\r
+\r
+charset CS_CP1253\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a 0192 201e 2026 2020 2021 XXXX 2030 XXXX 2039 XXXX XXXX XXXX XXXX\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 XXXX 2122 XXXX 203a XXXX XXXX XXXX XXXX\r
+00a0 0385 0386 00a3 00a4 00a5 00a6 00a7 00a8 00a9 XXXX 00ab 00ac 00ad 00ae 2015\r
+00b0 00b1 00b2 00b3 0384 00b5 00b6 00b7 0388 0389 038a 00bb 038c 00bd 038e 038f\r
+0390 0391 0392 0393 0394 0395 0396 0397 0398 0399 039a 039b 039c 039d 039e 039f\r
+03a0 03a1 XXXX 03a3 03a4 03a5 03a6 03a7 03a8 03a9 03aa 03ab 03ac 03ad 03ae 03af\r
+03b0 03b1 03b2 03b3 03b4 03b5 03b6 03b7 03b8 03b9 03ba 03bb 03bc 03bd 03be 03bf\r
+03c0 03c1 03c2 03c3 03c4 03c5 03c6 03c7 03c8 03c9 03ca 03cb 03cc 03cd 03ce XXXX\r
+\r
+charset CS_CP1254\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a 0192 201e 2026 2020 2021 02c6 2030 0160 2039 0152 XXXX XXXX XXXX\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 02dc 2122 0161 203a 0153 XXXX XXXX 0178\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+011e 00d1 00d2 00d3 00d4 00d5 00d6 00d7 00d8 00d9 00da 00db 00dc 0130 015e 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+011f 00f1 00f2 00f3 00f4 00f5 00f6 00f7 00f8 00f9 00fa 00fb 00fc 0131 015f 00ff\r
+\r
+charset CS_CP1255\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a 0192 201e 2026 2020 2021 02c6 2030 XXXX 2039 XXXX XXXX XXXX XXXX\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 02dc 2122 XXXX 203a XXXX XXXX XXXX XXXX\r
+00a0 00a1 00a2 00a3 20aa 00a5 00a6 00a7 00a8 00a9 00d7 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00f7 00bb 00bc 00bd 00be 00bf\r
+05b0 05b1 05b2 05b3 05b4 05b5 05b6 05b7 05b8 05b9 XXXX 05bb 05bc 05bd 05be 05bf\r
+05c0 05c1 05c2 05c3 05f0 05f1 05f2 05f3 05f4 XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+05d0 05d1 05d2 05d3 05d4 05d5 05d6 05d7 05d8 05d9 05da 05db 05dc 05dd 05de 05df\r
+05e0 05e1 05e2 05e3 05e4 05e5 05e6 05e7 05e8 05e9 05ea XXXX XXXX 200e 200f XXXX\r
+\r
+charset CS_CP1256\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac 067e 201a 0192 201e 2026 2020 2021 02c6 2030 0679 2039 0152 0686 0698 0688\r
+06af 2018 2019 201c 201d 2022 2013 2014 06a9 2122 0691 203a 0153 200c 200d 06ba\r
+00a0 060c 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 06be 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 061b 00bb 00bc 00bd 00be 061f\r
+06c1 0621 0622 0623 0624 0625 0626 0627 0628 0629 062a 062b 062c 062d 062e 062f\r
+0630 0631 0632 0633 0634 0635 0636 00d7 0637 0638 0639 063a 0640 0641 0642 0643\r
+00e0 0644 00e2 0645 0646 0647 0648 00e7 00e8 00e9 00ea 00eb 0649 064a 00ee 00ef\r
+064b 064c 064d 064e 00f4 064f 0650 00f7 0651 00f9 0652 00fb 00fc 200e 200f 06d2\r
+\r
+charset CS_CP1257\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a XXXX 201e 2026 2020 2021 XXXX 2030 XXXX 2039 XXXX 00a8 02c7 00b8\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 XXXX 2122 XXXX 203a XXXX 00af 02db XXXX\r
+00a0 XXXX 00a2 00a3 00a4 XXXX 00a6 00a7 00d8 00a9 0156 00ab 00ac 00ad 00ae 00c6\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00f8 00b9 0157 00bb 00bc 00bd 00be 00e6\r
+0104 012e 0100 0106 00c4 00c5 0118 0112 010c 00c9 0179 0116 0122 0136 012a 013b\r
+0160 0143 0145 00d3 014c 00d5 00d6 00d7 0172 0141 015a 016a 00dc 017b 017d 00df\r
+0105 012f 0101 0107 00e4 00e5 0119 0113 010d 00e9 017a 0117 0123 0137 012b 013c\r
+0161 0144 0146 00f3 014d 00f5 00f6 00f7 0173 0142 015b 016b 00fc 017c 017e 02d9\r
+\r
+charset CS_CP1258\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+20ac XXXX 201a 0192 201e 2026 2020 2021 02c6 2030 XXXX 2039 0152 XXXX XXXX XXXX\r
+XXXX 2018 2019 201c 201d 2022 2013 2014 02dc 2122 XXXX 203a 0153 XXXX XXXX 0178\r
+00a0 00a1 00a2 00a3 00a4 00a5 00a6 00a7 00a8 00a9 00aa 00ab 00ac 00ad 00ae 00af\r
+00b0 00b1 00b2 00b3 00b4 00b5 00b6 00b7 00b8 00b9 00ba 00bb 00bc 00bd 00be 00bf\r
+00c0 00c1 00c2 0102 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 0300 00cd 00ce 00cf\r
+0110 00d1 0309 00d3 00d4 01a0 00d6 00d7 00d8 00d9 00da 00db 00dc 01af 0303 00df\r
+00e0 00e1 00e2 0103 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 0301 00ed 00ee 00ef\r
+0111 00f1 0323 00f3 00f4 01a1 00f6 00f7 00f8 00f9 00fa 00fb 00fc 01b0 20ab 00ff\r
+\r
+  KOI8-R, generated by this code:\r
+  \r
+  { echo charset CS_KOI8_R;\r
+    gensbcs http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT; }\r
+\r
+charset CS_KOI8_R\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+2500 2502 250c 2510 2514 2518 251c 2524 252c 2534 253c 2580 2584 2588 258c 2590\r
+2591 2592 2593 2320 25a0 2219 221a 2248 2264 2265 00a0 2321 00b0 00b2 00b7 00f7\r
+2550 2551 2552 0451 2553 2554 2555 2556 2557 2558 2559 255a 255b 255c 255d 255e\r
+255f 2560 2561 0401 2562 2563 2564 2565 2566 2567 2568 2569 256a 256b 256c 00a9\r
+044e 0430 0431 0446 0434 0435 0444 0433 0445 0438 0439 043a 043b 043c 043d 043e\r
+043f 044f 0440 0441 0442 0443 0436 0432 044c 044b 0437 0448 044d 0449 0447 044a\r
+042e 0410 0411 0426 0414 0415 0424 0413 0425 0418 0419 041a 041b 041c 041d 041e\r
+041f 042f 0420 0421 0422 0423 0416 0412 042c 042b 0417 0428 042d 0429 0427 042a\r
+\r
+  KOI8-U: I can't find an easily machine-processable mapping table\r
+  for this one, so I've created it by hand-editing the KOI8-R\r
+  mapping table in accordance with the list of differences specified\r
+  in RFC2319. Note that RFC2319 has an apparent error: position B4\r
+  is listed as U+0404 in the main character set list, but as U+0403\r
+  in Appendix A (differences from KOI8-R). Both agree that it should\r
+  be CYRILLIC CAPITAL LETTER UKRAINIAN IE, however, and the Unicode\r
+  character database says that therefore U+0404 is the correct value.\r
+\r
+charset CS_KOI8_U\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+2500 2502 250c 2510 2514 2518 251c 2524 252c 2534 253c 2580 2584 2588 258c 2590\r
+2591 2592 2593 2320 25a0 2219 221a 2248 2264 2265 00a0 2321 00b0 00b2 00b7 00f7\r
+2550 2551 2552 0451 0454 2554 0456 0457 2557 2558 2559 255a 255b 0491 255d 255e\r
+255f 2560 2561 0401 0404 2563 0406 0407 2566 2567 2568 2569 256a 0490 256c 00a9\r
+044e 0430 0431 0446 0434 0435 0444 0433 0445 0438 0439 043a 043b 043c 043d 043e\r
+043f 044f 0440 0441 0442 0443 0436 0432 044c 044b 0437 0448 044d 0449 0447 044a\r
+042e 0410 0411 0426 0414 0415 0424 0413 0425 0418 0419 041a 041b 041c 041d 041e\r
+041f 042f 0420 0421 0422 0423 0416 0412 042c 042b 0417 0428 042d 0429 0427 042a\r
+\r
+  Various Mac character sets, generated by:\r
+\r
+  for i in ROMAN TURKISH CROATIAN ICELAND ROMANIAN GREEK CYRILLIC THAI \\r
+        CENTEURO SYMBOL DINGBATS; do\r
+    echo charset CS_MAC_$i\r
+    gensbcs http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/$i.TXT | \\r
+        sed s/f8a0/XXXX/\r
+    echo\r
+  done\r
+\r
+  The code point F8FF at position F0 in Mac OS Roman an interesting\r
+  one. In Unicode, it's the last of the Private Use section. The\r
+  mapping table states that it should be an Apple logo. I suppose we\r
+  should just leave it as it is; there's bound to be some software out\r
+  there that understands U+F8FF to be an Apple logo!\r
+\r
+  Code point F8A0 at position F5 in Mac OS Turkish is actually just an\r
+  undefined character, so we make it properly undefined.\r
+\r
+  Many of the positions 80-9F in Mac OS Thai are for presentation\r
+  forms of other characters. When converting from Unicode, we use\r
+  `sortpriority' to avoid them.\r
+\r
+  Positions E2-E4 in Mac OS Symbol are for sans-serif variants of\r
+  other characters. Similarly, we avoid them.\r
+\r
+charset CS_MAC_ROMAN\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 00e6 00f8\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 20ac 2039 203a fb01 fb02\r
+2021 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_TURKISH\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 00e6 00f8\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 011e 011f 0130 0131 015e 015f\r
+2021 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 XXXX 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_CROATIAN\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 0160 2122 00b4 00a8 2260 017d 00d8\r
+221e 00b1 2264 2265 2206 00b5 2202 2211 220f 0161 222b 00aa 00ba 03a9 017e 00f8\r
+00bf 00a1 00ac 221a 0192 2248 0106 00ab 010c 2026 00a0 00c0 00c3 00d5 0152 0153\r
+0110 2014 201c 201d 2018 2019 00f7 25ca f8ff 00a9 2044 20ac 2039 203a 00c6 00bb\r
+2013 00b7 201a 201e 2030 00c2 0107 00c1 010d 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+0111 00d2 00da 00db 00d9 0131 02c6 02dc 00af 03c0 00cb 02da 00b8 00ca 00e6 02c7\r
+\r
+charset CS_MAC_ICELAND\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+00dd 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 00e6 00f8\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 20ac 00d0 00f0 00de 00fe\r
+00fd 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_ROMANIAN\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 0102 0218\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 0103 0219\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 20ac 2039 203a 021a 021b\r
+2021 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_GREEK\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00b9 00b2 00c9 00b3 00d6 00dc 0385 00e0 00e2 00e4 0384 00a8 00e7 00e9 00e8\r
+00ea 00eb 00a3 2122 00ee 00ef 2022 00bd 2030 00f4 00f6 00a6 20ac 00f9 00fb 00fc\r
+2020 0393 0394 0398 039b 039e 03a0 00df 00ae 00a9 03a3 03aa 00a7 2260 00b0 00b7\r
+0391 00b1 2264 2265 00a5 0392 0395 0396 0397 0399 039a 039c 03a6 03ab 03a8 03a9\r
+03ac 039d 00ac 039f 03a1 2248 03a4 00ab 00bb 2026 00a0 03a5 03a7 0386 0388 0153\r
+2013 2015 201c 201d 2018 2019 00f7 0389 038a 038c 038e 03ad 03ae 03af 03cc 038f\r
+03cd 03b1 03b2 03c8 03b4 03b5 03c6 03b3 03b7 03b9 03be 03ba 03bb 03bc 03bd 03bf\r
+03c0 03ce 03c1 03c3 03c4 03b8 03c9 03c2 03c7 03c5 03b6 03ca 03cb 0390 03b0 00ad\r
+\r
+charset CS_MAC_CYRILLIC\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+2020 00b0 0490 00a3 00a7 2022 00b6 0406 00ae 00a9 2122 0402 0452 2260 0403 0453\r
+221e 00b1 2264 2265 0456 00b5 0491 0408 0404 0454 0407 0457 0409 0459 040a 045a\r
+0458 0405 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 040b 045b 040c 045c 0455\r
+2013 2014 201c 201d 2018 2019 00f7 201e 040e 045e 040f 045f 2116 0401 0451 044f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 20ac\r
+\r
+charset CS_MAC_THAI\r
+sortpriority 83-8C -1\r
+sortpriority 8F-8F -1\r
+sortpriority 92-9C -1\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00ab 00bb 2026 0e48 0e49 0e4a 0e4b 0e4c 0e48 0e49 0e4a 0e4b 0e4c 201c 201d 0e4d\r
+XXXX 2022 0e31 0e47 0e34 0e35 0e36 0e37 0e48 0e49 0e4a 0e4b 0e4c 2018 2019 XXXX\r
+00a0 0e01 0e02 0e03 0e04 0e05 0e06 0e07 0e08 0e09 0e0a 0e0b 0e0c 0e0d 0e0e 0e0f\r
+0e10 0e11 0e12 0e13 0e14 0e15 0e16 0e17 0e18 0e19 0e1a 0e1b 0e1c 0e1d 0e1e 0e1f\r
+0e20 0e21 0e22 0e23 0e24 0e25 0e26 0e27 0e28 0e29 0e2a 0e2b 0e2c 0e2d 0e2e 0e2f\r
+0e30 0e31 0e32 0e33 0e34 0e35 0e36 0e37 0e38 0e39 0e3a 2060 200b 2013 2014 0e3f\r
+0e40 0e41 0e42 0e43 0e44 0e45 0e46 0e47 0e48 0e49 0e4a 0e4b 0e4c 0e4d 2122 0e4f\r
+0e50 0e51 0e52 0e53 0e54 0e55 0e56 0e57 0e58 0e59 00ae 00a9 XXXX XXXX XXXX XXXX\r
+\r
+charset CS_MAC_CENTEURO\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 0100 0101 00c9 0104 00d6 00dc 00e1 0105 010c 00e4 010d 0106 0107 00e9 0179\r
+017a 010e 00ed 010f 0112 0113 0116 00f3 0117 00f4 00f6 00f5 00fa 011a 011b 00fc\r
+2020 00b0 0118 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 0119 00a8 2260 0123 012e\r
+012f 012a 2264 2265 012b 0136 2202 2211 0142 013b 013c 013d 013e 0139 013a 0145\r
+0146 0143 00ac 221a 0144 0147 2206 00ab 00bb 2026 00a0 0148 0150 00d5 0151 014c\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 014d 0154 0155 0158 2039 203a 0159 0156\r
+0157 0160 201a 201e 0161 015a 015b 00c1 0164 0165 00cd 017d 017e 016a 00d3 00d4\r
+016b 016e 00da 016f 0170 0171 0172 0173 00dd 00fd 0137 017b 0141 017c 0122 02c7\r
+\r
+charset CS_MAC_SYMBOL\r
+sortpriority E2-E4 -1\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 2200 0023 2203 0025 0026 220d 0028 0029 2217 002b 002c 2212 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+2245 0391 0392 03a7 0394 0395 03a6 0393 0397 0399 03d1 039a 039b 039c 039d 039f\r
+03a0 0398 03a1 03a3 03a4 03a5 03c2 03a9 039e 03a8 0396 005b 2234 005d 22a5 005f\r
+f8e5 03b1 03b2 03c7 03b4 03b5 03c6 03b3 03b7 03b9 03d5 03ba 03bb 03bc 03bd 03bf\r
+03c0 03b8 03c1 03c3 03c4 03c5 03d6 03c9 03be 03c8 03b6 007b 007c 007d 223c 007f\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+20ac 03d2 2032 2264 2044 221e 0192 2663 2666 2665 2660 2194 2190 2191 2192 2193\r
+00b0 00b1 2033 2265 00d7 221d 2202 2022 00f7 2260 2261 2248 2026 f8e6 23af 21b5\r
+2135 2111 211c 2118 2297 2295 2205 2229 222a 2283 2287 2284 2282 2286 2208 2209\r
+2220 2207 00ae 00a9 2122 220f 221a 22c5 00ac 2227 2228 21d4 21d0 21d1 21d2 21d3\r
+22c4 3008 00ae 00a9 2122 2211 239b 239c 239d 23a1 23a2 23a3 23a7 23a8 23a9 23aa\r
+f8ff 3009 222b 2320 23ae 2321 239e 239f 23a0 23a4 23a5 23a6 23ab 23ac 23ad XXXX\r
+\r
+charset CS_MAC_DINGBATS\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 2701 2702 2703 2704 260e 2706 2707 2708 2709 261b 261e 270c 270d 270e 270f\r
+2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 271a 271b 271c 271d 271e 271f\r
+2720 2721 2722 2723 2724 2725 2726 2727 2605 2729 272a 272b 272c 272d 272e 272f\r
+2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 273a 273b 273c 273d 273e 273f\r
+2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 274a 274b 25cf 274d 25a0 274f\r
+2750 2751 2752 25b2 25bc 25c6 2756 25d7 2758 2759 275a 275b 275c 275d 275e 007f\r
+2768 2769 276a 276b 276c 276d 276e 276f 2770 2771 2772 2773 2774 2775 XXXX XXXX\r
+XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX\r
+XXXX 2761 2762 2763 2764 2765 2766 2767 2663 2666 2665 2660 2460 2461 2462 2463\r
+2464 2465 2466 2467 2468 2469 2776 2777 2778 2779 277a 277b 277c 277d 277e 277f\r
+2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 278a 278b 278c 278d 278e 278f\r
+2790 2791 2792 2793 2794 2192 2194 2195 2798 2799 279a 279b 279c 279d 279e 279f\r
+27a0 27a1 27a2 27a3 27a4 27a5 27a6 27a7 27a8 27a9 27aa 27ab 27ac 27ad 27ae 27af\r
+XXXX 27b1 27b2 27b3 27b4 27b5 27b6 27b7 27b8 27b9 27ba 27bb 27bc 27bd 27be XXXX\r
+\r
+  Various Mac character sets have older (usually pre-Euro) variants\r
+  which are documented in the comments in their mapping tables.  I've\r
+  manually applied these changes below.\r
+\r
+  Mac OS Roman variants before Mac OS 8.5 (CURRENCY SIGN rather than\r
+  EURO SIGN):\r
+\r
+charset CS_MAC_ROMAN_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 00e6 00f8\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 00a4 2039 203a fb01 fb02\r
+2021 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_CROATIAN_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 0160 2122 00b4 00a8 2260 017d 00d8\r
+221e 00b1 2264 2265 2206 00b5 2202 2211 220f 0161 222b 00aa 00ba 03a9 017e 00f8\r
+00bf 00a1 00ac 221a 0192 2248 0106 00ab 010c 2026 00a0 00c0 00c3 00d5 0152 0153\r
+0110 2014 201c 201d 2018 2019 00f7 25ca f8ff 00a9 2044 00a4 2039 203a 00c6 00bb\r
+2013 00b7 201a 201e 2030 00c2 0107 00c1 010d 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+0111 00d2 00da 00db 00d9 0131 02c6 02dc 00af 03c0 00cb 02da 00b8 00ca 00e6 02c7\r
+\r
+charset CS_MAC_ICELAND_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+00dd 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 00e6 00f8\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 00a4 00d0 00f0 00de 00fe\r
+00fd 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+charset CS_MAC_ROMANIAN_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 0102 0218\r
+221e 00b1 2264 2265 00a5 00b5 2202 2211 220f 03c0 222b 00aa 00ba 03a9 0103 0219\r
+00bf 00a1 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 00c0 00c3 00d5 0152 0153\r
+2013 2014 201c 201d 2018 2019 00f7 25ca 00ff 0178 2044 00a4 2039 203a 021a 021b\r
+2021 00b7 201a 201e 2030 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+f8ff 00d2 00da 00db 00d9 0131 02c6 02dc 00af 02d8 02d9 02da 00b8 02dd 02db 02c7\r
+\r
+  Mac OS Greek before Mac OS 9.2.2 (SOFT HYPHEN instead of EURO SIGN,\r
+  and undefined instead of SOFT HYPHEN).\r
+\r
+charset CS_MAC_GREEK_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+00c4 00b9 00b2 00c9 00b3 00d6 00dc 0385 00e0 00e2 00e4 0384 00a8 00e7 00e9 00e8\r
+00ea 00eb 00a3 2122 00ee 00ef 2022 00bd 2030 00f4 00f6 00a6 00ad 00f9 00fb 00fc\r
+2020 0393 0394 0398 039b 039e 03a0 00df 00ae 00a9 03a3 03aa 00a7 2260 00b0 00b7\r
+0391 00b1 2264 2265 00a5 0392 0395 0396 0397 0399 039a 039c 03a6 03ab 03a8 03a9\r
+03ac 039d 00ac 039f 03a1 2248 03a4 00ab 00bb 2026 00a0 03a5 03a7 0386 0388 0153\r
+2013 2015 201c 201d 2018 2019 00f7 0389 038a 038c 038e 03ad 03ae 03af 03cc 038f\r
+03cd 03b1 03b2 03c8 03b4 03b5 03c6 03b3 03b7 03b9 03be 03ba 03bb 03bc 03bd 03bf\r
+03c0 03ce 03c1 03c3 03c4 03b8 03c9 03c2 03c7 03c5 03b6 03ca 03cb 0390 03b0 XXXX\r
+\r
+  Mac OS Cyrillic before Mac OS 9.0 (CENT SIGN instead of CYRILLIC\r
+  CAPITAL LETTER GHE WITH UPTURN, PARTIAL DIFFERENTIAL instead of\r
+  CYRILLIC SMALL LETTER GHE WITH UPTURN, CURRENCY SIGN instead of EURO\r
+  SIGN):\r
+\r
+charset CS_MAC_CYRILLIC_OLD\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+2020 00b0 00a2 00a3 00a7 2022 00b6 0406 00ae 00a9 2122 0402 0452 2260 0403 0453\r
+221e 00b1 2264 2265 0456 00b5 2022 0408 0404 0454 0407 0457 0409 0459 040a 045a\r
+0458 0405 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 040b 045b 040c 045c 0455\r
+2013 2014 201c 201d 2018 2019 00f7 201e 040e 045e 040f 045f 2116 0401 0451 044f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 00a4\r
+\r
+  Mac OS Ukrainian (now Cyrillic) before Mac OS 9.0 (CURRENCY SIGN\r
+  instead of EURO SIGN):\r
+\r
+charset CS_MAC_UKRAINE\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f\r
+0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f\r
+2020 00b0 0490 00a3 00a7 2022 00b6 0406 00ae 00a9 2122 0402 0452 2260 0403 0453\r
+221e 00b1 2264 2265 0456 00b5 0491 0408 0404 0454 0407 0457 0409 0459 040a 045a\r
+0458 0405 00ac 221a 0192 2248 2206 00ab 00bb 2026 00a0 040b 045b 040c 045c 0455\r
+2013 2014 201c 201d 2018 2019 00f7 201e 040e 045e 040f 045f 2116 0401 0451 044f\r
+0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f\r
+0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 00a4\r
+\r
+  Mac OS VT100 character set, as used by the "VT100" font.  Basically\r
+  Mac OS Roman hacked about to give it an almost-Latin1 repertoire and\r
+  most of the VT100 line-drawing set too.\r
+\r
+  Point CA is the backward question-mark used for silo overflows.\r
+\r
+  This table was derived by pasting the relevant part of 'utom' 140\r
+  from the "Western Language Encodings" file shipped with TEC 1.5 and\r
+  then manually fixing up the scan line characters to use the Unicode\r
+  3.2 HORIZONTAL SCAN LINE characters rather than UPPER ONE EIGHTH\r
+  BLOCK and LOWER ONE EIGHTH BLOCK with transcoding hints.\r
+\r
+charset CS_MAC_VT100\r
+2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 240a 240b 240c 240d 240e 240f\r
+2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 241a 241b 241c 241d 241e 241f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 2421\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+00dd 00b0 00a2 00a3 00a7 00b8 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+00d7 00b1 2264 2265 00a5 00b5 00b9 00b2 00b3 03c0 00a6 00aa 00ba 2592 00e6 00f8\r
+00bf 00a1 00ac 00bd 0192 00bc 00be 00ab 00bb 2026 XXXX 00c0 00c3 00d5 0152 0153\r
+2013 2014 2518 2510 250c 2514 00f7 2022 00ff 0178 253c 20ac 00d0 00f0 00fe 00de\r
+00fd 00b7 23ba 23bb 2500 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+XXXX 00d2 00da 00db 00d9 23bc 23bd 251c 2524 2534 252c 2502 XXXX XXXX XXXX XXXX\r
+\r
+  As with so many others, before Mac OS 8.5 this font had CURRENCY\r
+  SIGN rather than EURO SIGN.\r
+\r
+charset CS_MAC_VT100_OLD\r
+2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 240a 240b 240c 240d 240e 240f\r
+2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 241a 241b 241c 241d 241e 241f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 2421\r
+00c4 00c5 00c7 00c9 00d1 00d6 00dc 00e1 00e0 00e2 00e4 00e3 00e5 00e7 00e9 00e8\r
+00ea 00eb 00ed 00ec 00ee 00ef 00f1 00f3 00f2 00f4 00f6 00f5 00fa 00f9 00fb 00fc\r
+00dd 00b0 00a2 00a3 00a7 00b8 00b6 00df 00ae 00a9 2122 00b4 00a8 2260 00c6 00d8\r
+00d7 00b1 2264 2265 00a5 00b5 00b9 00b2 00b3 03c0 00a6 00aa 00ba 2592 00e6 00f8\r
+00bf 00a1 00ac 00bd 0192 00bc 00be 00ab 00bb 2026 XXXX 00c0 00c3 00d5 0152 0153\r
+2013 2014 2518 2510 250c 2514 00f7 2022 00ff 0178 253c 00a4 00d0 00f0 00fe 00de\r
+00fd 00b7 23ba 23bb 2500 00c2 00ca 00c1 00cb 00c8 00cd 00ce 00cf 00cc 00d3 00d4\r
+XXXX 00d2 00da 00db 00d9 23bc 23bd 251c 2524 2534 252c 2502 XXXX XXXX XXXX XXXX\r
+\r
+  Roman Czyborra's web site (http://czyborra.com/) has a variety of\r
+  other useful mapping tables, in a slightly different format (and\r
+  gzipped). Here's a shell/Perl function to generate an SBCS table\r
+  from a Czyborra mapping table:\r
+\r
+  gensbcs_c() {\r
+  wget -q -O - "$1" | gzip -d | \\r
+  perl -ne '/^=(.*)\s+U\+(.*)\s+/ and $a[hex $1]=sprintf "%04x", hex $2;' \\r
+   -e 'BEGIN{for($i=0;$i<256;$i++){$a[$i]="XXXX";' \\r
+   -e 'if ($i < 32 or ($i >=127 and $i < 160)) {$a[$i]=sprintf "%04x", $i}}}' \\r
+   -e 'END{for($i=0;$i<256;$i++){printf"%s%s",$a[$i],$i%16==15?"\n":" "}}'\r
+  }\r
+\r
+  So here we have some character sets generated from Czyborra\r
+  mapping tables: VISCII, HP-Roman8, and the DEC Multinational\r
+  Character Set.\r
+\r
+  { echo charset CS_VISCII;\r
+    gensbcs_c http://czyborra.com/charsets/viscii.txt.gz; echo;\r
+    echo charset CS_HP_ROMAN8;\r
+    gensbcs_c http://czyborra.com/charsets/hp-roman8.txt.gz; echo;\r
+    echo charset CS_DEC_MCS;\r
+    gensbcs_c http://czyborra.com/charsets/dec-mcs.txt.gz; echo; }\r
+\r
+charset CS_VISCII\r
+0000 0001 1eb2 0003 0004 1eb4 1eaa 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 1ef6 0015 0016 0017 0018 1ef8 001a 001b 001c 001d 1ef4 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+1ea0 1eae 1eb0 1eb6 1ea4 1ea6 1ea8 1eac 1ebc 1eb8 1ebe 1ec0 1ec2 1ec4 1ec6 1ed0\r
+1ed2 1ed4 1ed6 1ed8 1ee2 1eda 1edc 1ede 1eca 1ece 1ecc 1ec8 1ee6 0168 1ee4 1ef2\r
+00d5 1eaf 1eb1 1eb7 1ea5 1ea7 1ea8 1ead 1ebd 1eb9 1ebf 1ec1 1ec3 1ec5 1ec7 1ed1\r
+1ed3 1ed5 1ed7 1ee0 01a0 1ed9 1edd 1edf 1ecb 1ef0 1ee8 1eea 1eec 01a1 1edb 01af\r
+00c0 00c1 00c2 00c3 1ea2 0102 1eb3 1eb5 00c8 00c9 00ca 1eba 00cc 00cd 0128 1ef3\r
+0110 1ee9 00d2 00d3 00d4 1ea1 1ef7 1eeb 1eed 00d9 00da 1ef9 1ef5 00dd 1ee1 01b0\r
+00e0 00e1 00e2 00e3 1ea3 0103 1eef 1eab 00e8 00e9 00ea 1ebb 00ec 00ed 0129 1ec9\r
+0111 1ef1 00f2 00f3 00f4 00f5 1ecf 1ecd 1ee5 00f9 00fa 0169 1ee7 00fd 1ee3 1eee\r
+\r
+charset CS_HP_ROMAN8\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+00a0 00c0 00c2 00c8 00ca 00cb 00ce 00cf 00b4 02cb 02c6 00a8 02dc 00d9 00db 20a4\r
+00af 00dd 00fd 00b0 00c7 00e7 00d1 00f1 00a1 00bf 00a4 00a3 00a5 00a7 0192 00a2\r
+00e2 00ea 00f4 00fb 00e1 00e9 00f3 00fa 00e0 00e8 00f2 00f9 00e4 00eb 00f6 00fc\r
+00c5 00ee 00d8 00c6 00e5 00ed 00f8 00e6 00c4 00ec 00d6 00dc 00c9 00ef 00df 00d4\r
+00c1 00c3 00e3 00d0 00f0 00cd 00cc 00d3 00d2 00d5 00f5 0160 0161 00da 0178 00ff\r
+00de 00fe 00b7 00b5 00b6 00be 2014 00bc 00bd 00aa 00ba 00ab 25a0 00bb 00b1 XXXX\r
+\r
+charset CS_DEC_MCS\r
+0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f\r
+0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f\r
+0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f\r
+0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f\r
+0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f\r
+0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f\r
+0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f\r
+0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f\r
+0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008a 008b 008c 008d 008e 008f\r
+0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009a 009b 009c 009d 009e 009f\r
+XXXX 00a1 00a2 00a3 XXXX 00a5 XXXX 00a7 00a4 00a9 00aa 00ab XXXX XXXX XXXX XXXX\r
+00b0 00b1 00b2 00b3 XXXX 00b5 00b6 00b7 XXXX 00b9 00ba 00bb 00bc 00bd XXXX 00bf\r
+00c0 00c1 00c2 00c3 00c4 00c5 00c6 00c7 00c8 00c9 00ca 00cb 00cc 00cd 00ce 00cf\r
+XXXX 00d1 00d2 00d3 00d4 00d5 00d6 0152 00d8 00d9 00da 00db 00dc 0178 XXXX 00df\r
+00e0 00e1 00e2 00e3 00e4 00e5 00e6 00e7 00e8 00e9 00ea 00eb 00ec 00ed 00ee 00ef\r
+XXXX 00f1 00f2 00f3 00f4 00f5 00f6 0153 00f8 00f9 00fa 00fb 00fc 00ff XXXX XXXX\r
diff --git a/putty/CHARSET/SBCSDAT.C b/putty/CHARSET/SBCSDAT.C
new file mode 100644 (file)
index 0000000..664bcd5
--- /dev/null
@@ -0,0 +1,4018 @@
+/*\r
+ * sbcsdat.c - data definitions for single-byte character sets.\r
+ *\r
+ * Generated by sbcsgen.pl from sbcs.dat.\r
+ * You should edit those files rather than editing this one.\r
+ */\r
+\r
+#ifndef ENUM_CHARSETS\r
+\r
+#include "charset.h"\r
+#include "internal.h"\r
+\r
+static const sbcs_data data_CS_ISO8859_1 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_1 = {\r
+    CS_ISO8859_1, read_sbcs, write_sbcs, &data_CS_ISO8859_1\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_2 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,\r
+    0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,\r
+    0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,\r
+    0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,\r
+    0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,\r
+    0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,\r
+    0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,\r
+    0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,\r
+    0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,\r
+    0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,\r
+    0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,\r
+    0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa4, 0xa7, 0xa8, 0xad, 0xb0, 0xb4, 0xb8,\r
+    0xc1, 0xc2, 0xc4, 0xc7, 0xc9, 0xcb, 0xcd, 0xce,\r
+    0xd3, 0xd4, 0xd6, 0xd7, 0xda, 0xdc, 0xdd, 0xdf,\r
+    0xe1, 0xe2, 0xe4, 0xe7, 0xe9, 0xeb, 0xed, 0xee,\r
+    0xf3, 0xf4, 0xf6, 0xf7, 0xfa, 0xfc, 0xfd, 0xc3,\r
+    0xe3, 0xa1, 0xb1, 0xc6, 0xe6, 0xc8, 0xe8, 0xcf,\r
+    0xef, 0xd0, 0xf0, 0xca, 0xea, 0xcc, 0xec, 0xc5,\r
+    0xe5, 0xa5, 0xb5, 0xa3, 0xb3, 0xd1, 0xf1, 0xd2,\r
+    0xf2, 0xd5, 0xf5, 0xc0, 0xe0, 0xd8, 0xf8, 0xa6,\r
+    0xb6, 0xaa, 0xba, 0xa9, 0xb9, 0xde, 0xfe, 0xab,\r
+    0xbb, 0xd9, 0xf9, 0xdb, 0xfb, 0xac, 0xbc, 0xaf,\r
+    0xbf, 0xae, 0xbe, 0xb7, 0xa2, 0xff, 0xb2, 0xbd\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_2 = {\r
+    CS_ISO8859_2, read_sbcs, write_sbcs, &data_CS_ISO8859_2\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_3 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, ERROR , 0x0124, 0x00a7,\r
+    0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, ERROR , 0x017b,\r
+    0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7,\r
+    0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, ERROR , 0x017c,\r
+    0x00c0, 0x00c1, 0x00c2, ERROR , 0x00c4, 0x010a, 0x0108, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    ERROR , 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7,\r
+    0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, ERROR , 0x00e4, 0x010b, 0x0109, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    ERROR , 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7,\r
+    0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa3, 0xa4, 0xa7, 0xa8, 0xad, 0xb0, 0xb2,\r
+    0xb3, 0xb4, 0xb5, 0xb7, 0xb8, 0xbd, 0xc0, 0xc1,\r
+    0xc2, 0xc4, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc,\r
+    0xcd, 0xce, 0xcf, 0xd1, 0xd2, 0xd3, 0xd4, 0xd6,\r
+    0xd7, 0xd9, 0xda, 0xdb, 0xdc, 0xdf, 0xe0, 0xe1,\r
+    0xe2, 0xe4, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec,\r
+    0xed, 0xee, 0xef, 0xf1, 0xf2, 0xf3, 0xf4, 0xf6,\r
+    0xf7, 0xf9, 0xfa, 0xfb, 0xfc, 0xc6, 0xe6, 0xc5,\r
+    0xe5, 0xd8, 0xf8, 0xab, 0xbb, 0xd5, 0xf5, 0xa6,\r
+    0xb6, 0xa1, 0xb1, 0xa9, 0xb9, 0xac, 0xbc, 0xde,\r
+    0xfe, 0xaa, 0xba, 0xdd, 0xfd, 0xaf, 0xbf, 0xa2,\r
+    0xff\r
+    },\r
+    249\r
+};\r
+const charset_spec charset_CS_ISO8859_3 = {\r
+    CS_ISO8859_3, read_sbcs, write_sbcs, &data_CS_ISO8859_3\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_4 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,\r
+    0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,\r
+    0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,\r
+    0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,\r
+    0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,\r
+    0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,\r
+    0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,\r
+    0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,\r
+    0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,\r
+    0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa4, 0xa7, 0xa8, 0xad, 0xaf, 0xb0, 0xb4,\r
+    0xb8, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc9,\r
+    0xcb, 0xcd, 0xce, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,\r
+    0xda, 0xdb, 0xdc, 0xdf, 0xe1, 0xe2, 0xe3, 0xe4,\r
+    0xe5, 0xe6, 0xe9, 0xeb, 0xed, 0xee, 0xf4, 0xf5,\r
+    0xf6, 0xf7, 0xf8, 0xfa, 0xfb, 0xfc, 0xc0, 0xe0,\r
+    0xa1, 0xb1, 0xc8, 0xe8, 0xd0, 0xf0, 0xaa, 0xba,\r
+    0xcc, 0xec, 0xca, 0xea, 0xab, 0xbb, 0xa5, 0xb5,\r
+    0xcf, 0xef, 0xc7, 0xe7, 0xd3, 0xf3, 0xa2, 0xa6,\r
+    0xb6, 0xd1, 0xf1, 0xbd, 0xbf, 0xd2, 0xf2, 0xa3,\r
+    0xb3, 0xa9, 0xb9, 0xac, 0xbc, 0xdd, 0xfd, 0xde,\r
+    0xfe, 0xd9, 0xf9, 0xae, 0xbe, 0xb7, 0xff, 0xb2\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_4 = {\r
+    CS_ISO8859_4, read_sbcs, write_sbcs, &data_CS_ISO8859_4\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_5 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,\r
+    0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,\r
+    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
+    0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,\r
+    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
+    0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,\r
+    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
+    0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,\r
+    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
+    0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,\r
+    0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,\r
+    0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xfd, 0xad, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5,\r
+    0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xae,\r
+    0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,\r
+    0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,\r
+    0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,\r
+    0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,\r
+    0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,\r
+    0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde,\r
+    0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,\r
+    0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee,\r
+    0xef, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfe, 0xff, 0xf0\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_5 = {\r
+    CS_ISO8859_5, read_sbcs, write_sbcs, &data_CS_ISO8859_5\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_6 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, ERROR , ERROR , ERROR , 0x00a4, ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , 0x060c, 0x00ad, ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , 0x061b, ERROR , ERROR , ERROR , 0x061f,\r
+    ERROR , 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,\r
+    0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,\r
+    0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,\r
+    0x0638, 0x0639, 0x063a, ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,\r
+    0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f,\r
+    0x0650, 0x0651, 0x0652, ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa4, 0xad, 0xac, 0xbb, 0xbf, 0xc1, 0xc2,\r
+    0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca,\r
+    0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2,\r
+    0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2\r
+    },\r
+    211\r
+};\r
+const charset_spec charset_CS_ISO8859_6 = {\r
+    CS_ISO8859_6, read_sbcs, write_sbcs, &data_CS_ISO8859_6\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_7 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x2018, 0x2019, 0x00a3, ERROR , ERROR , 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, ERROR , 0x00ab, 0x00ac, 0x00ad, ERROR , 0x2015,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7,\r
+    0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,\r
+    0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,\r
+    0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,\r
+    0x03a0, 0x03a1, ERROR , 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,\r
+    0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,\r
+    0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,\r
+    0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,\r
+    0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,\r
+    0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa3, 0xa6, 0xa7, 0xa8, 0xa9, 0xab, 0xac,\r
+    0xad, 0xb0, 0xb1, 0xb2, 0xb3, 0xb7, 0xbb, 0xbd,\r
+    0xb4, 0xb5, 0xb6, 0xb8, 0xb9, 0xba, 0xbc, 0xbe,\r
+    0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,\r
+    0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,\r
+    0xcf, 0xd0, 0xd1, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xaf,\r
+    0xa1, 0xa2\r
+    },\r
+    250\r
+};\r
+const charset_spec charset_CS_ISO8859_7 = {\r
+    CS_ISO8859_7, read_sbcs, write_sbcs, &data_CS_ISO8859_7\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_8 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, ERROR , 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , 0x2017,\r
+    0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,\r
+    0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,\r
+    0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,\r
+    0x05e8, 0x05e9, 0x05ea, ERROR , ERROR , 0x200e, 0x200f, ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,\r
+    0xa9, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1,\r
+    0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,\r
+    0xbb, 0xbc, 0xbd, 0xbe, 0xaa, 0xba, 0xe0, 0xe1,\r
+    0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,\r
+    0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1,\r
+    0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,\r
+    0xfa, 0xfd, 0xfe, 0xdf\r
+    },\r
+    220\r
+};\r
+const charset_spec charset_CS_ISO8859_8 = {\r
+    CS_ISO8859_8, read_sbcs, write_sbcs, &data_CS_ISO8859_8\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_9 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,\r
+    0xd9, 0xda, 0xdb, 0xdc, 0xdf, 0xe0, 0xe1, 0xe2,\r
+    0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,\r
+    0xeb, 0xec, 0xed, 0xee, 0xef, 0xf1, 0xf2, 0xf3,\r
+    0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\r
+    0xfc, 0xff, 0xd0, 0xf0, 0xdd, 0xfd, 0xde, 0xfe\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_9 = {\r
+    CS_ISO8859_9, read_sbcs, write_sbcs, &data_CS_ISO8859_9\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_10 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7,\r
+    0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a,\r
+    0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7,\r
+    0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b,\r
+    0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,\r
+    0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf,\r
+    0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168,\r
+    0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,\r
+    0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,\r
+    0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef,\r
+    0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169,\r
+    0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa7, 0xad, 0xb0, 0xb7, 0xc1, 0xc2, 0xc3,\r
+    0xc4, 0xc5, 0xc6, 0xc9, 0xcb, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, 0xda, 0xdb,\r
+    0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe2, 0xe3, 0xe4,\r
+    0xe5, 0xe6, 0xe9, 0xeb, 0xed, 0xee, 0xef, 0xf0,\r
+    0xf3, 0xf4, 0xf5, 0xf6, 0xf8, 0xfa, 0xfb, 0xfc,\r
+    0xfd, 0xfe, 0xc0, 0xe0, 0xa1, 0xb1, 0xc8, 0xe8,\r
+    0xa9, 0xb9, 0xa2, 0xb2, 0xcc, 0xec, 0xca, 0xea,\r
+    0xa3, 0xb3, 0xa5, 0xb5, 0xa4, 0xb4, 0xc7, 0xe7,\r
+    0xa6, 0xb6, 0xff, 0xa8, 0xb8, 0xd1, 0xf1, 0xaf,\r
+    0xbf, 0xd2, 0xf2, 0xaa, 0xba, 0xab, 0xbb, 0xd7,\r
+    0xf7, 0xae, 0xbe, 0xd9, 0xf9, 0xac, 0xbc, 0xbd\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_10 = {\r
+    CS_ISO8859_10, read_sbcs, write_sbcs, &data_CS_ISO8859_10\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_11 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,\r
+    0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,\r
+    0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,\r
+    0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,\r
+    0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,\r
+    0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,\r
+    0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,\r
+    0x0e38, 0x0e39, 0x0e3a, ERROR , ERROR , ERROR , ERROR , 0x0e3f,\r
+    0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,\r
+    0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f,\r
+    0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,\r
+    0x0e58, 0x0e59, 0x0e5a, 0x0e5b, ERROR , ERROR , ERROR , ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\r
+    0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\r
+    0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,\r
+    0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb\r
+    },\r
+    248\r
+};\r
+const charset_spec charset_CS_ISO8859_11 = {\r
+    CS_ISO8859_11, read_sbcs, write_sbcs, &data_CS_ISO8859_11\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_13 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7,\r
+    0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6,\r
+    0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112,\r
+    0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b,\r
+    0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7,\r
+    0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df,\r
+    0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113,\r
+    0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c,\r
+    0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7,\r
+    0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa2, 0xa3, 0xa4, 0xa6, 0xa7, 0xa9, 0xab,\r
+    0xac, 0xad, 0xae, 0xb0, 0xb1, 0xb2, 0xb3, 0xb5,\r
+    0xb6, 0xb7, 0xb9, 0xbb, 0xbc, 0xbd, 0xbe, 0xc4,\r
+    0xc5, 0xaf, 0xc9, 0xd3, 0xd5, 0xd6, 0xd7, 0xa8,\r
+    0xdc, 0xdf, 0xe4, 0xe5, 0xbf, 0xe9, 0xf3, 0xf5,\r
+    0xf6, 0xf7, 0xb8, 0xfc, 0xc2, 0xe2, 0xc0, 0xe0,\r
+    0xc3, 0xe3, 0xc8, 0xe8, 0xc7, 0xe7, 0xcb, 0xeb,\r
+    0xc6, 0xe6, 0xcc, 0xec, 0xce, 0xee, 0xc1, 0xe1,\r
+    0xcd, 0xed, 0xcf, 0xef, 0xd9, 0xf9, 0xd1, 0xf1,\r
+    0xd2, 0xf2, 0xd4, 0xf4, 0xaa, 0xba, 0xda, 0xfa,\r
+    0xd0, 0xf0, 0xdb, 0xfb, 0xd8, 0xf8, 0xca, 0xea,\r
+    0xdd, 0xfd, 0xde, 0xfe, 0xff, 0xb4, 0xa1, 0xa5\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_13 = {\r
+    CS_ISO8859_13, read_sbcs, write_sbcs, &data_CS_ISO8859_13\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_14 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7,\r
+    0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178,\r
+    0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56,\r
+    0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa3, 0xa7, 0xa9, 0xad, 0xae, 0xb6, 0xc0,\r
+    0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,\r
+    0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd1,\r
+    0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, 0xd9, 0xda,\r
+    0xdb, 0xdc, 0xdd, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\r
+    0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\r
+    0xec, 0xed, 0xee, 0xef, 0xf1, 0xf2, 0xf3, 0xf4,\r
+    0xf5, 0xf6, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd,\r
+    0xff, 0xa4, 0xa5, 0xb2, 0xb3, 0xd0, 0xf0, 0xde,\r
+    0xfe, 0xaf, 0xa1, 0xa2, 0xa6, 0xab, 0xb0, 0xb1,\r
+    0xb4, 0xb5, 0xb7, 0xb9, 0xbb, 0xbf, 0xd7, 0xf7,\r
+    0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0xac, 0xbc\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_14 = {\r
+    CS_ISO8859_14, read_sbcs, write_sbcs, &data_CS_ISO8859_14\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_15 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7,\r
+    0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,\r
+    0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa5, 0xa7, 0xa9, 0xaa,\r
+    0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2,\r
+    0xb3, 0xb5, 0xb6, 0xb7, 0xb9, 0xba, 0xbb, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,\r
+    0xbc, 0xbd, 0xa6, 0xa8, 0xbe, 0xb4, 0xb8, 0xa4\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_15 = {\r
+    CS_ISO8859_15, read_sbcs, write_sbcs, &data_CS_ISO8859_15\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_16 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7,\r
+    0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b,\r
+    0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7,\r
+    0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c,\r
+    0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a,\r
+    0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b,\r
+    0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa7, 0xa9, 0xab, 0xad, 0xb0, 0xb1, 0xb6,\r
+    0xb7, 0xbb, 0xc0, 0xc1, 0xc2, 0xc4, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd2, 0xd3, 0xd4, 0xd6, 0xd9, 0xda, 0xdb, 0xdc,\r
+    0xdf, 0xe0, 0xe1, 0xe2, 0xe4, 0xe6, 0xe7, 0xe8,\r
+    0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf2,\r
+    0xf3, 0xf4, 0xf6, 0xf9, 0xfa, 0xfb, 0xfc, 0xff,\r
+    0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, 0xb2, 0xb9,\r
+    0xd0, 0xf0, 0xdd, 0xfd, 0xa3, 0xb3, 0xd1, 0xf1,\r
+    0xd5, 0xf5, 0xbc, 0xbd, 0xd7, 0xf7, 0xa6, 0xa8,\r
+    0xd8, 0xf8, 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4,\r
+    0xb8, 0xaa, 0xba, 0xde, 0xfe, 0xb5, 0xa5, 0xa4\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_ISO8859_16 = {\r
+    CS_ISO8859_16, read_sbcs, write_sbcs, &data_CS_ISO8859_16\r
+};\r
+\r
+static const sbcs_data data_CS_ISO8859_1_X11 = {\r
+    {\r
+    0x0020, 0x2666, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0,\r
+    0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c,\r
+    0x23ba, 0x23bb, 0x2500, 0x23bc, 0x23bd, 0x251c, 0x2524, 0x2534,\r
+    0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00b7,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,\r
+    0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,\r
+    0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,\r
+    0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff\r
+    },\r
+    {\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,\r
+    0x1c, 0x1d, 0x1a, 0x1b, 0x10, 0x11, 0x13, 0x14,\r
+    0x03, 0x06, 0x0a, 0x04, 0x05, 0x09, 0x12, 0x19,\r
+    0x0d, 0x0c, 0x0e, 0x0b, 0x15, 0x16, 0x18, 0x17,\r
+    0x0f, 0x02, 0x01\r
+    },\r
+    251\r
+};\r
+const charset_spec charset_CS_ISO8859_1_X11 = {\r
+    CS_ISO8859_1_X11, read_sbcs, write_sbcs, &data_CS_ISO8859_1_X11\r
+};\r
+\r
+static const sbcs_data data_CS_CP437 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,\r
+    0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,\r
+    0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,\r
+    0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192,\r
+    0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,\r
+    0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,\r
+    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
+    0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,\r
+    0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,\r
+    0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,\r
+    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,\r
+    0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,\r
+    0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,\r
+    0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,\r
+    0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,\r
+    0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xff, 0xad, 0x9b, 0x9c, 0x9d, 0xa6, 0xae, 0xaa,\r
+    0xf8, 0xf1, 0xfd, 0xe6, 0xfa, 0xa7, 0xaf, 0xac,\r
+    0xab, 0xa8, 0x8e, 0x8f, 0x92, 0x80, 0x90, 0xa5,\r
+    0x99, 0x9a, 0xe1, 0x85, 0xa0, 0x83, 0x84, 0x86,\r
+    0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1,\r
+    0x8c, 0x8b, 0xa4, 0x95, 0xa2, 0x93, 0x94, 0xf6,\r
+    0x97, 0xa3, 0x96, 0x81, 0x98, 0x9f, 0xe2, 0xe9,\r
+    0xe4, 0xe8, 0xea, 0xe0, 0xeb, 0xee, 0xe3, 0xe5,\r
+    0xe7, 0xed, 0xfc, 0x9e, 0xf9, 0xfb, 0xec, 0xef,\r
+    0xf7, 0xf0, 0xf3, 0xf2, 0xa9, 0xf4, 0xf5, 0xc4,\r
+    0xb3, 0xda, 0xbf, 0xc0, 0xd9, 0xc3, 0xb4, 0xc2,\r
+    0xc1, 0xc5, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8,\r
+    0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc,\r
+    0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2,\r
+    0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0xdf,\r
+    0xdc, 0xdb, 0xdd, 0xde, 0xb0, 0xb1, 0xb2, 0xfe\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_CP437 = {\r
+    CS_CP437, read_sbcs, write_sbcs, &data_CS_CP437\r
+};\r
+\r
+static const sbcs_data data_CS_CP850 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,\r
+    0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,\r
+    0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,\r
+    0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,\r
+    0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,\r
+    0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,\r
+    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,\r
+    0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,\r
+    0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,\r
+    0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,\r
+    0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,\r
+    0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,\r
+    0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,\r
+    0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,\r
+    0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,\r
+    0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5,\r
+    0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee,\r
+    0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa,\r
+    0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8,\r
+    0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80,\r
+    0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8,\r
+    0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e,\r
+    0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1,\r
+    0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87,\r
+    0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b,\r
+    0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6,\r
+    0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98,\r
+    0xd5, 0x9f, 0xf2, 0xc4, 0xb3, 0xda, 0xbf, 0xc0,\r
+    0xd9, 0xc3, 0xb4, 0xc2, 0xc1, 0xc5, 0xcd, 0xba,\r
+    0xc9, 0xbb, 0xc8, 0xbc, 0xcc, 0xb9, 0xcb, 0xca,\r
+    0xce, 0xdf, 0xdc, 0xdb, 0xb0, 0xb1, 0xb2, 0xfe\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_CP850 = {\r
+    CS_CP850, read_sbcs, write_sbcs, &data_CS_CP850\r
+};\r
+\r
+static const sbcs_data data_CS_CP866 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
+    0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,\r
+    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
+    0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,\r
+    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
+    0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,\r
+    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,\r
+    0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,\r
+    0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,\r
+    0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,\r
+    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,\r
+    0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,\r
+    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
+    0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,\r
+    0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,\r
+    0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xff, 0xfd, 0xf8, 0xfa, 0xf0, 0xf2, 0xf4, 0xf6,\r
+    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,\r
+    0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,\r
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,\r
+    0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf1, 0xf3, 0xf5, 0xf7, 0xfc, 0xf9, 0xfb, 0xc4,\r
+    0xb3, 0xda, 0xbf, 0xc0, 0xd9, 0xc3, 0xb4, 0xc2,\r
+    0xc1, 0xc5, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8,\r
+    0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc,\r
+    0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2,\r
+    0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0xdf,\r
+    0xdc, 0xdb, 0xdd, 0xde, 0xb0, 0xb1, 0xb2, 0xfe\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_CP866 = {\r
+    CS_CP866, read_sbcs, write_sbcs, &data_CS_CP866\r
+};\r
+\r
+static const sbcs_data data_CS_CP1250 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, ERROR , 0x201e, 0x2026, 0x2020, 0x2021,\r
+    ERROR , 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    ERROR , 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a,\r
+    0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b,\r
+    0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c,\r
+    0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,\r
+    0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,\r
+    0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,\r
+    0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,\r
+    0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,\r
+    0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,\r
+    0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,\r
+    0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa4, 0xa6, 0xa7, 0xa8, 0xa9, 0xab, 0xac,\r
+    0xad, 0xae, 0xb0, 0xb1, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xbb, 0xc1, 0xc2, 0xc4, 0xc7, 0xc9, 0xcb,\r
+    0xcd, 0xce, 0xd3, 0xd4, 0xd6, 0xd7, 0xda, 0xdc,\r
+    0xdd, 0xdf, 0xe1, 0xe2, 0xe4, 0xe7, 0xe9, 0xeb,\r
+    0xed, 0xee, 0xf3, 0xf4, 0xf6, 0xf7, 0xfa, 0xfc,\r
+    0xfd, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, 0xc8,\r
+    0xe8, 0xcf, 0xef, 0xd0, 0xf0, 0xca, 0xea, 0xcc,\r
+    0xec, 0xc5, 0xe5, 0xbc, 0xbe, 0xa3, 0xb3, 0xd1,\r
+    0xf1, 0xd2, 0xf2, 0xd5, 0xf5, 0xc0, 0xe0, 0xd8,\r
+    0xf8, 0x8c, 0x9c, 0xaa, 0xba, 0x8a, 0x9a, 0xde,\r
+    0xfe, 0x8d, 0x9d, 0xd9, 0xf9, 0xdb, 0xfb, 0x8f,\r
+    0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0xa1, 0xa2, 0xff,\r
+    0xb2, 0xbd, 0x96, 0x97, 0x91, 0x92, 0x82, 0x93,\r
+    0x94, 0x84, 0x86, 0x87, 0x95, 0x85, 0x89, 0x8b,\r
+    0x9b, 0x80, 0x99\r
+    },\r
+    251\r
+};\r
+const charset_spec charset_CS_CP1250 = {\r
+    CS_CP1250, read_sbcs, write_sbcs, &data_CS_CP1250\r
+};\r
+\r
+static const sbcs_data data_CS_CP1251 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,\r
+    0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    ERROR , 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,\r
+    0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,\r
+    0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,\r
+    0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,\r
+    0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,\r
+    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
+    0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,\r
+    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
+    0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,\r
+    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
+    0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,\r
+    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
+    0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa4, 0xa6, 0xa7, 0xa9, 0xab, 0xac, 0xad,\r
+    0xae, 0xb0, 0xb1, 0xb5, 0xb6, 0xb7, 0xbb, 0xa8,\r
+    0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, 0xa3, 0x8a,\r
+    0x8c, 0x8e, 0x8d, 0xa1, 0x8f, 0xc0, 0xc1, 0xc2,\r
+    0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca,\r
+    0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2,\r
+    0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,\r
+    0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2,\r
+    0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,\r
+    0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2,\r
+    0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa,\r
+    0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0xb8, 0x90, 0x83,\r
+    0xba, 0xbe, 0xb3, 0xbf, 0xbc, 0x9a, 0x9c, 0x9e,\r
+    0x9d, 0xa2, 0x9f, 0xa5, 0xb4, 0x96, 0x97, 0x91,\r
+    0x92, 0x82, 0x93, 0x94, 0x84, 0x86, 0x87, 0x95,\r
+    0x85, 0x89, 0x8b, 0x9b, 0x88, 0xb9, 0x99\r
+    },\r
+    255\r
+};\r
+const charset_spec charset_CS_CP1251 = {\r
+    CS_CP1251, read_sbcs, write_sbcs, &data_CS_CP1251\r
+};\r
+\r
+static const sbcs_data data_CS_CP1252 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, ERROR , 0x017d, ERROR ,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, ERROR , 0x017e, 0x0178,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\r
+    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\r
+    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,\r
+    0x8c, 0x9c, 0x8a, 0x9a, 0x9f, 0x8e, 0x9e, 0x83,\r
+    0x88, 0x98, 0x96, 0x97, 0x91, 0x92, 0x82, 0x93,\r
+    0x94, 0x84, 0x86, 0x87, 0x95, 0x85, 0x89, 0x8b,\r
+    0x9b, 0x80, 0x99\r
+    },\r
+    251\r
+};\r
+const charset_spec charset_CS_CP1252 = {\r
+    CS_CP1252, read_sbcs, write_sbcs, &data_CS_CP1252\r
+};\r
+\r
+static const sbcs_data data_CS_CP1253 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    ERROR , 0x2030, ERROR , 0x2039, ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    ERROR , 0x2122, ERROR , 0x203a, ERROR , ERROR , ERROR , ERROR ,\r
+    0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, ERROR , 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7,\r
+    0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,\r
+    0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,\r
+    0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,\r
+    0x03a0, 0x03a1, ERROR , 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,\r
+    0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,\r
+    0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,\r
+    0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,\r
+    0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,\r
+    0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9,\r
+    0xab, 0xac, 0xad, 0xae, 0xb0, 0xb1, 0xb2, 0xb3,\r
+    0xb5, 0xb6, 0xb7, 0xbb, 0xbd, 0x83, 0xb4, 0xa1,\r
+    0xa2, 0xb8, 0xb9, 0xba, 0xbc, 0xbe, 0xbf, 0xc0,\r
+    0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,\r
+    0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,\r
+    0xd1, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,\r
+    0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1,\r
+    0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9,\r
+    0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1,\r
+    0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,\r
+    0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x96, 0x97, 0xaf,\r
+    0x91, 0x92, 0x82, 0x93, 0x94, 0x84, 0x86, 0x87,\r
+    0x95, 0x85, 0x89, 0x8b, 0x9b, 0x80, 0x99\r
+    },\r
+    239\r
+};\r
+const charset_spec charset_CS_CP1253 = {\r
+    CS_CP1253, read_sbcs, write_sbcs, &data_CS_CP1253\r
+};\r
+\r
+static const sbcs_data data_CS_CP1254 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, ERROR , ERROR , ERROR ,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, ERROR , ERROR , 0x0178,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,\r
+    0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,\r
+    0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,\r
+    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\r
+    0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,\r
+    0xd9, 0xda, 0xdb, 0xdc, 0xdf, 0xe0, 0xe1, 0xe2,\r
+    0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,\r
+    0xeb, 0xec, 0xed, 0xee, 0xef, 0xf1, 0xf2, 0xf3,\r
+    0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\r
+    0xfc, 0xff, 0xd0, 0xf0, 0xdd, 0xfd, 0x8c, 0x9c,\r
+    0xde, 0xfe, 0x8a, 0x9a, 0x9f, 0x83, 0x88, 0x98,\r
+    0x96, 0x97, 0x91, 0x92, 0x82, 0x93, 0x94, 0x84,\r
+    0x86, 0x87, 0x95, 0x85, 0x89, 0x8b, 0x9b, 0x80,\r
+    0x99\r
+    },\r
+    249\r
+};\r
+const charset_spec charset_CS_CP1254 = {\r
+    CS_CP1254, read_sbcs, write_sbcs, &data_CS_CP1254\r
+};\r
+\r
+static const sbcs_data data_CS_CP1255 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x02c6, 0x2030, ERROR , 0x2039, ERROR , ERROR , ERROR , ERROR ,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    0x02dc, 0x2122, ERROR , 0x203a, ERROR , ERROR , ERROR , ERROR ,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7,\r
+    0x05b8, 0x05b9, ERROR , 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf,\r
+    0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3,\r
+    0x05f4, ERROR , ERROR , ERROR , ERROR , ERROR , ERROR , ERROR ,\r
+    0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,\r
+    0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,\r
+    0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,\r
+    0x05e8, 0x05e9, 0x05ea, ERROR , ERROR , 0x200e, 0x200f, ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa5, 0xa6, 0xa7, 0xa8,\r
+    0xa9, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1,\r
+    0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,\r
+    0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xaa, 0xba, 0x83,\r
+    0x88, 0x98, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5,\r
+    0xc6, 0xc7, 0xc8, 0xc9, 0xcb, 0xcc, 0xcd, 0xce,\r
+    0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xe0, 0xe1, 0xe2,\r
+    0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,\r
+    0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2,\r
+    0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa,\r
+    0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xfd, 0xfe, 0x96,\r
+    0x97, 0x91, 0x92, 0x82, 0x93, 0x94, 0x84, 0x86,\r
+    0x87, 0x95, 0x85, 0x89, 0x8b, 0x9b, 0xa4, 0x80,\r
+    0x99\r
+    },\r
+    233\r
+};\r
+const charset_spec charset_CS_CP1255 = {\r
+    CS_CP1255, read_sbcs, write_sbcs, &data_CS_CP1255\r
+};\r
+\r
+static const sbcs_data data_CS_CP1256 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,\r
+    0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba,\r
+    0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f,\r
+    0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,\r
+    0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,\r
+    0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7,\r
+    0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643,\r
+    0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef,\r
+    0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7,\r
+    0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,\r
+    0xa9, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1,\r
+    0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,\r
+    0xbb, 0xbc, 0xbd, 0xbe, 0xd7, 0xe0, 0xe2, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xee, 0xef, 0xf4, 0xf7,\r
+    0xf9, 0xfb, 0xfc, 0x8c, 0x9c, 0x83, 0x88, 0xa1,\r
+    0xba, 0xbf, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,\r
+    0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,\r
+    0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,\r
+    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\r
+    0xe1, 0xe3, 0xe4, 0xe5, 0xe6, 0xec, 0xed, 0xf0,\r
+    0xf1, 0xf2, 0xf3, 0xf5, 0xf6, 0xf8, 0xfa, 0x8a,\r
+    0x81, 0x8d, 0x8f, 0x9a, 0x8e, 0x98, 0x90, 0x9f,\r
+    0xaa, 0xc0, 0xff, 0x9d, 0x9e, 0xfd, 0xfe, 0x96,\r
+    0x97, 0x91, 0x92, 0x82, 0x93, 0x94, 0x84, 0x86,\r
+    0x87, 0x95, 0x85, 0x89, 0x8b, 0x9b, 0x80, 0x99\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_CP1256 = {\r
+    CS_CP1256, read_sbcs, write_sbcs, &data_CS_CP1256\r
+};\r
+\r
+static const sbcs_data data_CS_CP1257 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, ERROR , 0x201e, 0x2026, 0x2020, 0x2021,\r
+    ERROR , 0x2030, ERROR , 0x2039, ERROR , 0x00a8, 0x02c7, 0x00b8,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    ERROR , 0x2122, ERROR , 0x203a, ERROR , 0x00af, 0x02db, ERROR ,\r
+    0x00a0, ERROR , 0x00a2, 0x00a3, 0x00a4, ERROR , 0x00a6, 0x00a7,\r
+    0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6,\r
+    0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112,\r
+    0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b,\r
+    0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7,\r
+    0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df,\r
+    0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113,\r
+    0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c,\r
+    0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7,\r
+    0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa2, 0xa3, 0xa4, 0xa6, 0xa7, 0x8d, 0xa9,\r
+    0xab, 0xac, 0xad, 0xae, 0x9d, 0xb0, 0xb1, 0xb2,\r
+    0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0x8f, 0xb9, 0xbb,\r
+    0xbc, 0xbd, 0xbe, 0xc4, 0xc5, 0xaf, 0xc9, 0xd3,\r
+    0xd5, 0xd6, 0xd7, 0xa8, 0xdc, 0xdf, 0xe4, 0xe5,\r
+    0xbf, 0xe9, 0xf3, 0xf5, 0xf6, 0xf7, 0xb8, 0xfc,\r
+    0xc2, 0xe2, 0xc0, 0xe0, 0xc3, 0xe3, 0xc8, 0xe8,\r
+    0xc7, 0xe7, 0xcb, 0xeb, 0xc6, 0xe6, 0xcc, 0xec,\r
+    0xce, 0xee, 0xc1, 0xe1, 0xcd, 0xed, 0xcf, 0xef,\r
+    0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0xd4, 0xf4,\r
+    0xaa, 0xba, 0xda, 0xfa, 0xd0, 0xf0, 0xdb, 0xfb,\r
+    0xd8, 0xf8, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe,\r
+    0x8e, 0xff, 0x9e, 0x96, 0x97, 0x91, 0x92, 0x82,\r
+    0x93, 0x94, 0x84, 0x86, 0x87, 0x95, 0x85, 0x89,\r
+    0x8b, 0x9b, 0x80, 0x99\r
+    },\r
+    244\r
+};\r
+const charset_spec charset_CS_CP1257 = {\r
+    CS_CP1257, read_sbcs, write_sbcs, &data_CS_CP1257\r
+};\r
+\r
+static const sbcs_data data_CS_CP1258 = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x20ac, ERROR , 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,\r
+    0x02c6, 0x2030, ERROR , 0x2039, 0x0152, ERROR , ERROR , ERROR ,\r
+    ERROR , 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,\r
+    0x02dc, 0x2122, ERROR , 0x203a, 0x0153, ERROR , ERROR , 0x0178,\r
+    0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,\r
+    0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,\r
+    0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,\r
+    0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,\r
+    0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7,\r
+    0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf,\r
+    0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7,\r
+    0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df,\r
+    0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7,\r
+    0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef,\r
+    0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7,\r
+    0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,\r
+    0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,\r
+    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,\r
+    0xc0, 0xc1, 0xc2, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,\r
+    0xc9, 0xca, 0xcb, 0xcd, 0xce, 0xcf, 0xd1, 0xd3,\r
+    0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc,\r
+    0xdf, 0xe0, 0xe1, 0xe2, 0xe4, 0xe5, 0xe6, 0xe7,\r
+    0xe8, 0xe9, 0xea, 0xeb, 0xed, 0xee, 0xef, 0xf1,\r
+    0xf3, 0xf4, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\r
+    0xfc, 0xff, 0xc3, 0xe3, 0xd0, 0xf0, 0x8c, 0x9c,\r
+    0x9f, 0x83, 0xd5, 0xf5, 0xdd, 0xfd, 0x88, 0x98,\r
+    0xcc, 0xec, 0xde, 0xd2, 0xf2, 0x96, 0x97, 0x91,\r
+    0x92, 0x82, 0x93, 0x94, 0x84, 0x86, 0x87, 0x95,\r
+    0x85, 0x89, 0x8b, 0x9b, 0xfe, 0x80, 0x99\r
+    },\r
+    247\r
+};\r
+const charset_spec charset_CS_CP1258 = {\r
+    CS_CP1258, read_sbcs, write_sbcs, &data_CS_CP1258\r
+};\r
+\r
+static const sbcs_data data_CS_KOI8_R = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,\r
+    0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,\r
+    0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,\r
+    0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,\r
+    0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,\r
+    0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,\r
+    0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,\r
+    0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,\r
+    0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,\r
+    0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,\r
+    0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,\r
+    0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,\r
+    0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,\r
+    0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,\r
+    0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,\r
+    0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x9a, 0xbf, 0x9c, 0x9d, 0x9e, 0x9f, 0xb3, 0xe1,\r
+    0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, 0xe9,\r
+    0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf2,\r
+    0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, 0xfb,\r
+    0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, 0xc1,\r
+    0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, 0xc9,\r
+    0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd2,\r
+    0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, 0xdb,\r
+    0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, 0xa3,\r
+    0x95, 0x96, 0x97, 0x98, 0x99, 0x93, 0x9b, 0x80,\r
+    0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,\r
+    0x89, 0x8a, 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6,\r
+    0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae,\r
+    0xaf, 0xb0, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7,\r
+    0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x8b,\r
+    0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x94\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_KOI8_R = {\r
+    CS_KOI8_R, read_sbcs, write_sbcs, &data_CS_KOI8_R\r
+};\r
+\r
+static const sbcs_data data_CS_KOI8_U = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,\r
+    0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,\r
+    0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,\r
+    0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,\r
+    0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,\r
+    0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,\r
+    0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,\r
+    0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,\r
+    0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,\r
+    0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,\r
+    0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,\r
+    0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,\r
+    0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,\r
+    0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,\r
+    0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,\r
+    0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0x9a, 0xbf, 0x9c, 0x9d, 0x9e, 0x9f, 0xb3, 0xb4,\r
+    0xb6, 0xb7, 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5,\r
+    0xf6, 0xfa, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee,\r
+    0xef, 0xf0, 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8,\r
+    0xe3, 0xfe, 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc,\r
+    0xe0, 0xf1, 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5,\r
+    0xd6, 0xda, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,\r
+    0xcf, 0xd0, 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8,\r
+    0xc3, 0xde, 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc,\r
+    0xc0, 0xd1, 0xa3, 0xa4, 0xa6, 0xa7, 0xbd, 0xad,\r
+    0x95, 0x96, 0x97, 0x98, 0x99, 0x93, 0x9b, 0x80,\r
+    0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,\r
+    0x89, 0x8a, 0xa0, 0xa1, 0xa2, 0xa5, 0xa8, 0xa9,\r
+    0xaa, 0xab, 0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2,\r
+    0xb5, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbe, 0x8b,\r
+    0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x94\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_KOI8_U = {\r
+    CS_KOI8_U, read_sbcs, write_sbcs, &data_CS_KOI8_U\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_ROMAN = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,\r
+    0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,\r
+    0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,\r
+    0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,\r
+    0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,\r
+    0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x00e6, 0x00f8,\r
+    0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,\r
+    0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,\r
+    0x00ff, 0x0178, 0x2044, 0x20ac, 0x2039, 0x203a, 0xfb01, 0xfb02,\r
+    0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,\r
+    0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,\r
+    0xf8ff, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,\r
+    0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xc1, 0xa2, 0xa3, 0xb4, 0xa4, 0xac, 0xa9,\r
+    0xbb, 0xc7, 0xc2, 0xa8, 0xf8, 0xa1, 0xb1, 0xab,\r
+    0xb5, 0xa6, 0xe1, 0xfc, 0xbc, 0xc8, 0xc0, 0xcb,\r
+    0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9,\r
+    0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0x84,\r
+    0xf1, 0xee, 0xef, 0xcd, 0x85, 0xaf, 0xf4, 0xf2,\r
+    0xf3, 0x86, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a,\r
+    0x8c, 0xbe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93,\r
+    0x92, 0x94, 0x95, 0x96, 0x98, 0x97, 0x99, 0x9b,\r
+    0x9a, 0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xd8,\r
+    0xf5, 0xce, 0xcf, 0xd9, 0xc4, 0xf6, 0xff, 0xf9,\r
+    0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0xbd, 0xb9, 0xd0,\r
+    0xd1, 0xd4, 0xd5, 0xe2, 0xd2, 0xd3, 0xe3, 0xa0,\r
+    0xe0, 0xa5, 0xc9, 0xe4, 0xdc, 0xdd, 0xda, 0xdb,\r
+    0xaa, 0xb6, 0xc6, 0xb8, 0xb7, 0xc3, 0xb0, 0xba,\r
+    0xc5, 0xad, 0xb2, 0xb3, 0xd7, 0xf0, 0xde, 0xdf\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_ROMAN = {\r
+    CS_MAC_ROMAN, read_sbcs, write_sbcs, &data_CS_MAC_ROMAN\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_TURKISH = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,\r
+    0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,\r
+    0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,\r
+    0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,\r
+    0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,\r
+    0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x00e6, 0x00f8,\r
+    0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,\r
+    0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,\r
+    0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f,\r
+    0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,\r
+    0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,\r
+    0xf8ff, 0x00d2, 0x00da, 0x00db, 0x00d9, ERROR , 0x02c6, 0x02dc,\r
+    0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xc1, 0xa2, 0xa3, 0xb4, 0xa4, 0xac, 0xa9,\r
+    0xbb, 0xc7, 0xc2, 0xa8, 0xf8, 0xa1, 0xb1, 0xab,\r
+    0xb5, 0xa6, 0xe1, 0xfc, 0xbc, 0xc8, 0xc0, 0xcb,\r
+    0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9,\r
+    0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0x84,\r
+    0xf1, 0xee, 0xef, 0xcd, 0x85, 0xaf, 0xf4, 0xf2,\r
+    0xf3, 0x86, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a,\r
+    0x8c, 0xbe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93,\r
+    0x92, 0x94, 0x95, 0x96, 0x98, 0x97, 0x99, 0x9b,\r
+    0x9a, 0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xd8,\r
+    0xda, 0xdb, 0xdc, 0xdd, 0xce, 0xcf, 0xde, 0xdf,\r
+    0xd9, 0xc4, 0xf6, 0xff, 0xf9, 0xfa, 0xfb, 0xfe,\r
+    0xf7, 0xfd, 0xbd, 0xb9, 0xd0, 0xd1, 0xd4, 0xd5,\r
+    0xe2, 0xd2, 0xd3, 0xe3, 0xa0, 0xe0, 0xa5, 0xc9,\r
+    0xe4, 0xaa, 0xb6, 0xc6, 0xb8, 0xb7, 0xc3, 0xb0,\r
+    0xba, 0xc5, 0xad, 0xb2, 0xb3, 0xd7, 0xf0\r
+    },\r
+    255\r
+};\r
+const charset_spec charset_CS_MAC_TURKISH = {\r
+    CS_MAC_TURKISH, read_sbcs, write_sbcs, &data_CS_MAC_TURKISH\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_CROATIAN = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,\r
+    0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,\r
+    0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,\r
+    0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,\r
+    0x00ae, 0x0160, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x017d, 0x00d8,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x2206, 0x00b5, 0x2202, 0x2211,\r
+    0x220f, 0x0161, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x017e, 0x00f8,\r
+    0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0106, 0x00ab,\r
+    0x010c, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,\r
+    0x0110, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,\r
+    0xf8ff, 0x00a9, 0x2044, 0x20ac, 0x2039, 0x203a, 0x00c6, 0x00bb,\r
+    0x2013, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x0107, 0x00c1,\r
+    0x010d, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,\r
+    0x0111, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,\r
+    0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xc1, 0xa2, 0xa3, 0xa4, 0xac, 0xd9, 0xbb,\r
+    0xc7, 0xc2, 0xa8, 0xf8, 0xa1, 0xb1, 0xab, 0xb5,\r
+    0xa6, 0xe1, 0xfc, 0xbc, 0xdf, 0xc0, 0xcb, 0xe7,\r
+    0xe5, 0xcc, 0x80, 0x81, 0xde, 0x82, 0xe9, 0x83,\r
+    0xfd, 0xfa, 0xed, 0xea, 0xeb, 0xec, 0x84, 0xf1,\r
+    0xee, 0xef, 0xcd, 0x85, 0xaf, 0xf4, 0xf2, 0xf3,\r
+    0x86, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c,\r
+    0xfe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92,\r
+    0x94, 0x95, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a,\r
+    0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xc6, 0xe6,\r
+    0xc8, 0xe8, 0xd0, 0xf0, 0xf5, 0xce, 0xcf, 0xa9,\r
+    0xb9, 0xae, 0xbe, 0xc4, 0xf6, 0xff, 0xfb, 0xf7,\r
+    0xbd, 0xf9, 0xe0, 0xd1, 0xd4, 0xd5, 0xe2, 0xd2,\r
+    0xd3, 0xe3, 0xa0, 0xa5, 0xc9, 0xe4, 0xdc, 0xdd,\r
+    0xda, 0xdb, 0xaa, 0xb6, 0xb4, 0xb8, 0xb7, 0xc3,\r
+    0xb0, 0xba, 0xc5, 0xad, 0xb2, 0xb3, 0xd7, 0xd8\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_CROATIAN = {\r
+    CS_MAC_CROATIAN, read_sbcs, write_sbcs, &data_CS_MAC_CROATIAN\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_ICELAND = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,\r
+    0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,\r
+    0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,\r
+    0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,\r
+    0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,\r
+    0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x00e6, 0x00f8,\r
+    0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,\r
+    0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,\r
+    0x00ff, 0x0178, 0x2044, 0x20ac, 0x00d0, 0x00f0, 0x00de, 0x00fe,\r
+    0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,\r
+    0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,\r
+    0xf8ff, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,\r
+    0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xc1, 0xa2, 0xa3, 0xb4, 0xa4, 0xac, 0xa9,\r
+    0xbb, 0xc7, 0xc2, 0xa8, 0xf8, 0xa1, 0xb1, 0xab,\r
+    0xb5, 0xa6, 0xe1, 0xfc, 0xbc, 0xc8, 0xc0, 0xcb,\r
+    0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9,\r
+    0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0xdc,\r
+    0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0xaf, 0xf4,\r
+    0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, 0x88, 0x87,\r
+    0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, 0x8f, 0x8e,\r
+    0x90, 0x91, 0x93, 0x92, 0x94, 0x95, 0xdd, 0x96,\r
+    0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0xbf, 0x9d,\r
+    0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, 0xf5, 0xce,\r
+    0xcf, 0xd9, 0xc4, 0xf6, 0xff, 0xf9, 0xfa, 0xfb,\r
+    0xfe, 0xf7, 0xfd, 0xbd, 0xb9, 0xd0, 0xd1, 0xd4,\r
+    0xd5, 0xe2, 0xd2, 0xd3, 0xe3, 0xa5, 0xc9, 0xe4,\r
+    0xda, 0xdb, 0xaa, 0xb6, 0xc6, 0xb8, 0xb7, 0xc3,\r
+    0xb0, 0xba, 0xc5, 0xad, 0xb2, 0xb3, 0xd7, 0xf0\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_ICELAND = {\r
+    CS_MAC_ICELAND, read_sbcs, write_sbcs, &data_CS_MAC_ICELAND\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_ROMANIAN = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1,\r
+    0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3,\r
+    0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc,\r
+    0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df,\r
+    0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x0102, 0x0218,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211,\r
+    0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x0103, 0x0219,\r
+    0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153,\r
+    0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca,\r
+    0x00ff, 0x0178, 0x2044, 0x20ac, 0x2039, 0x203a, 0x021a, 0x021b,\r
+    0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1,\r
+    0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4,\r
+    0xf8ff, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc,\r
+    0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xc1, 0xa2, 0xa3, 0xb4, 0xa4, 0xac, 0xa9,\r
+    0xbb, 0xc7, 0xc2, 0xa8, 0xf8, 0xa1, 0xb1, 0xab,\r
+    0xb5, 0xa6, 0xe1, 0xfc, 0xbc, 0xc8, 0xc0, 0xcb,\r
+    0xe7, 0xe5, 0xcc, 0x80, 0x81, 0x82, 0xe9, 0x83,\r
+    0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0x84, 0xf1,\r
+    0xee, 0xef, 0xcd, 0x85, 0xf4, 0xf2, 0xf3, 0x86,\r
+    0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x8d,\r
+    0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95,\r
+    0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0x9d,\r
+    0x9c, 0x9e, 0x9f, 0xd8, 0xae, 0xbe, 0xf5, 0xce,\r
+    0xcf, 0xd9, 0xc4, 0xaf, 0xbf, 0xde, 0xdf, 0xf6,\r
+    0xff, 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0xbd,\r
+    0xb9, 0xd0, 0xd1, 0xd4, 0xd5, 0xe2, 0xd2, 0xd3,\r
+    0xe3, 0xa0, 0xe0, 0xa5, 0xc9, 0xe4, 0xdc, 0xdd,\r
+    0xda, 0xdb, 0xaa, 0xb6, 0xc6, 0xb8, 0xb7, 0xc3,\r
+    0xb0, 0xba, 0xc5, 0xad, 0xb2, 0xb3, 0xd7, 0xf0\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_ROMANIAN = {\r
+    CS_MAC_ROMANIAN, read_sbcs, write_sbcs, &data_CS_MAC_ROMANIAN\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_GREEK = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385,\r
+    0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8,\r
+    0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd,\r
+    0x2030, 0x00f4, 0x00f6, 0x00a6, 0x20ac, 0x00f9, 0x00fb, 0x00fc,\r
+    0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df,\r
+    0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x00b7,\r
+    0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396,\r
+    0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9,\r
+    0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153,\r
+    0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389,\r
+    0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f,\r
+    0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3,\r
+    0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf,\r
+    0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2,\r
+    0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0x00ad\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0x92, 0xb4, 0x9b, 0xac, 0x8c, 0xa9, 0xc7,\r
+    0xc2, 0xff, 0xa8, 0xae, 0xb1, 0x82, 0x84, 0xaf,\r
+    0x81, 0xc8, 0x97, 0x80, 0x83, 0x85, 0x86, 0xa7,\r
+    0x88, 0x89, 0x8a, 0x8d, 0x8f, 0x8e, 0x90, 0x91,\r
+    0x94, 0x95, 0x99, 0x9a, 0xd6, 0x9d, 0x9e, 0x9f,\r
+    0xcf, 0x8b, 0x87, 0xcd, 0xce, 0xd7, 0xd8, 0xd9,\r
+    0xda, 0xdf, 0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6,\r
+    0xb7, 0xb8, 0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1,\r
+    0xa5, 0xc3, 0xa6, 0xc4, 0xaa, 0xc6, 0xcb, 0xbc,\r
+    0xcc, 0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc,\r
+    0xdd, 0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa,\r
+    0xe8, 0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea,\r
+    0xef, 0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6,\r
+    0xf8, 0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1,\r
+    0xd0, 0xd1, 0xd4, 0xd5, 0xd2, 0xd3, 0xa0, 0x96,\r
+    0xc9, 0x98, 0x9c, 0x93, 0xc5, 0xad, 0xb2, 0xb3\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_GREEK = {\r
+    CS_MAC_GREEK, read_sbcs, write_sbcs, &data_CS_MAC_GREEK\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_CYRILLIC = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
+    0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,\r
+    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
+    0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,\r
+    0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406,\r
+    0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,\r
+    0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408,\r
+    0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a,\r
+    0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab,\r
+    0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455,\r
+    0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e,\r
+    0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f,\r
+    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
+    0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,\r
+    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
+    0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x20ac\r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\r
+    0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,\r
+    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,\r
+    0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,\r
+    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,\r
+    0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,\r
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,\r
+    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,\r
+    0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,\r
+    0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,\r
+    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,\r
+    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,\r
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\r
+    0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,\r
+    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\r
+    0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,\r
+    0xca, 0xa3, 0xa4, 0xa9, 0xc7, 0xc2, 0xa8, 0xa1,\r
+    0xb1, 0xb5, 0xa6, 0xc8, 0xd6, 0xc4, 0xdd, 0xab,\r
+    0xae, 0xb8, 0xc1, 0xa7, 0xba, 0xb7, 0xbc, 0xbe,\r
+    0xcb, 0xcd, 0xd8, 0xda, 0x80, 0x81, 0x82, 0x83,\r
+    0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b,\r
+    0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93,\r
+    0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b,\r
+    0x9c, 0x9d, 0x9e, 0x9f, 0xe0, 0xe1, 0xe2, 0xe3,\r
+    0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\r
+    0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,\r
+    0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\r
+    0xfc, 0xfd, 0xfe, 0xdf, 0xde, 0xac, 0xaf, 0xb9,\r
+    0xcf, 0xb4, 0xbb, 0xc0, 0xbd, 0xbf, 0xcc, 0xce,\r
+    0xd9, 0xdb, 0xa2, 0xb6, 0xd0, 0xd1, 0xd4, 0xd5,\r
+    0xd2, 0xd3, 0xd7, 0xa0, 0xa5, 0xc9, 0xff, 0xdc,\r
+    0xaa, 0xc6, 0xc3, 0xb0, 0xc5, 0xad, 0xb2, 0xb3\r
+    },\r
+    256\r
+};\r
+const charset_spec charset_CS_MAC_CYRILLIC = {\r
+    CS_MAC_CYRILLIC, read_sbcs, write_sbcs, &data_CS_MAC_CYRILLIC\r
+};\r
+\r
+static const sbcs_data data_CS_MAC_THAI = {\r
+    {\r
+    0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,\r
+    0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,\r
+    0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,\r
+    0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,\r
+    0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,\r
+    0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,\r
+    0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,\r
+    0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,\r
+    0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,\r
+    0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,\r
+    0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,\r
+    0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,\r
+    0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,\r
+    0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,\r
+    0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,\r
+    0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,\r
+    0x00ab, 0x00bb, 0x2026, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c,\r
+    0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x201c, 0x201d, 0x0e4d,\r
+    ERROR , 0x2022, 0x0e31, 0x0e47, 0x0e34, 0x0e35, 0x0e36, 0x0e37,\r
+    0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x2018, 0x2019, ERROR ,\r
+    0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07,\r
+    0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f,\r
+    0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17,\r
+    0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f,\r
+    0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27,\r
+    0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f,\r
+    0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37,\r
+    0x0e38, 0x0e39, 0x0e3a, 0x2060, 0x200b, 0x2013, 0x2014, 0x0e3f,\r
+    0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47,\r
+    0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f,\r
+    0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,\r
+    0x0e58, 0x0e59, 0x00ae, 0x00a9, ERROR , ERROR , ERROR , ERROR \r
+    },\r
+    {\r
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,&