Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Impressum tcvtest1.tab   Interaktion und
Portierbarkeitunbekannt

 
Spracherkennung für: .tab vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include <sal/config.h>

#include "convertsimple.hxx"
#include "tenchelp.hxx"

/* ======================================================================= */

/* This file contain the tables for all 1 byte charsets, for the */
/* following scripts: easteurope, cyrillic, greek, turkish */

/* ======================================================================= */

/* IBM-737 */
/* Dos Standard CharSet for Greek */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp737.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM737UNI_START                 0x80
#define IBM737UNI_END                   0xFF
sal_uInt16 const aImplIBM737ToUniTab[IBM737UNI_END - IBM737UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, /* 0x80 */
    0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, /* 0x80 */
    0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, /* 0x90 */
    0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, /* 0x90 */
    0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, /* 0xA0 */
    0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x03C9, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, /* 0xE0 */
    0x03CB, 0x03CE, 0x0386, 0x0388, 0x0389, 0x038A, 0x038C, 0x038E, /* 0xE0 */
    0x038F, 0x00B1, 0x2265, 0x2264, 0x03AA, 0x03AB, 0x00F7, 0x2248, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM737CHAR_START                0x0386
#define IBM737CHAR_END                  0x03CE
unsigned char const aImplIBM737ToCharTab[IBM737CHAR_END - IBM737CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                                        0xEA,    0, /* 0x0380 */
    0xEB, 0xEC, 0xED,    0, 0xEE,    0, 0xEF, 0xF0, /* 0x0380 */
       0, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x0390 */
    0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, /* 0x0390 */
    0x8F, 0x90,    0, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0x03A0 */
    0x96, 0x97, 0xF4, 0xF5, 0xE1, 0xE2, 0xE3, 0xE5, /* 0x03A0 */
       0, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, /* 0x03B0 */
    0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, /* 0x03B0 */
    0xA7, 0xA8, 0xAA, 0xA9, 0xAB, 0xAC, 0xAD, 0xAE, /* 0x03C0 */
    0xAF, 0xE0, 0xE4, 0xE8, 0xE6, 0xE7, 0xE9        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define IBM737TOCHARTABEX_COUNT         61
ImplUniCharTabData const aImplIBM737ToCharTabEx[IBM737TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x207F, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x2248, 0xF7, 0 },
  { 0x2264, 0xF3, 0 },
  { 0x2265, 0xF2, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM737ByteCvtData =
{
    aImplIBM737ToUniTab,
    nullptr,
    aImplIBM737ToCharTab,
    nullptr,
    aImplIBM737ToCharTabEx,
    IBM737UNI_START, IBM737UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM737CHAR_START, IBM737CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM737TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM737TextEncodingData
    = { { &aImplIBM737ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_GREEK, pc code page 737, mac encoding 6 */

/* ======================================================================= */

/* IBM-775 */
/* Dos Standard CharSet for BalticRim */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp775.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM775UNI_START                 0x80
#define IBM775UNI_END                   0xFF
sal_uInt16 const aImplIBM775ToUniTab[IBM775UNI_END - IBM775UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0106, 0x00FC, 0x00E9, 0x0101, 0x00E4, 0x0123, 0x00E5, 0x0107, /* 0x80 */
    0x0142, 0x0113, 0x0156, 0x0157, 0x012B, 0x0179, 0x00C4, 0x00C5, /* 0x80 */
    0x00C9, 0x00E6, 0x00C6, 0x014D, 0x00F6, 0x0122, 0x00A2, 0x015A, /* 0x90 */
    0x015B, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x00A4, /* 0x90 */
    0x0100, 0x012A, 0x00F3, 0x017B, 0x017C, 0x017A, 0x201D, 0x00A6, /* 0xA0 */
    0x00A9, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x0141, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010C, 0x0118, /* 0xB0 */
    0x0116, 0x2563, 0x2551, 0x2557, 0x255D, 0x012E, 0x0160, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0172, 0x016A, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x017D, /* 0xC0 */
    0x0105, 0x010D, 0x0119, 0x0117, 0x012F, 0x0161, 0x0173, 0x016B, /* 0xD0 */
    0x017E, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x014C, 0x0143, 0x00F5, 0x00D5, 0x00B5, 0x0144, /* 0xE0 */
    0x0136, 0x0137, 0x013B, 0x013C, 0x0146, 0x0112, 0x0145, 0x2019, /* 0xE0 */
    0x00AD, 0x00B1, 0x201C, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x201E, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM775TOCHARTABEX_COUNT         128
ImplUniCharTabData const aImplIBM775ToCharTabEx[IBM775TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A2, 0x96, 0 },
  { 0x00A3, 0x9C, 0 },
  { 0x00A4, 0x9F, 0 },
  { 0x00A6, 0xA7, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A9, 0xA8, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0xAA, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00AE, 0xA9, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B3, 0xFC, 0 },
  { 0x00B5, 0xE6, 0 },
  { 0x00B6, 0xF4, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00B9, 0xFB, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BC, 0xAC, 0 },
  { 0x00BD, 0xAB, 0 },
  { 0x00BE, 0xF3, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C5, 0x8F, 0 },
  { 0x00C6, 0x92, 0 },
  { 0x00C9, 0x90, 0 },
  { 0x00D3, 0xE0, 0 },
  { 0x00D5, 0xE5, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00D7, 0x9E, 0 },
  { 0x00D8, 0x9D, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E5, 0x86, 0 },
  { 0x00E6, 0x91, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F5, 0xE4, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00F8, 0x9B, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x0100, 0xA0, 0 },
  { 0x0101, 0x83, 0 },
  { 0x0104, 0xB5, 0 },
  { 0x0105, 0xD0, 0 },
  { 0x0106, 0x80, 0 },
  { 0x0107, 0x87, 0 },
  { 0x010C, 0xB6, 0 },
  { 0x010D, 0xD1, 0 },
  { 0x0112, 0xED, 0 },
  { 0x0113, 0x89, 0 },
  { 0x0116, 0xB8, 0 },
  { 0x0117, 0xD3, 0 },
  { 0x0118, 0xB7, 0 },
  { 0x0119, 0xD2, 0 },
  { 0x0122, 0x95, 0 },
  { 0x0123, 0x85, 0 },
  { 0x012A, 0xA1, 0 },
  { 0x012B, 0x8C, 0 },
  { 0x012E, 0xBD, 0 },
  { 0x012F, 0xD4, 0 },
  { 0x0136, 0xE8, 0 },
  { 0x0137, 0xE9, 0 },
  { 0x013B, 0xEA, 0 },
  { 0x013C, 0xEB, 0 },
  { 0x0141, 0xAD, 0 },
  { 0x0142, 0x88, 0 },
  { 0x0143, 0xE3, 0 },
  { 0x0144, 0xE7, 0 },
  { 0x0145, 0xEE, 0 },
  { 0x0146, 0xEC, 0 },
  { 0x014C, 0xE2, 0 },
  { 0x014D, 0x93, 0 },
  { 0x0156, 0x8A, 0 },
  { 0x0157, 0x8B, 0 },
  { 0x015A, 0x97, 0 },
  { 0x015B, 0x98, 0 },
  { 0x0160, 0xBE, 0 },
  { 0x0161, 0xD5, 0 },
  { 0x016A, 0xC7, 0 },
  { 0x016B, 0xD7, 0 },
  { 0x0172, 0xC6, 0 },
  { 0x0173, 0xD6, 0 },
  { 0x0179, 0x8D, 0 },
  { 0x017A, 0xA5, 0 },
  { 0x017B, 0xA3, 0 },
  { 0x017C, 0xA4, 0 },
  { 0x017D, 0xCF, 0 },
  { 0x017E, 0xD8, 0 },
  { 0x2019, 0xEF, 0 },
  { 0x201C, 0xF2, 0 },
  { 0x201D, 0xA6, 0 },
  { 0x201E, 0xF7, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM775ByteCvtData =
{
    aImplIBM775ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplIBM775ToCharTabEx,
    IBM775UNI_START, IBM775UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM775TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM775TextEncodingData
    = { { &aImplIBM775ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-4",
        "iso-8859-4",
        1,
        1,
        1,
        186,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */

/* ======================================================================= */

/* IBM-852 */
/* Dos Standard CharSet for Central Europa (Jug., Pol., Tsch., Ung., ...) */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp852.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM852UNI_START                 0x80
#define IBM852UNI_END                   0xFF
sal_uInt16 const aImplIBM852ToUniTab[IBM852UNI_END - IBM852UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, /* 0x80 */
    0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, /* 0x80 */
    0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, /* 0x90 */
    0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, /* 0x90 */
    0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, /* 0xA0 */
    0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, /* 0xB0 */
    0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, /* 0xD0 */
    0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, /* 0xE0 */
    0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, /* 0xE0 */
    0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
    0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM852TOCHARTABEX_COUNT         128
ImplUniCharTabData const aImplIBM852ToCharTabEx[IBM852TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xCF, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A8, 0xF9, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0xAA, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B4, 0xEF, 0 },
  { 0x00B8, 0xF7, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00C1, 0xB5, 0 },
  { 0x00C2, 0xB6, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C7, 0x80, 0 },
  { 0x00C9, 0x90, 0 },
  { 0x00CB, 0xD3, 0 },
  { 0x00CD, 0xD6, 0 },
  { 0x00CE, 0xD7, 0 },
  { 0x00D3, 0xE0, 0 },
  { 0x00D4, 0xE2, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00D7, 0x9E, 0 },
  { 0x00DA, 0xE9, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DD, 0xED, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E1, 0xA0, 0 },
  { 0x00E2, 0x83, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E7, 0x87, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00EB, 0x89, 0 },
  { 0x00ED, 0xA1, 0 },
  { 0x00EE, 0x8C, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F4, 0x93, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00FA, 0xA3, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x00FD, 0xEC, 0 },
  { 0x0102, 0xC6, 0 },
  { 0x0103, 0xC7, 0 },
  { 0x0104, 0xA4, 0 },
  { 0x0105, 0xA5, 0 },
  { 0x0106, 0x8F, 0 },
  { 0x0107, 0x86, 0 },
  { 0x010C, 0xAC, 0 },
  { 0x010D, 0x9F, 0 },
  { 0x010E, 0xD2, 0 },
  { 0x010F, 0xD4, 0 },
  { 0x0110, 0xD1, 0 },
  { 0x0111, 0xD0, 0 },
  { 0x0118, 0xA8, 0 },
  { 0x0119, 0xA9, 0 },
  { 0x011A, 0xB7, 0 },
  { 0x011B, 0xD8, 0 },
  { 0x0139, 0x91, 0 },
  { 0x013A, 0x92, 0 },
  { 0x013D, 0x95, 0 },
  { 0x013E, 0x96, 0 },
  { 0x0141, 0x9D, 0 },
  { 0x0142, 0x88, 0 },
  { 0x0143, 0xE3, 0 },
  { 0x0144, 0xE4, 0 },
  { 0x0147, 0xD5, 0 },
  { 0x0148, 0xE5, 0 },
  { 0x0150, 0x8A, 0 },
  { 0x0151, 0x8B, 0 },
  { 0x0154, 0xE8, 0 },
  { 0x0155, 0xEA, 0 },
  { 0x0158, 0xFC, 0 },
  { 0x0159, 0xFD, 0 },
  { 0x015A, 0x97, 0 },
  { 0x015B, 0x98, 0 },
  { 0x015E, 0xB8, 0 },
  { 0x015F, 0xAD, 0 },
  { 0x0160, 0xE6, 0 },
  { 0x0161, 0xE7, 0 },
  { 0x0162, 0xDD, 0 },
  { 0x0163, 0xEE, 0 },
  { 0x0164, 0x9B, 0 },
  { 0x0165, 0x9C, 0 },
  { 0x016E, 0xDE, 0 },
  { 0x016F, 0x85, 0 },
  { 0x0170, 0xEB, 0 },
  { 0x0171, 0xFB, 0 },
  { 0x0179, 0x8D, 0 },
  { 0x017A, 0xAB, 0 },
  { 0x017B, 0xBD, 0 },
  { 0x017C, 0xBE, 0 },
  { 0x017D, 0xA6, 0 },
  { 0x017E, 0xA7, 0 },
  { 0x02C7, 0xF3, 0 },
  { 0x02D8, 0xF4, 0 },
  { 0x02D9, 0xFA, 0 },
  { 0x02DB, 0xF2, 0 },
  { 0x02DD, 0xF1, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM852ByteCvtData =
{
    aImplIBM852ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplIBM852ToCharTabEx,
    IBM852UNI_START, IBM852UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM852TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM852TextEncodingData
    = { { &aImplIBM852ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "ibm852",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* DOS/OS2, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* IBM-855 */
/* Dos Standard CharSet for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp855.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM855UNI_START                 0x80
#define IBM855UNI_END                   0xFF
sal_uInt16 const aImplIBM855ToUniTab[IBM855UNI_END - IBM855UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, /* 0x80 */
    0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, /* 0x80 */
    0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x040B, 0x045C, 0x040C, /* 0x90 */
    0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, /* 0x90 */
    0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, /* 0xA0 */
    0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, /* 0xB0 */
    0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, /* 0xD0 */
    0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, /* 0xD0 */
    0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, /* 0xE0 */
    0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x2116, /* 0xE0 */
    0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, /* 0xF0 */
    0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0x00A7, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM855CHAR_START                0x0401
#define IBM855CHAR_END                  0x045F
unsigned char const aImplIBM855ToCharTab[IBM855CHAR_END - IBM855CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0x85, 0x81, 0x83, 0x87, 0x89, 0x8B, 0x8D, /* 0x0400 */
    0x8F, 0x91, 0x93, 0x95, 0x97,    0, 0x99, 0x9B, /* 0x0400 */
    0xA1, 0xA3, 0xEC, 0xAD, 0xA7, 0xA9, 0xEA, 0xF4, /* 0x0410 */
    0xB8, 0xBE, 0xC7, 0xD1, 0xD3, 0xD5, 0xD7, 0xDD, /* 0x0410 */
    0xE2, 0xE4, 0xE6, 0xE8, 0xAB, 0xB6, 0xA5, 0xFC, /* 0x0420 */
    0xF6, 0xFA, 0x9F, 0xF2, 0xEE, 0xF8, 0x9D, 0xE0, /* 0x0420 */
    0xA0, 0xA2, 0xEB, 0xAC, 0xA6, 0xA8, 0xE9, 0xF3, /* 0x0430 */
    0xB7, 0xBD, 0xC6, 0xD0, 0xD2, 0xD4, 0xD6, 0xD8, /* 0x0430 */
    0xE1, 0xE3, 0xE5, 0xE7, 0xAA, 0xB5, 0xA4, 0xFB, /* 0x0440 */
    0xF5, 0xF9, 0x9E, 0xF1, 0xED, 0xF7, 0x9C, 0xDE, /* 0x0440 */
       0, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8A, 0x8C, /* 0x0450 */
    0x8E, 0x90, 0x92, 0x94, 0x96,    0, 0x98, 0x9A, /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define IBM855TOCHARTABEX_COUNT         36
ImplUniCharTabData const aImplIBM855ToCharTabEx[IBM855TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xCF, 0 },
  { 0x00A7, 0xFD, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x2116, 0xEF, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM855ByteCvtData =
{
    aImplIBM855ToUniTab,
    nullptr,
    aImplIBM855ToCharTab,
    nullptr,
    aImplIBM855ToCharTabEx,
    IBM855UNI_START, IBM855UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM855CHAR_START, IBM855CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM855TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM855TextEncodingData
    = { { &aImplIBM855ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "iso-8859-5",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_CYRILLIC, pc code page 855, mac encoding 7 */

/* ======================================================================= */

/* IBM-857 */
/* Dos Standard CharSet for Turkish */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp857.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM857UNI_START                 0x80
#define IBM857UNI_END                   0xFF
sal_uInt16 const aImplIBM857ToUniTab[IBM857UNI_END - IBM857UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, /* 0x80 */
    0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, /* 0x80 */
    0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, /* 0x90 */
    0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, /* 0x90 */
    0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, /* 0xA0 */
    0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, /* 0xB0 */
    0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, /* 0xC0 */
    0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8,      0, 0x00CD, 0x00CE, /* 0xD0 */
    0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, /* 0xD0 */
    0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5,      0, /* 0xE0 */
    0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x00AF, 0x00B4, /* 0xE0 */
    0x00AD, 0x00B1,      0, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, /* 0xF0 */
    0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM857CHAR_START                0x00A0
#define IBM857CHAR_END                  0x00FF
unsigned char const aImplIBM857ToCharTab[IBM857CHAR_END - IBM857CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xFF, 0xAD, 0xBD, 0x9C, 0xCF, 0xBE, 0xDD, 0xF5, /* 0x00A0 */
    0xF9, 0xB8, 0xD1, 0xAE, 0xAA, 0xF0, 0xA9, 0xEE, /* 0x00A0 */
    0xF8, 0xF1, 0xFD, 0xFC, 0xEF, 0xE6, 0xF4, 0xFA, /* 0x00B0 */
    0xF7, 0xFB, 0xD0, 0xAF, 0xAC, 0xAB, 0xF3, 0xA8, /* 0x00B0 */
    0xB7, 0xB5, 0xB6, 0xC7, 0x8E, 0x8F, 0x92, 0x80, /* 0x00C0 */
    0xD4, 0x90, 0xD2, 0xD3, 0xDE, 0xD6, 0xD7, 0xD8, /* 0x00C0 */
       0, 0xA5, 0xE3, 0xE0, 0xE2, 0xE5, 0x99, 0xE8, /* 0x00D0 */
    0x9D, 0xEB, 0xE9, 0xEA, 0x9A,    0,    0, 0xE1, /* 0x00D0 */
    0x85, 0xA0, 0x83, 0xC6, 0x84, 0x86, 0x91, 0x87, /* 0x00E0 */
    0x8A, 0x82, 0x88, 0x89, 0xEC, 0xA1, 0x8C, 0x8B, /* 0x00E0 */
       0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* 0x00F0 */
    0x9B, 0x97, 0xA3, 0x96, 0x81,    0,    0, 0xED  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define IBM857TOCHARTABEX_COUNT         35
ImplUniCharTabData const aImplIBM857ToCharTabEx[IBM857TOCHARTABEX_COUNT] =
{
  { 0x011E, 0xA6, 0 },
  { 0x011F, 0xA7, 0 },
  { 0x0130, 0x98, 0 },
  { 0x0131, 0x8D, 0 },
  { 0x015E, 0x9E, 0 },
  { 0x015F, 0x9F, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM857ByteCvtData =
{
    aImplIBM857ToUniTab,
    nullptr,
    aImplIBM857ToCharTab,
    nullptr,
    aImplIBM857ToCharTabEx,
    IBM857UNI_START, IBM857UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM857CHAR_START, IBM857CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM857TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM857TextEncodingData
    = { { &aImplIBM857ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "iso-8859-9",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* IBM-866 */
/* Dos Standard CharSet for CyrillicRussian */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp866.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM866UNI_START                 0x80
#define IBM866UNI_END                   0xFF
sal_uInt16 const aImplIBM866ToUniTab[IBM866UNI_END - IBM866UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xA0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */
    0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM866CHAR_START                0x0401
#define IBM866CHAR_END                  0x045E
unsigned char const aImplIBM866ToCharTab[IBM866CHAR_END - IBM866CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xF0,    0,    0, 0xF2,    0,    0, 0xF4, /* 0x0400 */
       0,    0,    0,    0,    0,    0, 0xF6,    0, /* 0x0400 */
    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
    0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
    0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0430 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0430 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */
       0, 0xF1,    0,    0, 0xF3,    0,    0, 0xF5, /* 0x0450 */
       0,    0,    0,    0,    0,    0, 0xF7        /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define IBM866TOCHARTABEX_COUNT         56
ImplUniCharTabData const aImplIBM866ToCharTabEx[IBM866TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A4, 0xFD, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x2116, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM866ByteCvtData =
{
    aImplIBM866ToUniTab,
    nullptr,
    aImplIBM866ToCharTab,
    nullptr,
    aImplIBM866ToCharTabEx,
    IBM866UNI_START, IBM866UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM866CHAR_START, IBM866CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM866TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM866TextEncodingData
    = { { &aImplIBM866ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "cp866",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* DOS/OS2, SCRIPT_LATIN, pc code page 866, mac encoding 7 */

/* ======================================================================= */

/* IBM-869 */
/* Dos Standard CharSet for Greek2 */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp869.txt from 04/24/96 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define IBM869UNI_START                 0x86
#define IBM869UNI_END                   0xFF
sal_uInt16 const aImplIBM869ToUniTab[IBM869UNI_END - IBM869UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
                                                    0x0386,      0, /* 0x80 */
    0x00B7, 0x00AC, 0x00A6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, /* 0x80 */
    0x038A, 0x03AA, 0x038C,      0,      0, 0x038E, 0x03AB, 0x00A9, /* 0x90 */
    0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, /* 0x90 */
    0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, /* 0xA0 */
    0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, /* 0xB0 */
    0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, /* 0xC0 */
    0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, /* 0xD0 */
    0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, /* 0xD0 */
    0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, /* 0xE0 */
    0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x0384, /* 0xE0 */
    0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, /* 0xF0 */
    0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define IBM869CHAR_START                0x0384
#define IBM869CHAR_END                  0x03CE
unsigned char const aImplIBM869ToCharTab[IBM869CHAR_END - IBM869CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0xEF, 0xF7, 0x86,    0, /* 0x0380 */
    0x8D, 0x8F, 0x90,    0, 0x92,    0, 0x95, 0x98, /* 0x0380 */
    0xA1, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, /* 0x0390 */
    0xAC, 0xAD, 0xB5, 0xB6, 0xB7, 0xB8, 0xBD, 0xBE, /* 0x0390 */
    0xC6, 0xC7,    0, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, /* 0x03A0 */
    0xD4, 0xD5, 0x91, 0x96, 0x9B, 0x9D, 0x9E, 0x9F, /* 0x03A0 */
    0xFC, 0xD6, 0xD7, 0xD8, 0xDD, 0xDE, 0xE0, 0xE1, /* 0x03B0 */
    0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, /* 0x03B0 */
    0xEA, 0xEB, 0xED, 0xEC, 0xEE, 0xF2, 0xF3, 0xF4, /* 0x03C0 */
    0xF6, 0xFA, 0xA0, 0xFB, 0xA2, 0xA3, 0xFD        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define IBM869TOCHARTABEX_COUNT         48
ImplUniCharTabData const aImplIBM869ToCharTabEx[IBM869TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xFF, 0 },
  { 0x00A3, 0x9C, 0 },
  { 0x00A6, 0x8A, 0 },
  { 0x00A7, 0xF5, 0 },
  { 0x00A8, 0xF9, 0 },
  { 0x00A9, 0x97, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0x89, 0 },
  { 0x00AD, 0xF0, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0x99, 0 },
  { 0x00B3, 0x9A, 0 },
  { 0x00B7, 0x88, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BD, 0xAB, 0 },
  { 0x2015, 0x8E, 0 },
  { 0x2018, 0x8B, 0 },
  { 0x2019, 0x8C, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplIBM869ByteCvtData =
{
    aImplIBM869ToUniTab,
    nullptr,
    aImplIBM869ToCharTab,
    nullptr,
    aImplIBM869ToCharTabEx,
    IBM869UNI_START, IBM869UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    IBM869CHAR_START, IBM869CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    IBM869TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplIBM869TextEncodingData
    = { { &aImplIBM869ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII };
    /* DOS/OS2, SCRIPT_LATIN, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* MS-1250 */
/* Windows CodePage for Eastern European (WinLatin2) */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1250.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1250UNI_START                 0x80
#define MS1250UNI_END                   0xFF
sal_uInt16 const aImplMS1250ToUniTab[MS1250UNI_END - MS1250UNI_START + 1] =
{
/*  0       1       2       3       4       5       6       7 */
/*  8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A,      0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, /* 0x90 */
    0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, /* 0xA0 */
    0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, /* 0xB0 */
    0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */
    0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */
    0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */
    0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */
    0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */
    0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */
    0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */
    0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1250TOCHARTABEX_COUNT         123
ImplUniCharTabData const aImplMS1250ToCharTabEx[MS1250TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B4, 0xB4, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00B8, 0xB8, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00C1, 0xC1, 0 },
  { 0x00C2, 0xC2, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C7, 0xC7, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00CB, 0xCB, 0 },
  { 0x00CD, 0xCD, 0 },
  { 0x00CE, 0xCE, 0 },
  { 0x00D3, 0xD3, 0 },
  { 0x00D4, 0xD4, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00DA, 0xDA, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DD, 0xDD, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E1, 0xE1, 0 },
  { 0x00E2, 0xE2, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E7, 0xE7, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00EB, 0xEB, 0 },
  { 0x00ED, 0xED, 0 },
  { 0x00EE, 0xEE, 0 },
  { 0x00F3, 0xF3, 0 },
  { 0x00F4, 0xF4, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00FA, 0xFA, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x00FD, 0xFD, 0 },
  { 0x0102, 0xC3, 0 },
  { 0x0103, 0xE3, 0 },
  { 0x0104, 0xA5, 0 },
  { 0x0105, 0xB9, 0 },
  { 0x0106, 0xC6, 0 },
  { 0x0107, 0xE6, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x010E, 0xCF, 0 },
  { 0x010F, 0xEF, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0118, 0xCA, 0 },
  { 0x0119, 0xEA, 0 },
  { 0x011A, 0xCC, 0 },
  { 0x011B, 0xEC, 0 },
  { 0x0139, 0xC5, 0 },
  { 0x013A, 0xE5, 0 },
  { 0x013D, 0xBC, 0 },
  { 0x013E, 0xBE, 0 },
  { 0x0141, 0xA3, 0 },
  { 0x0142, 0xB3, 0 },
  { 0x0143, 0xD1, 0 },
  { 0x0144, 0xF1, 0 },
  { 0x0147, 0xD2, 0 },
  { 0x0148, 0xF2, 0 },
  { 0x0150, 0xD5, 0 },
  { 0x0151, 0xF5, 0 },
  { 0x0154, 0xC0, 0 },
  { 0x0155, 0xE0, 0 },
  { 0x0158, 0xD8, 0 },
  { 0x0159, 0xF8, 0 },
  { 0x015A, 0x8C, 0 },
  { 0x015B, 0x9C, 0 },
  { 0x015E, 0xAA, 0 },
  { 0x015F, 0xBA, 0 },
  { 0x0160, 0x8A, 0 },
  { 0x0161, 0x9A, 0 },
  { 0x0162, 0xDE, 0 },
  { 0x0163, 0xFE, 0 },
  { 0x0164, 0x8D, 0 },
  { 0x0165, 0x9D, 0 },
  { 0x016E, 0xD9, 0 },
  { 0x016F, 0xF9, 0 },
  { 0x0170, 0xDB, 0 },
  { 0x0171, 0xFB, 0 },
  { 0x0179, 0x8F, 0 },
  { 0x017A, 0x9F, 0 },
  { 0x017B, 0xAF, 0 },
  { 0x017C, 0xBF, 0 },
  { 0x017D, 0x8E, 0 },
  { 0x017E, 0x9E, 0 },
  { 0x02C7, 0xA1, 0 },
  { 0x02D8, 0xA2, 0 },
  { 0x02D9, 0xFF, 0 },
  { 0x02DB, 0xB2, 0 },
  { 0x02DD, 0xBD, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1250ByteCvtData =
{
    aImplMS1250ToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplMS1250ToCharTabEx,
    MS1250UNI_START, MS1250UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1250TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1250TextEncodingData
    = { { &aImplMS1250ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "windows-1250",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* MS-1251 */
/* Windows CodePage for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1251.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1251UNI_START                 0x80
#define MS1251UNI_END                   0xFF
sal_uInt16 const aImplMS1251ToUniTab[MS1251UNI_END - MS1251UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
    0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, /* 0x80 */
    0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, /* 0x90 */
    0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, /* 0xA0 */
    0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, /* 0xA0 */
    0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, /* 0xB0 */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1251CHAR_START                0x0401
#define MS1251CHAR_END                  0x045F
unsigned char const aImplMS1251ToCharTab[MS1251CHAR_END - MS1251CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xA8, 0x80, 0x81, 0xAA, 0xBD, 0xB2, 0xAF, /* 0x0400 */
    0xA3, 0x8A, 0x8C, 0x8E, 0x8D,    0, 0xA1, 0x8F, /* 0x0400 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0410 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0410 */
    0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0420 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0420 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, /* 0x0440 */
       0, 0xB8, 0x90, 0x83, 0xBA, 0xBE, 0xB3, 0xBF, /* 0x0450 */
    0xBC, 0x9A, 0x9C, 0x9E, 0x9D,    0, 0xA2, 0x9F  /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define MS1251TOCHARTABEX_COUNT         35
ImplUniCharTabData const aImplMS1251ToCharTabEx[MS1251TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x0490, 0xA5, 0 },
  { 0x0491, 0xB4, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x88, 0 },
  { 0x2116, 0xB9, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1251ByteCvtData =
{
    aImplMS1251ToUniTab,
    nullptr,
    aImplMS1251ToCharTab,
    nullptr,
    aImplMS1251ToCharTabEx,
    MS1251UNI_START, MS1251UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1251CHAR_START, MS1251CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1251TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1251TextEncodingData
    = { { &aImplMS1251ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "windows-1251",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */

/* ======================================================================= */

/* MS-1253 */
/* Windows Standard CharSet for Greek */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1253.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1253UNI_START                 0x80
#define MS1253UNI_END                   0xFF
sal_uInt16 const aImplMS1253ToUniTab[MS1253UNI_END - MS1253UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030,      0, 0x2039,      0,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122,      0, 0x203A,      0,      0,      0,      0, /* 0x90 */
    0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9,      0, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */
    0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
    0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
    0x03A0, 0x03A1,      0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */
    0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */
    0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
    0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
    0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */
    0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE,      0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1253CHAR_START                0x0384
#define MS1253CHAR_END                  0x03CE
unsigned char const aImplMS1253ToCharTab[MS1253CHAR_END - MS1253CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0xB4, 0xA1, 0xA2,    0, /* 0x0380 */
    0xB8, 0xB9, 0xBA,    0, 0xBC,    0, 0xBE, 0xBF, /* 0x0380 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */
    0xD0, 0xD1,    0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define MS1253TOCHARTABEX_COUNT         40
ImplUniCharTabData const aImplMS1253ToCharTabEx[MS1253TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A5, 0xA5, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B2, 0xB2, 0 },
  { 0x00B3, 0xB3, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00BD, 0xBD, 0 },
  { 0x0192, 0x83, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2015, 0xAF, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1253ByteCvtData =
{
    aImplMS1253ToUniTab,
    nullptr,
    aImplMS1253ToCharTab,
    nullptr,
    aImplMS1253ToCharTabEx,
    MS1253UNI_START, MS1253UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1253CHAR_START, MS1253CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1253TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1253TextEncodingData
    = { { &aImplMS1253ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "windows-1253",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_GREEK, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* MS-1254 */
/* Windows Standard CharSet for Turkish */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1254.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1254UNI_START                 0x80
#define MS1254UNI_END                   0xFF
sal_uInt16 const aImplMS1254ToUniTab[MS1254UNI_END - MS1254UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
    0x02C6, 0x2030, 0x0160, 0x2039, 0x0152,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
    0x02DC, 0x2122, 0x0161, 0x203A, 0x0153,      0,      0, 0x0178, /* 0x90 */
    0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
    0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
    0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */
    0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
    0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1254CHAR_START                0x00A0
#define MS1254CHAR_END                  0x00FF
unsigned char const aImplMS1254ToCharTab[MS1254CHAR_END - MS1254CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
       0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
       0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC,    0,    0, 0xFF  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define MS1254TOCHARTABEX_COUNT         31
ImplUniCharTabData const aImplMS1254ToCharTabEx[MS1254TOCHARTABEX_COUNT] =
{
  { 0x011E, 0xD0, 0 },
  { 0x011F, 0xF0, 0 },
  { 0x0130, 0xDD, 0 },
  { 0x0131, 0xFD, 0 },
  { 0x0152, 0x8C, 0 },
  { 0x0153, 0x9C, 0 },
  { 0x015E, 0xDE, 0 },
  { 0x015F, 0xFE, 0 },
  { 0x0160, 0x8A, 0 },
  { 0x0161, 0x9A, 0 },
  { 0x0178, 0x9F, 0 },
  { 0x0192, 0x83, 0 },
  { 0x02C6, 0x88, 0 },
  { 0x02DC, 0x98, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1254ByteCvtData =
{
    aImplMS1254ToUniTab,
    nullptr,
    aImplMS1254ToCharTab,
    nullptr,
    aImplMS1254ToCharTabEx,
    MS1254UNI_START, MS1254UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1254CHAR_START, MS1254CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1254TOCHARTABEX_COUNT,
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1254TextEncodingData
    = { { &aImplMS1254ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "windows-1254",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* MS-1257 */
/* Windows Standard CharSet for Baltic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1257.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1257UNI_START                 0x80
#define MS1257UNI_END                   0xFF
sal_uInt16 const aImplMS1257ToUniTab[MS1257UNI_END - MS1257UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A,      0, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
         0, 0x2030,      0, 0x2039,      0, 0x00A8, 0x02C7, 0x00B8, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0, 0x2122,      0, 0x203A,      0, 0x00AF, 0x02DB,      0, /* 0x90 */
    0x00A0,      0, 0x00A2, 0x00A3, 0x00A4,      0, 0x00A6, 0x00A7, /* 0xA0 */
    0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */
    0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */
    0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */
    0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */
    0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */
    0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */
    0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1257CHAR_START                0x00A0
#define MS1257CHAR_END                  0x017E
unsigned char const aImplMS1257ToCharTab[MS1257CHAR_END - MS1257CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0,    0, 0xA2, 0xA3, 0xA4,    0, 0xA6, 0xA7, /* 0x00A0 */
    0x8D, 0xA9,    0, 0xAB, 0xAC, 0xAD, 0xAE, 0x9D, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0x8F, 0xB9,    0, 0xBB, 0xBC, 0xBD, 0xBE,    0, /* 0x00B0 */
       0,    0,    0,    0, 0xC4, 0xC5, 0xAF,    0, /* 0x00C0 */
       0, 0xC9,    0,    0,    0,    0,    0,    0, /* 0x00C0 */
       0,    0,    0, 0xD3,    0, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
    0xA8,    0,    0,    0, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
       0,    0,    0,    0, 0xE4, 0xE5, 0xBF,    0, /* 0x00E0 */
       0, 0xE9,    0,    0,    0,    0,    0,    0, /* 0x00E0 */
       0,    0,    0, 0xF3,    0, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
    0xB8,    0,    0,    0, 0xFC,    0,    0,    0, /* 0x00F0 */
    0xC2, 0xE2,    0,    0, 0xC0, 0xE0, 0xC3, 0xE3, /* 0x0100 */
       0,    0,    0,    0, 0xC8, 0xE8,    0,    0, /* 0x0100 */
       0,    0, 0xC7, 0xE7,    0,    0, 0xCB, 0xEB, /* 0x0110 */
    0xC6, 0xE6,    0,    0,    0,    0,    0,    0, /* 0x0110 */
       0,    0, 0xCC, 0xEC,    0,    0,    0,    0, /* 0x0120 */
       0,    0, 0xCE, 0xEE,    0,    0, 0xC1, 0xE1, /* 0x0120 */
       0,    0,    0,    0,    0,    0, 0xCD, 0xED, /* 0x0130 */
       0,    0,    0, 0xCF, 0xEF,    0,    0,    0, /* 0x0130 */
       0, 0xD9, 0xF9, 0xD1, 0xF1, 0xD2, 0xF2,    0, /* 0x0140 */
       0,    0,    0,    0, 0xD4, 0xF4,    0,    0, /* 0x0140 */
       0,    0,    0,    0,    0,    0, 0xAA, 0xBA, /* 0x0150 */
       0,    0, 0xDA, 0xFA,    0,    0,    0,    0, /* 0x0150 */
    0xD0, 0xF0,    0,    0,    0,    0,    0,    0, /* 0x0160 */
       0,    0, 0xDB, 0xFB,    0,    0,    0,    0, /* 0x0160 */
       0,    0, 0xD8, 0xF8,    0,    0,    0,    0, /* 0x0170 */
       0, 0xCA, 0xEA, 0xDD, 0xFD, 0xDE, 0xFE        /* 0x0170 */
};

/* ----------------------------------------------------------------------- */

#define MS1257TOCHARTABEX_COUNT         20
ImplUniCharTabData const aImplMS1257ToCharTabEx[MS1257TOCHARTABEX_COUNT] =
{
  { 0x02C7, 0x8E, 0 },
  { 0x02D9, 0xFF, 0 },
  { 0x02DB, 0x9E, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1257ByteCvtData =
{
    aImplMS1257ToUniTab,
    nullptr,
    aImplMS1257ToCharTab,
    nullptr,
    aImplMS1257ToCharTabEx,
    MS1257UNI_START, MS1257UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1257CHAR_START, MS1257CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1257TOCHARTABEX_COUNT,
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1257TextEncodingData
    = { { &aImplMS1257ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-4",
        "windows-1257",
        1,
        1,
        1,
        186,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_BALTIC, pc code page 775, mac encoding 29 */

/* ======================================================================= */

/* ISO-8859-2 */
/* Unix Standard for Eastern European (Latin2) */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-2.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88592UNI_START               0xA0
#define ISO88592UNI_END                 0xFF
sal_uInt16 const aImplISO88592ToUniTab[ISO88592UNI_END - ISO88592UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, /* 0xA0 */
    0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, /* 0xA0 */
    0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, /* 0xB0 */
    0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, /* 0xB0 */
    0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, /* 0xC0 */
    0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, /* 0xC0 */
    0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, /* 0xD0 */
    0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, /* 0xD0 */
    0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, /* 0xE0 */
    0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, /* 0xE0 */
    0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, /* 0xF0 */
    0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88592TOCHARTABEX_COUNT       96
ImplUniCharTabData const aImplISO88592ToCharTabEx[ISO88592TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B4, 0xB4, 0 },
  { 0x00B8, 0xB8, 0 },
  { 0x00C1, 0xC1, 0 },
  { 0x00C2, 0xC2, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C7, 0xC7, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00CB, 0xCB, 0 },
  { 0x00CD, 0xCD, 0 },
  { 0x00CE, 0xCE, 0 },
  { 0x00D3, 0xD3, 0 },
  { 0x00D4, 0xD4, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00DA, 0xDA, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DD, 0xDD, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E1, 0xE1, 0 },
  { 0x00E2, 0xE2, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E7, 0xE7, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00EB, 0xEB, 0 },
  { 0x00ED, 0xED, 0 },
  { 0x00EE, 0xEE, 0 },
  { 0x00F3, 0xF3, 0 },
  { 0x00F4, 0xF4, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00FA, 0xFA, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x00FD, 0xFD, 0 },
  { 0x0102, 0xC3, 0 },
  { 0x0103, 0xE3, 0 },
  { 0x0104, 0xA1, 0 },
  { 0x0105, 0xB1, 0 },
  { 0x0106, 0xC6, 0 },
  { 0x0107, 0xE6, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x010E, 0xCF, 0 },
  { 0x010F, 0xEF, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0118, 0xCA, 0 },
  { 0x0119, 0xEA, 0 },
  { 0x011A, 0xCC, 0 },
  { 0x011B, 0xEC, 0 },
  { 0x0139, 0xC5, 0 },
  { 0x013A, 0xE5, 0 },
  { 0x013D, 0xA5, 0 },
  { 0x013E, 0xB5, 0 },
  { 0x0141, 0xA3, 0 },
  { 0x0142, 0xB3, 0 },
  { 0x0143, 0xD1, 0 },
  { 0x0144, 0xF1, 0 },
  { 0x0147, 0xD2, 0 },
  { 0x0148, 0xF2, 0 },
  { 0x0150, 0xD5, 0 },
  { 0x0151, 0xF5, 0 },
  { 0x0154, 0xC0, 0 },
  { 0x0155, 0xE0, 0 },
  { 0x0158, 0xD8, 0 },
  { 0x0159, 0xF8, 0 },
  { 0x015A, 0xA6, 0 },
  { 0x015B, 0xB6, 0 },
  { 0x015E, 0xAA, 0 },
  { 0x015F, 0xBA, 0 },
  { 0x0160, 0xA9, 0 },
  { 0x0161, 0xB9, 0 },
  { 0x0162, 0xDE, 0 },
  { 0x0163, 0xFE, 0 },
  { 0x0164, 0xAB, 0 },
  { 0x0165, 0xBB, 0 },
  { 0x016E, 0xD9, 0 },
  { 0x016F, 0xF9, 0 },
  { 0x0170, 0xDB, 0 },
  { 0x0171, 0xFB, 0 },
  { 0x0179, 0xAC, 0 },
  { 0x017A, 0xBC, 0 },
  { 0x017B, 0xAF, 0 },
  { 0x017C, 0xBF, 0 },
  { 0x017D, 0xAE, 0 },
  { 0x017E, 0xBE, 0 },
  { 0x02C7, 0xB7, 0 },
  { 0x02D8, 0xA2, 0 },
  { 0x02D9, 0xFF, 0 },
  { 0x02DB, 0xB2, 0 },
  { 0x02DD, 0xBD, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88592ByteCvtData =
{
    aImplISO88592ToUniTab,
    aImpl8090SameToUniTab,
    aImpl8090SameToCharTab,
    nullptr,
    aImplISO88592ToCharTabEx,
    ISO88592UNI_START, ISO88592UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    ISO88592TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88592TextEncodingData
    = { { &aImplISO88592ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "iso-8859-2",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* ISO-8859-3 */
/* Latin3 (Esperanto, Maltese, Turkish) */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-3.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88593UNI_START               0xA0
#define ISO88593UNI_END                 0xFF
sal_uInt16 const aImplISO88593ToUniTab[ISO88593UNI_END - ISO88593UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4,      0, 0x0124, 0x00A7, /* 0xA0 */
    0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD,      0, 0x017B, /* 0xA0 */
    0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, /* 0xB0 */
    0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD,      0, 0x017C, /* 0xB0 */
    0x00C0, 0x00C1, 0x00C2,      0, 0x00C4, 0x010A, 0x0108, 0x00C7, /* 0xC0 */
    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
         0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, /* 0xD0 */
    0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, /* 0xD0 */
    0x00E0, 0x00E1, 0x00E2,      0, 0x00E4, 0x010B, 0x0109, 0x00E7, /* 0xE0 */
    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
         0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, /* 0xF0 */
    0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88593TOCHARTABEX_COUNT       89
ImplUniCharTabData const aImplISO88593ToCharTabEx[ISO88593TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B2, 0xB2, 0 },
  { 0x00B3, 0xB3, 0 },
  { 0x00B4, 0xB4, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00B8, 0xB8, 0 },
  { 0x00BD, 0xBD, 0 },
  { 0x00C0, 0xC0, 0 },
  { 0x00C1, 0xC1, 0 },
  { 0x00C2, 0xC2, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C7, 0xC7, 0 },
  { 0x00C8, 0xC8, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00CA, 0xCA, 0 },
  { 0x00CB, 0xCB, 0 },
  { 0x00CC, 0xCC, 0 },
  { 0x00CD, 0xCD, 0 },
  { 0x00CE, 0xCE, 0 },
  { 0x00CF, 0xCF, 0 },
  { 0x00D1, 0xD1, 0 },
  { 0x00D2, 0xD2, 0 },
  { 0x00D3, 0xD3, 0 },
  { 0x00D4, 0xD4, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00D9, 0xD9, 0 },
  { 0x00DA, 0xDA, 0 },
  { 0x00DB, 0xDB, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E0, 0xE0, 0 },
  { 0x00E1, 0xE1, 0 },
  { 0x00E2, 0xE2, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E7, 0xE7, 0 },
  { 0x00E8, 0xE8, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00EA, 0xEA, 0 },
  { 0x00EB, 0xEB, 0 },
  { 0x00EC, 0xEC, 0 },
  { 0x00ED, 0xED, 0 },
  { 0x00EE, 0xEE, 0 },
  { 0x00EF, 0xEF, 0 },
  { 0x00F1, 0xF1, 0 },
  { 0x00F2, 0xF2, 0 },
  { 0x00F3, 0xF3, 0 },
  { 0x00F4, 0xF4, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00F9, 0xF9, 0 },
  { 0x00FA, 0xFA, 0 },
  { 0x00FB, 0xFB, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x0108, 0xC6, 0 },
  { 0x0109, 0xE6, 0 },
  { 0x010A, 0xC5, 0 },
  { 0x010B, 0xE5, 0 },
  { 0x011C, 0xD8, 0 },
  { 0x011D, 0xF8, 0 },
  { 0x011E, 0xAB, 0 },
  { 0x011F, 0xBB, 0 },
  { 0x0120, 0xD5, 0 },
  { 0x0121, 0xF5, 0 },
  { 0x0124, 0xA6, 0 },
  { 0x0125, 0xB6, 0 },
  { 0x0126, 0xA1, 0 },
  { 0x0127, 0xB1, 0 },
  { 0x0130, 0xA9, 0 },
  { 0x0131, 0xB9, 0 },
  { 0x0134, 0xAC, 0 },
  { 0x0135, 0xBC, 0 },
  { 0x015C, 0xDE, 0 },
  { 0x015D, 0xFE, 0 },
  { 0x015E, 0xAA, 0 },
  { 0x015F, 0xBA, 0 },
  { 0x016C, 0xDD, 0 },
  { 0x016D, 0xFD, 0 },
  { 0x017B, 0xAF, 0 },
  { 0x017C, 0xBF, 0 },
  { 0x02D8, 0xA2, 0 },
  { 0x02D9, 0xFF, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88593ByteCvtData =
{
    aImplISO88593ToUniTab,
    aImpl8090SameToUniTab,
    aImpl8090SameToCharTab,
    nullptr,
    aImplISO88593ToCharTabEx,
    ISO88593UNI_START, ISO88593UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    ISO88593TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88593TextEncodingData
    = { { &aImplISO88593ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-3",
        "iso-8859-3",
        1,
        1,
        1,
        0,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_LATIN, pc code page 850 */

/* ======================================================================= */

/* ISO-8859-4 */
/* Latin4 (Estonian, Latvian, Lithuanian) */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-4.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88594UNI_START               0xA0
#define ISO88594UNI_END                 0xFF
sal_uInt16 const aImplISO88594ToUniTab[ISO88594UNI_END - ISO88594UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, /* 0xA0 */
    0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, /* 0xA0 */
    0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, /* 0xB0 */
    0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, /* 0xB0 */
    0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */
    0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, /* 0xC0 */
    0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, /* 0xD0 */
    0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */
    0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, /* 0xE0 */
    0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88594TOCHARTABEX_COUNT       96
ImplUniCharTabData const aImplISO88594ToCharTabEx[ISO88594TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AF, 0xAF, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B4, 0xB4, 0 },
  { 0x00B8, 0xB8, 0 },
  { 0x00C1, 0xC1, 0 },
  { 0x00C2, 0xC2, 0 },
  { 0x00C3, 0xC3, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C5, 0xC5, 0 },
  { 0x00C6, 0xC6, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00CB, 0xCB, 0 },
  { 0x00CD, 0xCD, 0 },
  { 0x00CE, 0xCE, 0 },
  { 0x00D4, 0xD4, 0 },
  { 0x00D5, 0xD5, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00D8, 0xD8, 0 },
  { 0x00DA, 0xDA, 0 },
  { 0x00DB, 0xDB, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E1, 0xE1, 0 },
  { 0x00E2, 0xE2, 0 },
  { 0x00E3, 0xE3, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E5, 0xE5, 0 },
  { 0x00E6, 0xE6, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00EB, 0xEB, 0 },
  { 0x00ED, 0xED, 0 },
  { 0x00EE, 0xEE, 0 },
  { 0x00F4, 0xF4, 0 },
  { 0x00F5, 0xF5, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00F8, 0xF8, 0 },
  { 0x00FA, 0xFA, 0 },
  { 0x00FB, 0xFB, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x0100, 0xC0, 0 },
  { 0x0101, 0xE0, 0 },
  { 0x0104, 0xA1, 0 },
  { 0x0105, 0xB1, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0112, 0xAA, 0 },
  { 0x0113, 0xBA, 0 },
  { 0x0116, 0xCC, 0 },
  { 0x0117, 0xEC, 0 },
  { 0x0118, 0xCA, 0 },
  { 0x0119, 0xEA, 0 },
  { 0x0122, 0xAB, 0 },
  { 0x0123, 0xBB, 0 },
  { 0x0128, 0xA5, 0 },
  { 0x0129, 0xB5, 0 },
  { 0x012A, 0xCF, 0 },
  { 0x012B, 0xEF, 0 },
  { 0x012E, 0xC7, 0 },
  { 0x012F, 0xE7, 0 },
  { 0x0136, 0xD3, 0 },
  { 0x0137, 0xF3, 0 },
  { 0x0138, 0xA2, 0 },
  { 0x013B, 0xA6, 0 },
  { 0x013C, 0xB6, 0 },
  { 0x0145, 0xD1, 0 },
  { 0x0146, 0xF1, 0 },
  { 0x014A, 0xBD, 0 },
  { 0x014B, 0xBF, 0 },
  { 0x014C, 0xD2, 0 },
  { 0x014D, 0xF2, 0 },
  { 0x0156, 0xA3, 0 },
  { 0x0157, 0xB3, 0 },
  { 0x0160, 0xA9, 0 },
  { 0x0161, 0xB9, 0 },
  { 0x0166, 0xAC, 0 },
  { 0x0167, 0xBC, 0 },
  { 0x0168, 0xDD, 0 },
  { 0x0169, 0xFD, 0 },
  { 0x016A, 0xDE, 0 },
  { 0x016B, 0xFE, 0 },
  { 0x0172, 0xD9, 0 },
  { 0x0173, 0xF9, 0 },
  { 0x017D, 0xAE, 0 },
  { 0x017E, 0xBE, 0 },
  { 0x02C7, 0xB7, 0 },
  { 0x02D9, 0xFF, 0 },
  { 0x02DB, 0xB2, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88594ByteCvtData =
{
    aImplISO88594ToUniTab,
    aImpl8090SameToUniTab,
    aImpl8090SameToCharTab,
    nullptr,
    aImplISO88594ToCharTabEx,
    ISO88594UNI_START, ISO88594UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    ISO88594TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88594TextEncodingData
    = { { &aImplISO88594ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-4",
        "iso-8859-4",
        1,
        1,
        1,
        186,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_BALTIC, pc code page 775, mac encoding 29 (?) */

/* ======================================================================= */

/* ISO-8859-5 */
/* Unix Standard for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-5.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88595UNI_START               0xA0
#define ISO88595UNI_END                 0xFF
sal_uInt16 const aImplISO88595ToUniTab[ISO88595UNI_END - ISO88595UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, /* 0xA0 */
    0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, /* 0xA0 */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xB0 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xB0 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xC0 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xC0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xD0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xD0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xE0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, /* 0xE0 */
    0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, /* 0xF0 */
    0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88595CHAR_START              0x0401
#define ISO88595CHAR_END                0x045F
unsigned char const aImplISO88595ToCharTab[ISO88595CHAR_END - ISO88595CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0400 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC,    0, 0xAE, 0xAF, /* 0x0400 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0410 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0410 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0420 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0420 */
    0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0430 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x0430 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0440 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0440 */
       0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0450 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC,    0, 0xFE, 0xFF, /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define ISO88595TOCHARTABEX_COUNT       4
ImplUniCharTabData const aImplISO88595ToCharTabEx[ISO88595TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A7, 0xFD, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x2116, 0xF0, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88595ByteCvtData =
{
    aImplISO88595ToUniTab,
    aImpl8090SameToUniTab,
    aImplISO88595ToCharTab,
    aImpl8090SameToCharTab,
    aImplISO88595ToCharTabEx,
    ISO88595UNI_START, ISO88595UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    ISO88595CHAR_START, ISO88595CHAR_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    ISO88595TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88595TextEncodingData
    = { { &aImplISO88595ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "iso-8859-5",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */

/* ======================================================================= */

/* ISO-8859-7 */
/* Unix Standard for Greek */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-7.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88597UNI_START               0xA0
#define ISO88597UNI_END                 0xFF
sal_uInt16 const aImplISO88597ToUniTab[ISO88597UNI_END - ISO88597UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x2018, 0x2019, 0x00A3,      0,      0, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9,      0, 0x00AB, 0x00AC, 0x00AD,      0, 0x2015, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7, /* 0xB0 */
    0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, /* 0xB0 */
    0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0xC0 */
    0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, /* 0xC0 */
    0x03A0, 0x03A1,      0, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, /* 0xD0 */
    0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, /* 0xD0 */
    0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, /* 0xE0 */
    0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, /* 0xE0 */
    0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, /* 0xF0 */
    0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE,      0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88597CHAR_START              0x0384
#define ISO88597CHAR_END                0x03CE
unsigned char const aImplISO88597ToCharTab[ISO88597CHAR_END - ISO88597CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0xB4, 0xB5, 0xB6,    0, /* 0x0380 */
    0xB8, 0xB9, 0xBA,    0, 0xBC,    0, 0xBE, 0xBF, /* 0x0380 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0390 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0390 */
    0xD0, 0xD1,    0, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x03A0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x03A0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x03B0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x03B0 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x03C0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88597TOCHARTABEX_COUNT       19
ImplUniCharTabData const aImplISO88597ToCharTabEx[ISO88597TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A8, 0xA8, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B2, 0xB2, 0 },
  { 0x00B3, 0xB3, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00BD, 0xBD, 0 },
  { 0x2015, 0xAF, 0 },
  { 0x2018, 0xA1, 0 },
  { 0x2019, 0xA2, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88597ByteCvtData =
{
    aImplISO88597ToUniTab,
    aImpl8090SameToUniTab,
    aImplISO88597ToCharTab,
    aImpl8090SameToCharTab,
    aImplISO88597ToCharTabEx,
    ISO88597UNI_START, ISO88597UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    ISO88597CHAR_START, ISO88597CHAR_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    ISO88597TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88597TextEncodingData
    = { { &aImplISO88597ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_GREEK, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* ISO-8859-9 */
/* Latin5 (Turkish) */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-9.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO88599UNI_START               0xA0
#define ISO88599UNI_END                 0xFF
sal_uInt16 const aImplISO88599ToUniTab[ISO88599UNI_END - ISO88599UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
    0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
    0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, /* 0xD0 */
    0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
    0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88599CHAR_START              0x00A0
#define ISO88599CHAR_END                0x00FF
unsigned char const aImplISO88599ToCharTab[ISO88599CHAR_END - ISO88599CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
       0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x00D0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x00E0 */
       0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x00F0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC,    0,    0, 0xFF  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define ISO88599TOCHARTABEX_COUNT       6
ImplUniCharTabData const aImplISO88599ToCharTabEx[ISO88599TOCHARTABEX_COUNT] =
{
  { 0x011E, 0xD0, 0 },
  { 0x011F, 0xF0, 0 },
  { 0x0130, 0xDD, 0 },
  { 0x0131, 0xFD, 0 },
  { 0x015E, 0xDE, 0 },
  { 0x015F, 0xFE, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO88599ByteCvtData =
{
    aImplISO88599ToUniTab,
    aImpl8090SameToUniTab,
    aImplISO88599ToCharTab,
    aImpl8090SameToCharTab,
    aImplISO88599ToCharTabEx,
    ISO88599UNI_START, ISO88599UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    ISO88599CHAR_START, ISO88599CHAR_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    ISO88599TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO88599TextEncodingData
    = { { &aImplISO88599ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "iso-8859-9",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* ISO-8859-10 */
/* East European */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-10.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO885910UNI_START              0xA0
#define ISO885910UNI_END                0xFF
sal_uInt16 const aImplISO885910ToUniTab[ISO885910UNI_END - ISO885910UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, /* 0xA0 */
    0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, /* 0xA0 */
    0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, /* 0xB0 */
    0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, /* 0xB0 */
    0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, /* 0xC0 */
    0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
    0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, /* 0xD0 */
    0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, /* 0xD0 */
    0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, /* 0xE0 */
    0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
    0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, /* 0xF0 */
    0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO885910CHAR_START             0x00C1
#define ISO885910CHAR_END               0x00FE
unsigned char const aImplISO885910ToCharTab[ISO885910CHAR_END - ISO885910CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6,    0, /* 0x00C0 */
       0, 0xC9,    0, 0xCB,    0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
    0xD0,    0,    0, 0xD3, 0xD4, 0xD5, 0xD6,    0, /* 0x00D0 */
    0xD8,    0, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, /* 0x00D0 */
       0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,    0, /* 0x00E0 */
       0, 0xE9,    0, 0xEB,    0, 0xED, 0xEE, 0xEF, /* 0x00E0 */
    0xF0,    0,    0, 0xF3, 0xF4, 0xF5, 0xF6,    0, /* 0x00F0 */
    0xF8,    0, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE        /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define ISO885910TOCHARTABEX_COUNT      51
ImplUniCharTabData const aImplISO885910ToCharTabEx[ISO885910TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x0100, 0xC0, 0 },
  { 0x0101, 0xE0, 0 },
  { 0x0104, 0xA1, 0 },
  { 0x0105, 0xB1, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x0110, 0xA9, 0 },
  { 0x0111, 0xB9, 0 },
  { 0x0112, 0xA2, 0 },
  { 0x0113, 0xB2, 0 },
  { 0x0116, 0xCC, 0 },
  { 0x0117, 0xEC, 0 },
  { 0x0118, 0xCA, 0 },
  { 0x0119, 0xEA, 0 },
  { 0x0122, 0xA3, 0 },
  { 0x0123, 0xB3, 0 },
  { 0x0128, 0xA5, 0 },
  { 0x0129, 0xB5, 0 },
  { 0x012A, 0xA4, 0 },
  { 0x012B, 0xB4, 0 },
  { 0x012E, 0xC7, 0 },
  { 0x012F, 0xE7, 0 },
  { 0x0136, 0xA6, 0 },
  { 0x0137, 0xB6, 0 },
  { 0x0138, 0xFF, 0 },
  { 0x013B, 0xA8, 0 },
  { 0x013C, 0xB8, 0 },
  { 0x0145, 0xD1, 0 },
  { 0x0146, 0xF1, 0 },
  { 0x014A, 0xAF, 0 },
  { 0x014B, 0xBF, 0 },
  { 0x014C, 0xD2, 0 },
  { 0x014D, 0xF2, 0 },
  { 0x0160, 0xAA, 0 },
  { 0x0161, 0xBA, 0 },
  { 0x0166, 0xAB, 0 },
  { 0x0167, 0xBB, 0 },
  { 0x0168, 0xD7, 0 },
  { 0x0169, 0xF7, 0 },
  { 0x016A, 0xAE, 0 },
  { 0x016B, 0xBE, 0 },
  { 0x0172, 0xD9, 0 },
  { 0x0173, 0xF9, 0 },
  { 0x017D, 0xAC, 0 },
  { 0x017E, 0xBC, 0 },
  { 0x2015, 0xBD, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO885910ByteCvtData =
{
    aImplISO885910ToUniTab,
    aImpl8090SameToUniTab,
    aImplISO885910ToCharTab,
    aImpl8090SameToCharTab,
    aImplISO885910ToCharTabEx,
    ISO885910UNI_START, ISO885910UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    ISO885910CHAR_START, ISO885910CHAR_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    ISO885910TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO885910TextEncodingData
    = { { &aImplISO885910ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-10",
        "iso-8859-10",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* ISO-8859-13 */
/* East European */
/* 1-byte, 0x00-0x7F ASCII without exception, 0x80-0x9F control character like in Unicode */
/* Convert-Tables: mappings/iso8859/8859-13.txt from 07/27/99 Version 1.0 (based on Unicode 3.0) */
/* Last-Changes from us: */

#define ISO885913UNI_START              0xA0
#define ISO885913UNI_END                0xFF
sal_uInt16 const aImplISO885913ToUniTab[ISO885913UNI_END - ISO885913UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, /* 0xA0 */
    0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, /* 0xB0 */
    0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, /* 0xC0 */
    0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, /* 0xC0 */
    0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, /* 0xD0 */
    0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, /* 0xD0 */
    0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, /* 0xE0 */
    0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, /* 0xE0 */
    0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, /* 0xF0 */
    0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define ISO885913TOCHARTABEX_COUNT      96
ImplUniCharTabData const aImplISO885913ToCharTabEx[ISO885913TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x00A2, 0xA2, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xA4, 0 },
  { 0x00A6, 0xA6, 0 },
  { 0x00A7, 0xA7, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xAB, 0 },
  { 0x00AC, 0xAC, 0 },
  { 0x00AD, 0xAD, 0 },
  { 0x00AE, 0xAE, 0 },
  { 0x00B0, 0xB0, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B2, 0xB2, 0 },
  { 0x00B3, 0xB3, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xB6, 0 },
  { 0x00B7, 0xB7, 0 },
  { 0x00B9, 0xB9, 0 },
  { 0x00BB, 0xBB, 0 },
  { 0x00BC, 0xBC, 0 },
  { 0x00BD, 0xBD, 0 },
  { 0x00BE, 0xBE, 0 },
  { 0x00C4, 0xC4, 0 },
  { 0x00C5, 0xC5, 0 },
  { 0x00C6, 0xAF, 0 },
  { 0x00C9, 0xC9, 0 },
  { 0x00D3, 0xD3, 0 },
  { 0x00D5, 0xD5, 0 },
  { 0x00D6, 0xD6, 0 },
  { 0x00D7, 0xD7, 0 },
  { 0x00D8, 0xA8, 0 },
  { 0x00DC, 0xDC, 0 },
  { 0x00DF, 0xDF, 0 },
  { 0x00E4, 0xE4, 0 },
  { 0x00E5, 0xE5, 0 },
  { 0x00E6, 0xBF, 0 },
  { 0x00E9, 0xE9, 0 },
  { 0x00F3, 0xF3, 0 },
  { 0x00F5, 0xF5, 0 },
  { 0x00F6, 0xF6, 0 },
  { 0x00F7, 0xF7, 0 },
  { 0x00F8, 0xB8, 0 },
  { 0x00FC, 0xFC, 0 },
  { 0x0100, 0xC2, 0 },
  { 0x0101, 0xE2, 0 },
  { 0x0104, 0xC0, 0 },
  { 0x0105, 0xE0, 0 },
  { 0x0106, 0xC3, 0 },
  { 0x0107, 0xE3, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x0112, 0xC7, 0 },
  { 0x0113, 0xE7, 0 },
  { 0x0116, 0xCB, 0 },
  { 0x0117, 0xEB, 0 },
  { 0x0118, 0xC6, 0 },
  { 0x0119, 0xE6, 0 },
  { 0x0122, 0xCC, 0 },
  { 0x0123, 0xEC, 0 },
  { 0x012A, 0xCE, 0 },
  { 0x012B, 0xEE, 0 },
  { 0x012E, 0xC1, 0 },
  { 0x012F, 0xE1, 0 },
  { 0x0136, 0xCD, 0 },
  { 0x0137, 0xED, 0 },
  { 0x013B, 0xCF, 0 },
  { 0x013C, 0xEF, 0 },
  { 0x0141, 0xD9, 0 },
  { 0x0142, 0xF9, 0 },
  { 0x0143, 0xD1, 0 },
  { 0x0144, 0xF1, 0 },
  { 0x0145, 0xD2, 0 },
  { 0x0146, 0xF2, 0 },
  { 0x014C, 0xD4, 0 },
  { 0x014D, 0xF4, 0 },
  { 0x0156, 0xAA, 0 },
  { 0x0157, 0xBA, 0 },
  { 0x015A, 0xDA, 0 },
  { 0x015B, 0xFA, 0 },
  { 0x0160, 0xD0, 0 },
  { 0x0161, 0xF0, 0 },
  { 0x016A, 0xDB, 0 },
  { 0x016B, 0xFB, 0 },
  { 0x0172, 0xD8, 0 },
  { 0x0173, 0xF8, 0 },
  { 0x0179, 0xCA, 0 },
  { 0x017A, 0xEA, 0 },
  { 0x017B, 0xDD, 0 },
  { 0x017C, 0xFD, 0 },
  { 0x017D, 0xDE, 0 },
  { 0x017E, 0xFE, 0 },
  { 0x2019, 0xFF, 0 },
  { 0x201C, 0xB4, 0 },
  { 0x201D, 0xA1, 0 },
  { 0x201E, 0xA5, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplISO885913ByteCvtData =
{
    aImplISO885913ToUniTab,
    aImpl8090SameToUniTab,
    aImpl8090SameToCharTab,
    nullptr,
    aImplISO885913ToCharTabEx,
    ISO885913UNI_START, ISO885913UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    ISO885913TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplISO885913TextEncodingData
    = { { &aImplISO885913ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-13",
        "iso-8859-13",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* APPLE-CentEuro */
/* Apple CharSet for Eastern Europa (Polish, Czech, Slovak, Hungarian, Estonian, Latvian, Lithuanian) */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/centeuro.txt from 02/05/98 */
/* Last-Changes from us: */

#define APPLECENTEUROUNI_START          0x80
#define APPLECENTEUROUNI_END            0xFF
sal_uInt16 const aImplAPPLECENTEUROToUniTab[APPLECENTEUROUNI_END - APPLECENTEUROUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
    0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, /* 0x80 */
    0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, /* 0x90 */
    0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, /* 0x90 */
    0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
    0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E, /* 0xA0 */
    0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, /* 0xB0 */
    0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, /* 0xB0 */
    0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, /* 0xC0 */
    0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
    0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, /* 0xD0 */
    0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, /* 0xE0 */
    0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, /* 0xE0 */
    0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, /* 0xF0 */
    0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLECENTEUROTOCHARTABEX_COUNT  128
ImplUniCharTabData const aImplAPPLECENTEUROToCharTabEx[APPLECENTEUROTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xCA, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A7, 0xA4, 0 },
  { 0x00A8, 0xAC, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xC7, 0 },
  { 0x00AC, 0xC2, 0 },
  { 0x00AE, 0xA8, 0 },
  { 0x00B0, 0xA1, 0 },
  { 0x00B6, 0xA6, 0 },
  { 0x00BB, 0xC8, 0 },
  { 0x00C1, 0xE7, 0 },
  { 0x00C4, 0x80, 0 },
  { 0x00C9, 0x83, 0 },
  { 0x00CD, 0xEA, 0 },
  { 0x00D3, 0xEE, 0 },
  { 0x00D4, 0xEF, 0 },
  { 0x00D5, 0xCD, 0 },
  { 0x00D6, 0x85, 0 },
  { 0x00DA, 0xF2, 0 },
  { 0x00DC, 0x86, 0 },
  { 0x00DD, 0xF8, 0 },
  { 0x00DF, 0xA7, 0 },
  { 0x00E1, 0x87, 0 },
  { 0x00E4, 0x8A, 0 },
  { 0x00E9, 0x8E, 0 },
  { 0x00ED, 0x92, 0 },
  { 0x00F3, 0x97, 0 },
  { 0x00F4, 0x99, 0 },
  { 0x00F5, 0x9B, 0 },
  { 0x00F6, 0x9A, 0 },
  { 0x00F7, 0xD6, 0 },
  { 0x00FA, 0x9C, 0 },
  { 0x00FC, 0x9F, 0 },
  { 0x00FD, 0xF9, 0 },
  { 0x0100, 0x81, 0 },
  { 0x0101, 0x82, 0 },
  { 0x0104, 0x84, 0 },
  { 0x0105, 0x88, 0 },
  { 0x0106, 0x8C, 0 },
  { 0x0107, 0x8D, 0 },
  { 0x010C, 0x89, 0 },
  { 0x010D, 0x8B, 0 },
  { 0x010E, 0x91, 0 },
  { 0x010F, 0x93, 0 },
  { 0x0112, 0x94, 0 },
  { 0x0113, 0x95, 0 },
  { 0x0116, 0x96, 0 },
  { 0x0117, 0x98, 0 },
  { 0x0118, 0xA2, 0 },
  { 0x0119, 0xAB, 0 },
  { 0x011A, 0x9D, 0 },
  { 0x011B, 0x9E, 0 },
  { 0x0122, 0xFE, 0 },
  { 0x0123, 0xAE, 0 },
  { 0x012A, 0xB1, 0 },
  { 0x012B, 0xB4, 0 },
  { 0x012E, 0xAF, 0 },
  { 0x012F, 0xB0, 0 },
  { 0x0136, 0xB5, 0 },
  { 0x0137, 0xFA, 0 },
  { 0x0139, 0xBD, 0 },
  { 0x013A, 0xBE, 0 },
  { 0x013B, 0xB9, 0 },
  { 0x013C, 0xBA, 0 },
  { 0x013D, 0xBB, 0 },
  { 0x013E, 0xBC, 0 },
  { 0x0141, 0xFC, 0 },
  { 0x0142, 0xB8, 0 },
  { 0x0143, 0xC1, 0 },
  { 0x0144, 0xC4, 0 },
  { 0x0145, 0xBF, 0 },
  { 0x0146, 0xC0, 0 },
  { 0x0147, 0xC5, 0 },
  { 0x0148, 0xCB, 0 },
  { 0x014C, 0xCF, 0 },
  { 0x014D, 0xD8, 0 },
  { 0x0150, 0xCC, 0 },
  { 0x0151, 0xCE, 0 },
  { 0x0154, 0xD9, 0 },
  { 0x0155, 0xDA, 0 },
  { 0x0156, 0xDF, 0 },
  { 0x0157, 0xE0, 0 },
  { 0x0158, 0xDB, 0 },
  { 0x0159, 0xDE, 0 },
  { 0x015A, 0xE5, 0 },
  { 0x015B, 0xE6, 0 },
  { 0x0160, 0xE1, 0 },
  { 0x0161, 0xE4, 0 },
  { 0x0164, 0xE8, 0 },
  { 0x0165, 0xE9, 0 },
  { 0x016A, 0xED, 0 },
  { 0x016B, 0xF0, 0 },
  { 0x016E, 0xF1, 0 },
  { 0x016F, 0xF3, 0 },
  { 0x0170, 0xF4, 0 },
  { 0x0171, 0xF5, 0 },
  { 0x0172, 0xF6, 0 },
  { 0x0173, 0xF7, 0 },
  { 0x0179, 0x8F, 0 },
  { 0x017A, 0x90, 0 },
  { 0x017B, 0xFB, 0 },
  { 0x017C, 0xFD, 0 },
  { 0x017D, 0xEB, 0 },
  { 0x017E, 0xEC, 0 },
  { 0x02C7, 0xFF, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201A, 0xE2, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xE3, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2039, 0xDC, 0 },
  { 0x203A, 0xDD, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2202, 0xB6, 0 },
  { 0x2206, 0xC6, 0 },
  { 0x2211, 0xB7, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 },
  { 0x25CA, 0xD7, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLECENTEUROByteCvtData =
{
    aImplAPPLECENTEUROToUniTab,
    nullptr,
    nullptr,
    nullptr,
    aImplAPPLECENTEUROToCharTabEx,
    APPLECENTEUROUNI_START, APPLECENTEUROUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    NOTABCHAR_START, NOTABCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLECENTEUROTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLECENTEUROTextEncodingData
    = { { &aImplAPPLECENTEUROByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "iso-8859-2",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 29 */

/* ======================================================================= */

/* APPLE-Croatian */
/* Standard Apple CharSet for Croatian */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/croatien.txt from 02/05/98 */
/* Last-Changes from us: */

#define APPLECROATIANUNI_START          0x80
#define APPLECROATIANUNI_END            0xFF
sal_uInt16 const aImplAPPLECROATIANToUniTab[APPLECROATIANUNI_END - APPLECROATIANUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
    0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
    0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
    0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
    0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
    0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8, /* 0xA0 */
    0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
    0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8, /* 0xB0 */
    0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB, /* 0xC0 */
    0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
    0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
    0xF8FF, 0x00A9, 0x2044, 0x00A4, 0x2039, 0x203A, 0x00C6, 0x00BB, /* 0xD0 */
    0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1, /* 0xE0 */
    0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
    0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
    0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLECROATIANCHAR_START         0x00A0
#define APPLECROATIANCHAR_END           0x00FC
unsigned char const aImplAPPLECROATIANToCharTab[APPLECROATIANCHAR_END - APPLECROATIANCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xCA, 0xC1, 0xA2, 0xA3, 0xDB,    0,    0, 0xA4, /* 0x00A0 */
    0xAC, 0xD9, 0xBB, 0xC7, 0xC2,    0, 0xA8, 0xF8, /* 0x00A0 */
    0xA1, 0xB1,    0,    0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
    0xFC,    0, 0xBC, 0xDF,    0,    0,    0, 0xC0, /* 0x00B0 */
    0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xDE, 0x82, /* 0x00C0 */
    0xE9, 0x83, 0xFD, 0xFA, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
       0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85,    0, /* 0x00D0 */
    0xAF, 0xF4, 0xF2, 0xF3, 0x86,    0,    0, 0xA7, /* 0x00D0 */
    0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xFE, 0x8D, /* 0x00E0 */
    0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
       0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
    0xBF, 0x9D, 0x9C, 0x9E, 0x9F                    /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define APPLECROATIANTOCHARTABEX_COUNT  49
ImplUniCharTabData const aImplAPPLECROATIANToCharTabEx[APPLECROATIANTOCHARTABEX_COUNT] =
{
  { 0x0106, 0xC6, 0 },
  { 0x0107, 0xE6, 0 },
  { 0x010C, 0xC8, 0 },
  { 0x010D, 0xE8, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0131, 0xF5, 0 },
  { 0x0152, 0xCE, 0 },
  { 0x0153, 0xCF, 0 },
  { 0x0160, 0xA9, 0 },
  { 0x0161, 0xB9, 0 },
  { 0x017D, 0xAE, 0 },
  { 0x017E, 0xBE, 0 },
  { 0x0192, 0xC4, 0 },
  { 0x02C6, 0xF6, 0 },
  { 0x02C7, 0xFF, 0 },
  { 0x02DA, 0xFB, 0 },
  { 0x02DC, 0xF7, 0 },
  { 0x03A9, 0xBD, 0 },
  { 0x03C0, 0xF9, 0 },
  { 0x2013, 0xE0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201A, 0xE2, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xE3, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2030, 0xE4, 0 },
  { 0x2039, 0xDC, 0 },
  { 0x203A, 0xDD, 0 },
  { 0x2044, 0xDA, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2202, 0xB6, 0 },
  { 0x2206, 0xB4, 0 },
  { 0x220F, 0xB8, 0 },
  { 0x2211, 0xB7, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x221E, 0xB0, 0 },
  { 0x222B, 0xBA, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 },
  { 0x25CA, 0xD7, 0 },
  { 0xF8FF, 0xD8, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLECROATIANByteCvtData =
{
    aImplAPPLECROATIANToUniTab,
    nullptr,
    aImplAPPLECROATIANToCharTab,
    nullptr,
    aImplAPPLECROATIANToCharTabEx,
    APPLECROATIANUNI_START, APPLECROATIANUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLECROATIANCHAR_START, APPLECROATIANCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLECROATIANTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLECROATIANTextEncodingData
    = { { &aImplAPPLECROATIANByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "iso-8859-2",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 36 */

/* ======================================================================= */

/* APPLE-Cyrillic */
/* Apple CharSet for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/cyrillic.txt from 02/15/98 */
/* Last-Changes from us: */

#define APPLECYRILLICUNI_START          0x80
#define APPLECYRILLICUNI_END            0xFF
sal_uInt16 const aImplAPPLECYRILLICToUniTab[APPLECYRILLICUNI_END - APPLECYRILLICUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
    0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */
    0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */
    0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x2202, 0x0408, /* 0xB0 */
    0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */
    0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */
    0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */
    0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLECYRILLICCHAR_START         0x0401
#define APPLECYRILLICCHAR_END           0x045F
unsigned char const aImplAPPLECYRILLICToCharTab[APPLECYRILLICCHAR_END - APPLECYRILLICCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */
    0xB7, 0xBC, 0xBE, 0xCB, 0xCD,    0, 0xD8, 0xDA, /* 0x0400 */
    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
    0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
    0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */
       0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */
    0xC0, 0xBD, 0xBF, 0xCC, 0xCE,    0, 0xD9, 0xDB, /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define APPLECYRILLICTOCHARTABEX_COUNT  36
ImplUniCharTabData const aImplAPPLECYRILLICToCharTabEx[APPLECYRILLICTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xCA, 0 },
  { 0x00A2, 0xA2, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xFF, 0 },
  { 0x00A7, 0xA4, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xC7, 0 },
  { 0x00AC, 0xC2, 0 },
  { 0x00AE, 0xA8, 0 },
  { 0x00B0, 0xA1, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xA6, 0 },
  { 0x00BB, 0xC8, 0 },
  { 0x00F7, 0xD6, 0 },
  { 0x0192, 0xC4, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xD7, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2116, 0xDC, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2202, 0xB6, 0 },
  { 0x2206, 0xC6, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x221E, 0xB0, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLECYRILLICByteCvtData =
{
    aImplAPPLECYRILLICToUniTab,
    nullptr,
    aImplAPPLECYRILLICToCharTab,
    nullptr,
    aImplAPPLECYRILLICToCharTabEx,
    APPLECYRILLICUNI_START, APPLECYRILLICUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLECYRILLICCHAR_START, APPLECYRILLICCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLECYRILLICTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLECYRILLICTextEncodingData
    = { { &aImplAPPLECYRILLICByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "iso-8859-5",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */

/* ======================================================================= */

/* APPLE-Greek */
/* Apple CharSet for Greek */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/roman.txt from 08/18/98 */
/* Last-Changes from us: */

#define APPLEGREEKUNI_START             0x80
#define APPLEGREEKUNI_END               0xFF
sal_uInt16 const aImplAPPLEGREEKToUniTab[APPLEGREEKUNI_END - APPLEGREEKUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385, /* 0x80 */
    0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
    0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD, /* 0x90 */
    0x2030, 0x00F4, 0x00F6, 0x00A6, 0x00AD, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
    0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF, /* 0xA0 */
    0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7, /* 0xA0 */
    0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396, /* 0xB0 */
    0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9, /* 0xB0 */
    0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153, /* 0xC0 */
    0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389, /* 0xD0 */
    0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F, /* 0xD0 */
    0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, /* 0xE0 */
    0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, /* 0xE0 */
    0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, /* 0xF0 */
    0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0xF8A0  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLEGREEKCHAR_START            0x0384
#define APPLEGREEKCHAR_END              0x03CE
unsigned char const aImplAPPLEGREEKToCharTab[APPLEGREEKCHAR_END - APPLEGREEKCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
                            0x8B, 0x87, 0xCD,    0, /* 0x0380 */
    0xCE, 0xD7, 0xD8,    0, 0xD9,    0, 0xDA, 0xDF, /* 0x0380 */
    0xFD, 0xB0, 0xB5, 0xA1, 0xA2, 0xB6, 0xB7, 0xB8, /* 0x0390 */
    0xA3, 0xB9, 0xBA, 0xA4, 0xBB, 0xC1, 0xA5, 0xC3, /* 0x0390 */
    0xA6, 0xC4,    0, 0xAA, 0xC6, 0xCB, 0xBC, 0xCC, /* 0x03A0 */
    0xBE, 0xBF, 0xAB, 0xBD, 0xC0, 0xDB, 0xDC, 0xDD, /* 0x03A0 */
    0xFE, 0xE1, 0xE2, 0xE7, 0xE4, 0xE5, 0xFA, 0xE8, /* 0x03B0 */
    0xF5, 0xE9, 0xEB, 0xEC, 0xED, 0xEE, 0xEA, 0xEF, /* 0x03B0 */
    0xF0, 0xF2, 0xF7, 0xF3, 0xF4, 0xF9, 0xE6, 0xF8, /* 0x03C0 */
    0xE3, 0xF6, 0xFB, 0xFC, 0xDE, 0xE0, 0xF1        /* 0x03C0 */
};

/* ----------------------------------------------------------------------- */

#define APPLEGREEKTOCHARTABEX_COUNT     57
ImplUniCharTabData const aImplAPPLEGREEKToCharTabEx[APPLEGREEKTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xCA, 0 },
  { 0x00A3, 0x92, 0 },
  { 0x00A5, 0xB4, 0 },
  { 0x00A6, 0x9B, 0 },
  { 0x00A7, 0xAC, 0 },
  { 0x00A8, 0x8C, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xC7, 0 },
  { 0x00AC, 0xC2, 0 },
  { 0x00AD, 0x9C, 0 },
  { 0x00AE, 0xA8, 0 },
  { 0x00B0, 0xAE, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B2, 0x82, 0 },
  { 0x00B3, 0x84, 0 },
  { 0x00B7, 0xAF, 0 },
  { 0x00B9, 0x81, 0 },
  { 0x00BB, 0xC8, 0 },
  { 0x00BD, 0x97, 0 },
  { 0x00C4, 0x80, 0 },
  { 0x00C9, 0x83, 0 },
  { 0x00D6, 0x85, 0 },
  { 0x00DC, 0x86, 0 },
  { 0x00DF, 0xA7, 0 },
  { 0x00E0, 0x88, 0 },
  { 0x00E2, 0x89, 0 },
  { 0x00E4, 0x8A, 0 },
  { 0x00E7, 0x8D, 0 },
  { 0x00E8, 0x8F, 0 },
  { 0x00E9, 0x8E, 0 },
  { 0x00EA, 0x90, 0 },
  { 0x00EB, 0x91, 0 },
  { 0x00EE, 0x94, 0 },
  { 0x00EF, 0x95, 0 },
  { 0x00F4, 0x99, 0 },
  { 0x00F6, 0x9A, 0 },
  { 0x00F7, 0xD6, 0 },
  { 0x00F9, 0x9D, 0 },
  { 0x00FB, 0x9E, 0 },
  { 0x00FC, 0x9F, 0 },
  { 0x0153, 0xCF, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2015, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2022, 0x96, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2030, 0x98, 0 },
  { 0x2122, 0x93, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 },
  { 0xF8A0, 0xFF, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLEGREEKByteCvtData =
{
    aImplAPPLEGREEKToUniTab,
    nullptr,
    aImplAPPLEGREEKToCharTab,
    nullptr,
    aImplAPPLEGREEKToCharTabEx,
    APPLEGREEKUNI_START, APPLEGREEKUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLEGREEKCHAR_START, APPLEGREEKCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLEGREEKTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLEGREEKTextEncodingData
    = { { &aImplAPPLEGREEKByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-7",
        "iso-8859-7",
        1,
        1,
        1,
        161,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_GREEK, pc code page 869, mac encoding 6 */

/* ======================================================================= */

/* APPLE-Romanian */
/* Standard Apple CharSet for Romanian */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/romanian.txt from 02/05/98 */
/* Last-Changes from us: */
/* 0xAF --> 0x015E (like Java), Apple Definition: 0x0053+0x0326   # LATIN CAPITAL LETTER S + COMBINING COMMA BELOW */
/* 0xBF --> 0x015F (like Java), Apple Definition: 0x0073+0x0326   # LATIN SMALL LETTER S + COMBINING COMMA BELOW */
/* 0xDE --> 0x0162 (like Java), Apple Definition: 0x0054+0x0326   # LATIN CAPITAL LETTER T + COMBINING COMMA BELOW */
/* 0xDF --> 0x0163 (like Java), Apple Definition: 0x0074+0x0326   # LATIN SMALL LETTER T + COMBINING COMMA BELOW */

#define APPLEROMANIANUNI_START          0x80
#define APPLEROMANIANUNI_END            0xFF
sal_uInt16 const aImplAPPLEROMANIANToUniTab[APPLEROMANIANUNI_END - APPLEROMANIANUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
    0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
    0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
    0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
    0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
    0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x015E, /* 0xA0 */
    0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
    0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x015F, /* 0xB0 */
    0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
    0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
    0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0x0162, 0x0163, /* 0xD0 */
    0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
    0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
    0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC, /* 0xF0 */
    0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLEROMANIANCHAR_START         0x00A0
#define APPLEROMANIANCHAR_END           0x00FF
unsigned char const aImplAPPLEROMANIANToCharTab[APPLEROMANIANCHAR_END - APPLEROMANIANCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4,    0, 0xA4, /* 0x00A0 */
    0xAC, 0xA9, 0xBB, 0xC7, 0xC2,    0, 0xA8, 0xF8, /* 0x00A0 */
    0xA1, 0xB1,    0,    0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
    0xFC,    0, 0xBC, 0xC8,    0,    0,    0, 0xC0, /* 0x00B0 */
    0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81,    0, 0x82, /* 0x00C0 */
    0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
       0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85,    0, /* 0x00D0 */
       0, 0xF4, 0xF2, 0xF3, 0x86,    0,    0, 0xA7, /* 0x00D0 */
    0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C,    0, 0x8D, /* 0x00E0 */
    0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
       0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
       0, 0x9D, 0x9C, 0x9E, 0x9F,    0,    0, 0xD8  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define APPLEROMANIANTOCHARTABEX_COUNT  51
ImplUniCharTabData const aImplAPPLEROMANIANToCharTabEx[APPLEROMANIANTOCHARTABEX_COUNT] =
{
  { 0x0102, 0xAE, 0 },
  { 0x0103, 0xBE, 0 },
  { 0x0131, 0xF5, 0 },
  { 0x0152, 0xCE, 0 },
  { 0x0153, 0xCF, 0 },
  { 0x015E, 0xAF, 0 },
  { 0x015F, 0xBF, 0 },
  { 0x0162, 0xDE, 0 },
  { 0x0163, 0xDF, 0 },
  { 0x0178, 0xD9, 0 },
  { 0x0192, 0xC4, 0 },
  { 0x02C6, 0xF6, 0 },
  { 0x02C7, 0xFF, 0 },
  { 0x02D8, 0xF9, 0 },
  { 0x02D9, 0xFA, 0 },
  { 0x02DA, 0xFB, 0 },
  { 0x02DB, 0xFE, 0 },
  { 0x02DC, 0xF7, 0 },
  { 0x02DD, 0xFD, 0 },
  { 0x03A9, 0xBD, 0 },
  { 0x03C0, 0xB9, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201A, 0xE2, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xE3, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2021, 0xE0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2030, 0xE4, 0 },
  { 0x2039, 0xDC, 0 },
  { 0x203A, 0xDD, 0 },
  { 0x2044, 0xDA, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2202, 0xB6, 0 },
  { 0x2206, 0xC6, 0 },
  { 0x220F, 0xB8, 0 },
  { 0x2211, 0xB7, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x221E, 0xB0, 0 },
  { 0x222B, 0xBA, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 },
  { 0x25CA, 0xD7, 0 },
  { 0xF8FF, 0xF0, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLEROMANIANByteCvtData =
{
    aImplAPPLEROMANIANToUniTab,
    nullptr,
    aImplAPPLEROMANIANToCharTab,
    nullptr,
    aImplAPPLEROMANIANToCharTabEx,
    APPLEROMANIANUNI_START, APPLEROMANIANUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLEROMANIANCHAR_START, APPLEROMANIANCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLEROMANIANTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLEROMANIANTextEncodingData
    = { { &aImplAPPLEROMANIANByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-2",
        "iso-8859-2",
        1,
        1,
        1,
        238,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_EASTEUROPE, pc code page 852, mac encoding 38 */

/* ======================================================================= */

/* APPLE-Turkish */
/* Apple CharSet for Turkish */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/turkish.txt from 02/05/98 */
/* Last-Changes from us: */

#define APPLETURKISHUNI_START           0x80
#define APPLETURKISHUNI_END             0xFF
sal_uInt16 const aImplAPPLETURKISHToUniTab[APPLETURKISHUNI_END - APPLETURKISHUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, /* 0x80 */
    0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, /* 0x80 */
    0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, /* 0x90 */
    0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, /* 0x90 */
    0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, /* 0xA0 */
    0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, /* 0xA0 */
    0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, /* 0xB0 */
    0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, /* 0xB0 */
    0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, /* 0xC0 */
    0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, /* 0xD0 */
    0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F, /* 0xD0 */
    0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, /* 0xE0 */
    0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, /* 0xE0 */
    0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC, /* 0xF0 */
    0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLETURKISHCHAR_START          0x00A0
#define APPLETURKISHCHAR_END            0x00FF
unsigned char const aImplAPPLETURKISHToCharTab[APPLETURKISHCHAR_END - APPLETURKISHCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xCA, 0xC1, 0xA2, 0xA3,    0, 0xB4,    0, 0xA4, /* 0x00A0 */
    0xAC, 0xA9, 0xBB, 0xC7, 0xC2,    0, 0xA8, 0xF8, /* 0x00A0 */
    0xA1, 0xB1,    0,    0, 0xAB, 0xB5, 0xA6, 0xE1, /* 0x00B0 */
    0xFC,    0, 0xBC, 0xC8,    0,    0,    0, 0xC0, /* 0x00B0 */
    0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, /* 0x00C0 */
    0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC, /* 0x00C0 */
       0, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85,    0, /* 0x00D0 */
    0xAF, 0xF4, 0xF2, 0xF3, 0x86,    0,    0, 0xA7, /* 0x00D0 */
    0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, /* 0x00E0 */
    0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0x00E0 */
       0, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, /* 0x00F0 */
    0xBF, 0x9D, 0x9C, 0x9E, 0x9F,    0,    0, 0xD8  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

#define APPLETURKISHTOCHARTABEX_COUNT   48
ImplUniCharTabData const aImplAPPLETURKISHToCharTabEx[APPLETURKISHTOCHARTABEX_COUNT] =
{
  { 0x011E, 0xDA, 0 },
  { 0x011F, 0xDB, 0 },
  { 0x0130, 0xDC, 0 },
  { 0x0131, 0xDD, 0 },
  { 0x0152, 0xCE, 0 },
  { 0x0153, 0xCF, 0 },
  { 0x015E, 0xDE, 0 },
  { 0x015F, 0xDF, 0 },
  { 0x0178, 0xD9, 0 },
  { 0x0192, 0xC4, 0 },
  { 0x02C6, 0xF6, 0 },
  { 0x02C7, 0xFF, 0 },
  { 0x02D8, 0xF9, 0 },
  { 0x02D9, 0xFA, 0 },
  { 0x02DA, 0xFB, 0 },
  { 0x02DB, 0xFE, 0 },
  { 0x02DC, 0xF7, 0 },
  { 0x02DD, 0xFD, 0 },
  { 0x03A9, 0xBD, 0 },
  { 0x03C0, 0xB9, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201A, 0xE2, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xE3, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2021, 0xE0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2030, 0xE4, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2202, 0xB6, 0 },
  { 0x2206, 0xC6, 0 },
  { 0x220F, 0xB8, 0 },
  { 0x2211, 0xB7, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x221E, 0xB0, 0 },
  { 0x222B, 0xBA, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 },
  { 0x25CA, 0xD7, 0 },
  { 0xF8A0, 0xF5, 0 },
  { 0xF8FF, 0xF0, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLETURKISHByteCvtData =
{
    aImplAPPLETURKISHToUniTab,
    nullptr,
    aImplAPPLETURKISHToCharTab,
    nullptr,
    aImplAPPLETURKISHToCharTabEx,
    APPLETURKISHUNI_START, APPLETURKISHUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLETURKISHCHAR_START, APPLETURKISHCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLETURKISHTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLETURKISHTextEncodingData
    = { { &aImplAPPLETURKISHByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-9",
        "iso-8859-9",
        1,
        1,
        1,
        162,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_TURKISH, pc code page 857, mac encoding 35 */

/* ======================================================================= */

/* APPLE-Ukrainian */
/* Apple CharSet for Ukrainian */
/* 1-byte, 0x00-0x7F ASCII, but actually special characters between 0x00-0x1F */
/* which we don't consider, though */
/* Convert-Tables: mappings/vendors/apple/ukraine.txt from 02/05/98 */
/* Last-Changes from us: */

#define APPLEUKRAINIANUNI_START         0x80
#define APPLEUKRAINIANUNI_END           0xFF
sal_uInt16 const aImplAPPLEUKRAINIANToUniTab[APPLEUKRAINIANUNI_END - APPLEUKRAINIANUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0x80 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0x80 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0x90 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0x90 */
    0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406, /* 0xA0 */
    0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, /* 0xA0 */
    0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408, /* 0xB0 */
    0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A, /* 0xB0 */
    0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB, /* 0xC0 */
    0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455, /* 0xC0 */
    0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E, /* 0xD0 */
    0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F, /* 0xD0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x00A4  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define APPLEUKRAINIANCHAR_START        0x0401
#define APPLEUKRAINIANCHAR_END          0x045F
unsigned char const aImplAPPLEUKRAINIANToCharTab[APPLEUKRAINIANCHAR_END - APPLEUKRAINIANCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xDD, 0xAB, 0xAE, 0xB8, 0xC1, 0xA7, 0xBA, /* 0x0400 */
    0xB7, 0xBC, 0xBE, 0xCB, 0xCD,    0, 0xD8, 0xDA, /* 0x0400 */
    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x0410 */
    0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, /* 0x0410 */
    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x0420 */
    0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, /* 0x0420 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0430 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0430 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0440 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, /* 0x0440 */
       0, 0xDE, 0xAC, 0xAF, 0xB9, 0xCF, 0xB4, 0xBB, /* 0x0450 */
    0xC0, 0xBD, 0xBF, 0xCC, 0xCE,    0, 0xD9, 0xDB, /* 0x0450 */
};

/* ----------------------------------------------------------------------- */

#define APPLEUKRAINIANTOCHARTABEX_COUNT 36
ImplUniCharTabData const aImplAPPLEUKRAINIANToCharTabEx[APPLEUKRAINIANTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xCA, 0 },
  { 0x00A3, 0xA3, 0 },
  { 0x00A4, 0xFF, 0 },
  { 0x00A7, 0xA4, 0 },
  { 0x00A9, 0xA9, 0 },
  { 0x00AB, 0xC7, 0 },
  { 0x00AC, 0xC2, 0 },
  { 0x00AE, 0xA8, 0 },
  { 0x00B0, 0xA1, 0 },
  { 0x00B1, 0xB1, 0 },
  { 0x00B5, 0xB5, 0 },
  { 0x00B6, 0xA6, 0 },
  { 0x00BB, 0xC8, 0 },
  { 0x00F7, 0xD6, 0 },
  { 0x0192, 0xC4, 0 },
  { 0x0490, 0xA2, 0 },
  { 0x0491, 0xB6, 0 },
  { 0x2013, 0xD0, 0 },
  { 0x2014, 0xD1, 0 },
  { 0x2018, 0xD4, 0 },
  { 0x2019, 0xD5, 0 },
  { 0x201C, 0xD2, 0 },
  { 0x201D, 0xD3, 0 },
  { 0x201E, 0xD7, 0 },
  { 0x2020, 0xA0, 0 },
  { 0x2022, 0xA5, 0 },
  { 0x2026, 0xC9, 0 },
  { 0x2116, 0xDC, 0 },
  { 0x2122, 0xAA, 0 },
  { 0x2206, 0xC6, 0 },
  { 0x221A, 0xC3, 0 },
  { 0x221E, 0xB0, 0 },
  { 0x2248, 0xC5, 0 },
  { 0x2260, 0xAD, 0 },
  { 0x2264, 0xB2, 0 },
  { 0x2265, 0xB3, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplAPPLEUKRAINIANByteCvtData =
{
    aImplAPPLEUKRAINIANToUniTab,
    nullptr,
    aImplAPPLEUKRAINIANToCharTab,
    nullptr,
    aImplAPPLEUKRAINIANToCharTabEx,
    APPLEUKRAINIANUNI_START, APPLEUKRAINIANUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    APPLEUKRAINIANCHAR_START, APPLEUKRAINIANCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    APPLEUKRAINIANTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplAPPLEUKRAINIANTextEncodingData
    = { { &aImplAPPLEUKRAINIANByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "iso-8859-5",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII };
    /* MAC, SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 0x98
       (MAC 8.5 and above) */

/* ======================================================================= */

/* KOI8_R */
/* Standard Charset for Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: typed per hand */
/* Last-Changes from us: */

#define KOI8RUNI_START                  0x80
#define KOI8RUNI_END                    0xFF
sal_uInt16 const aImplKOI8RToUniTab[KOI8RUNI_END - KOI8RUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */
    0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */
    0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */
    0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */
    0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, /* 0xA0 */
    0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, /* 0xA0 */
    0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, /* 0xB0 */
    0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, /* 0xB0 */
    0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */
    0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */
    0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */
    0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */
    0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */
    0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */
    0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */
    0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define KOI8RCHAR_START                 0x0410
#define KOI8RCHAR_END                   0x044F
unsigned char const aImplKOI8RToCharTab[KOI8RCHAR_END - KOI8RCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */
    0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */
    0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */
    0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */
    0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */
    0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */
    0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */
    0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1  /* 0x0440 */
};

/* ----------------------------------------------------------------------- */

#define KOI8RTOCHARTABEX_COUNT          64
ImplUniCharTabData const aImplKOI8RToCharTabEx[KOI8RTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0x9A, 0 },
  { 0x00A9, 0xBF, 0 },
  { 0x00B0, 0x9C, 0 },
  { 0x00B2, 0x9D, 0 },
  { 0x00B7, 0x9E, 0 },
  { 0x00F7, 0x9F, 0 },
  { 0x0401, 0xB3, 0 },
  { 0x0451, 0xA3, 0 },
  { 0x2219, 0x95, 0 },
  { 0x221A, 0x96, 0 },
  { 0x2248, 0x97, 0 },
  { 0x2264, 0x98, 0 },
  { 0x2265, 0x99, 0 },
  { 0x2320, 0x93, 0 },
  { 0x2321, 0x9B, 0 },
  { 0x2500, 0x80, 0 },
  { 0x2502, 0x81, 0 },
  { 0x250C, 0x82, 0 },
  { 0x2510, 0x83, 0 },
  { 0x2514, 0x84, 0 },
  { 0x2518, 0x85, 0 },
  { 0x251C, 0x86, 0 },
  { 0x2524, 0x87, 0 },
  { 0x252C, 0x88, 0 },
  { 0x2534, 0x89, 0 },
  { 0x253C, 0x8A, 0 },
  { 0x2550, 0xA0, 0 },
  { 0x2551, 0xA1, 0 },
  { 0x2552, 0xA2, 0 },
  { 0x2553, 0xA4, 0 },
  { 0x2554, 0xA5, 0 },
  { 0x2555, 0xA6, 0 },
  { 0x2556, 0xA7, 0 },
  { 0x2557, 0xA8, 0 },
  { 0x2558, 0xA9, 0 },
  { 0x2559, 0xAA, 0 },
  { 0x255A, 0xAB, 0 },
  { 0x255B, 0xAC, 0 },
  { 0x255C, 0xAD, 0 },
  { 0x255D, 0xAE, 0 },
  { 0x255E, 0xAF, 0 },
  { 0x255F, 0xB0, 0 },
  { 0x2560, 0xB1, 0 },
  { 0x2561, 0xB2, 0 },
  { 0x2562, 0xB4, 0 },
  { 0x2563, 0xB5, 0 },
  { 0x2564, 0xB6, 0 },
  { 0x2565, 0xB7, 0 },
  { 0x2566, 0xB8, 0 },
  { 0x2567, 0xB9, 0 },
  { 0x2568, 0xBA, 0 },
  { 0x2569, 0xBB, 0 },
  { 0x256A, 0xBC, 0 },
  { 0x256B, 0xBD, 0 },
  { 0x256C, 0xBE, 0 },
  { 0x2580, 0x8B, 0 },
  { 0x2584, 0x8C, 0 },
  { 0x2588, 0x8D, 0 },
  { 0x258C, 0x8E, 0 },
  { 0x2590, 0x8F, 0 },
  { 0x2591, 0x90, 0 },
  { 0x2592, 0x91, 0 },
  { 0x2593, 0x92, 0 },
  { 0x25A0, 0x94, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplKOI8RByteCvtData =
{
    aImplKOI8RToUniTab,
    nullptr,
    aImplKOI8RToCharTab,
    nullptr,
    aImplKOI8RToCharTabEx,
    KOI8RUNI_START, KOI8RUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    KOI8RCHAR_START, KOI8RCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    KOI8RTOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplKOI8RTextEncodingData
    = { { &aImplKOI8RByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "koi8-r",
        "koi8-r",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_CYRILLIC, pc code page 866 (855?), mac encoding 7 */

/* ======================================================================= */

/* KOI8_U */
/* Standard Charset for Ukrainian Cyrillic */
/* Single Byte, 0x00-0x7F equals ASCII */
/* Conversion Tables: hand made */

#define KOI8UUNI_START 0x80
#define KOI8UUNI_END 0xFF
sal_uInt16 const aImplKOI8UToUniTab[KOI8UUNI_END - KOI8UUNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, /* 0x80 */
    0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, /* 0x80 */
    0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, /* 0x90 */
    0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, /* 0x90 */
    0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, /* 0xA0 */
    0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, /* 0xA0 */
    0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, /* 0xB0 */
    0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, /* 0xB0 */
    0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0xC0 */
    0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, /* 0xC0 */
    0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0xD0 */
    0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, /* 0xD0 */
    0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0xE0 */
    0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, /* 0xE0 */
    0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0xF0 */
    0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A  /* 0xF0 */
};

#define KOI8UCHAR_START 0x0410
#define KOI8UCHAR_END 0x044F
unsigned char const
aImplKOI8UToCharTab[KOI8UCHAR_END - KOI8UCHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA, /* 0x0410 */
    0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, /* 0x0410 */
    0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE, /* 0x0420 */
    0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1, /* 0x0420 */
    0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA, /* 0x0430 */
    0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, /* 0x0430 */
    0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE, /* 0x0440 */
    0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1  /* 0x0440 */
};

#define KOI8UTOCHARTABEX_COUNT 72
ImplUniCharTabData const aImplKOI8UToCharTabEx[KOI8UTOCHARTABEX_COUNT] =
{
  { 0x00A0, 0x9A, 0 },
  { 0x00A9, 0xBF, 0 },
  { 0x00B0, 0x9C, 0 },
  { 0x00B2, 0x9D, 0 },
  { 0x00B7, 0x9E, 0 },
  { 0x00F7, 0x9F, 0 },
  { 0x0401, 0xB3, 0 },
  { 0x0404, 0xB4, 0 },
  { 0x0406, 0xB6, 0 },
  { 0x0407, 0xB7, 0 },
  { 0x0451, 0xA3, 0 },
  { 0x0454, 0xA4, 0 },
  { 0x0456, 0xA6, 0 },
  { 0x0457, 0xA7, 0 },
  { 0x0490, 0xBD, 0 },
  { 0x0491, 0xAD, 0 },
  { 0x2219, 0x95, 0 },
  { 0x221A, 0x96, 0 },
  { 0x2248, 0x97, 0 },
  { 0x2264, 0x98, 0 },
  { 0x2265, 0x99, 0 },
  { 0x2320, 0x93, 0 },
  { 0x2321, 0x9B, 0 },
  { 0x2500, 0x80, 0 },
  { 0x2502, 0x81, 0 },
  { 0x250C, 0x82, 0 },
  { 0x2510, 0x83, 0 },
  { 0x2514, 0x84, 0 },
  { 0x2518, 0x85, 0 },
  { 0x251C, 0x86, 0 },
  { 0x2524, 0x87, 0 },
  { 0x252C, 0x88, 0 },
  { 0x2534, 0x89, 0 },
  { 0x253C, 0x8A, 0 },
  { 0x2550, 0xA0, 0 },
  { 0x2551, 0xA1, 0 },
  { 0x2552, 0xA2, 0 },
  { 0x2553, 0xA4, 0 },
  { 0x2554, 0xA5, 0 },
  { 0x2555, 0xA6, 0 },
  { 0x2556, 0xA7, 0 },
  { 0x2557, 0xA8, 0 },
  { 0x2558, 0xA9, 0 },
  { 0x2559, 0xAA, 0 },
  { 0x255A, 0xAB, 0 },
  { 0x255B, 0xAC, 0 },
  { 0x255C, 0xAD, 0 },
  { 0x255D, 0xAE, 0 },
  { 0x255E, 0xAF, 0 },
  { 0x255F, 0xB0, 0 },
  { 0x2560, 0xB1, 0 },
  { 0x2561, 0xB2, 0 },
  { 0x2562, 0xB4, 0 },
  { 0x2563, 0xB5, 0 },
  { 0x2564, 0xB6, 0 },
  { 0x2565, 0xB7, 0 },
  { 0x2566, 0xB8, 0 },
  { 0x2567, 0xB9, 0 },
  { 0x2568, 0xBA, 0 },
  { 0x2569, 0xBB, 0 },
  { 0x256A, 0xBC, 0 },
  { 0x256B, 0xBD, 0 },
  { 0x256C, 0xBE, 0 },
  { 0x2580, 0x8B, 0 },
  { 0x2584, 0x8C, 0 },
  { 0x2588, 0x8D, 0 },
  { 0x258C, 0x8E, 0 },
  { 0x2590, 0x8F, 0 },
  { 0x2591, 0x90, 0 },
  { 0x2592, 0x91, 0 },
  { 0x2593, 0x92, 0 },
  { 0x25A0, 0x94, 0 }
};

ImplByteConvertData const aImplKOI8UByteCvtData =
{
    aImplKOI8UToUniTab,
    nullptr,
    aImplKOI8UToCharTab,
    nullptr,
    aImplKOI8UToCharTabEx,
    KOI8UUNI_START, KOI8UUNI_END,
    NOTABUNI_START, NOTABUNI_END,
    KOI8UCHAR_START, KOI8UCHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    KOI8UTOCHARTABEX_COUNT
};

ImplTextEncodingData const aImplKoi8UTextEncodingData
    = { { &aImplKOI8UByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "koi8-u",
        "KOI8-U",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_CYRILLIC */

/* ======================================================================= */

/* PT154 */
/* Asian Cyrillic */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: typed per hand */
/* Last-Changes from us: */

#define PT154UNI_START                  0x80
#define PT154UNI_END                    0xFF
sal_uInt16 const aImplPT154ToUniTab[PT154UNI_END - PT154UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x0496, 0x0492, 0x04EE, 0x0493, 0x201E, 0x2026, 0x04B6, 0x04AE, /* 0x80 */
    0x04B2, 0x04AF, 0x04A0, 0x04E2, 0x04A2, 0x049A, 0x04BA, 0x04B8, /* 0x80 */
    0x0497, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
    0x04B3, 0x04B7, 0x04A1, 0x04E3, 0x04A3, 0x049B, 0x04BB, 0x04B9, /* 0x90 */
    0x00A0, 0x040E, 0x045E, 0x0408, 0x04E8, 0x0498, 0x04B0, 0x00A7, /* 0xA0 */
    0x0401, 0x00A9, 0x04D8, 0x00AB, 0x00AC, 0x04EF, 0x00AE, 0x049C, /* 0xA0 */
    0x00B0, 0x04B1, 0x0406, 0x0456, 0x0499, 0x04E9, 0x00B6, 0x00B7, /* 0xB0 */
    0x0451, 0x2116, 0x04D9, 0x00BB, 0x0458, 0x04AA, 0x04AB, 0x049D, /* 0xB0 */
    0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, /* 0xC0 */
    0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, /* 0xC0 */
    0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, /* 0xD0 */
    0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, /* 0xD0 */
    0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, /* 0xE0 */
    0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, /* 0xE0 */
    0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, /* 0xF0 */
    0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define PT154CHAR_START                 0x0410
#define PT154CHAR_END                   0x044F
unsigned char const aImplPT154ToCharTab[PT154CHAR_END - PT154CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x0410 */
    0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x0410 */
    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x0420 */
    0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x0420 */
    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x0430 */
    0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x0430 */
    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x0440 */
    0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff  /* 0x0440 */
};

/* ----------------------------------------------------------------------- */

#define PT154TOCHARTABEX_COUNT          64
ImplUniCharTabData const aImplPT154ToCharTabEx[PT154TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xa0, 0 },
  { 0x00A7, 0xa7, 0 },
  { 0x00A9, 0xa9, 0 },
  { 0x00AB, 0xab, 0 },
  { 0x00AC, 0xac, 0 },
  { 0x00AE, 0xae, 0 },
  { 0x00B0, 0xb0, 0 },
  { 0x00B6, 0xb6, 0 },
  { 0x00B7, 0xb7, 0 },
  { 0x00BB, 0xbb, 0 },
  { 0x0401, 0xa8, 0 },
  { 0x0406, 0xb2, 0 },
  { 0x0408, 0xa3, 0 },
  { 0x040E, 0xa1, 0 },
  { 0x0451, 0xb8, 0 },
  { 0x0456, 0xb3, 0 },
  { 0x0458, 0xbc, 0 },
  { 0x045E, 0xa2, 0 },
  { 0x0492, 0x81, 0 },
  { 0x0493, 0x83, 0 },
  { 0x0496, 0x80, 0 },
  { 0x0497, 0x90, 0 },
  { 0x0498, 0xa5, 0 },
  { 0x0499, 0xb4, 0 },
  { 0x049A, 0x8d, 0 },
  { 0x049B, 0x9d, 0 },
  { 0x049C, 0xaf, 0 },
  { 0x049D, 0xbf, 0 },
  { 0x04A0, 0x8a, 0 },
  { 0x04A1, 0x9a, 0 },
  { 0x04A2, 0x8c, 0 },
  { 0x04A3, 0x9c, 0 },
  { 0x04AA, 0xbd, 0 },
  { 0x04AB, 0xbe, 0 },
  { 0x04AE, 0x87, 0 },
  { 0x04AF, 0x89, 0 },
  { 0x04B0, 0xa6, 0 },
  { 0x04B1, 0xb1, 0 },
  { 0x04B2, 0x88, 0 },
  { 0x04B3, 0x98, 0 },
  { 0x04B6, 0x86, 0 },
  { 0x04B7, 0x99, 0 },
  { 0x04B8, 0x8f, 0 },
  { 0x04B9, 0x9f, 0 },
  { 0x04BA, 0x8e, 0 },
  { 0x04BB, 0x9e, 0 },
  { 0x04D8, 0xaa, 0 },
  { 0x04D9, 0xba, 0 },
  { 0x04E2, 0x8b, 0 },
  { 0x04E3, 0x9b, 0 },
  { 0x04E8, 0xa4, 0 },
  { 0x04E9, 0xb5, 0 },
  { 0x04EE, 0x82, 0 },
  { 0x04EF, 0xad, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2116, 0xb9, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplPT154ByteCvtData =
{
    aImplPT154ToUniTab,
    nullptr,
    aImplPT154ToCharTab,
    nullptr,
    aImplPT154ToCharTabEx,
    PT154UNI_START, PT154UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    PT154CHAR_START, PT154CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    PT154TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplPT154TextEncodingData
    = { { &aImplPT154ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-5",
        "PTCP154",
        1,
        1,
        1,
        204,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* SCRIPT_CYRILLIC */

/* ======================================================================= */

/* Kamenický */
/* Czech, see <https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding> */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: <https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding> obtained 2022-09-15 */

sal_uInt16 const kamenickyToUniTab[128] = {
/*  0       1       2       3       4       5       6       7 */
/*  8       9       A       B       C       D       E       F */
    0x010C, 0x00FC, 0x00E9, 0x010F, 0x00E4, 0x010E, 0x0164, 0x010D, /* 0x80 */
    0x011B, 0x011A, 0x0139, 0x00CD, 0x013E, 0x013A, 0x00C4, 0x00C1, /* 0x80 */
    0x00C9, 0x017E, 0x017D, 0x00F4, 0x00F6, 0x00D3, 0x016F, 0x00DA, /* 0x90 */
    0x00FD, 0x00D6, 0x00DC, 0x0160, 0x013D, 0x00DD, 0x0158, 0x0165, /* 0x90 */
    0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0148, 0x0147, 0x016E, 0x00D4, /* 0xA0 */
    0x0161, 0x0159, 0x0155, 0x0154, 0x00BC, 0x00A7, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
    0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
    0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

ImplUniCharTabData const kamenickyToCharTabEx[128] = {
  { 0x00A0, 0xFF, 0 },
  { 0x00A7, 0xAD, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B5, 0xE6, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BC, 0xAC, 0 },
  { 0x00C1, 0x8F, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C9, 0x90, 0 },
  { 0x00CD, 0x8B, 0 },
  { 0x00D3, 0x95, 0 },
  { 0x00D4, 0xA7, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00DA, 0x97, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DD, 0x9D, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E1, 0xA0, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00ED, 0xA1, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F4, 0x93, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00FA, 0xA3, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x00FD, 0x98, 0 },
  { 0x010C, 0x80, 0 },
  { 0x010D, 0x87, 0 },
  { 0x010E, 0x85, 0 },
  { 0x010F, 0x83, 0 },
  { 0x011A, 0x89, 0 },
  { 0x011B, 0x88, 0 },
  { 0x0139, 0x8A, 0 },
  { 0x013A, 0x8D, 0 },
  { 0x013D, 0x9C, 0 },
  { 0x013E, 0x8C, 0 },
  { 0x0147, 0xA5, 0 },
  { 0x0148, 0xA4, 0 },
  { 0x0154, 0xAB, 0 },
  { 0x0155, 0xAA, 0 },
  { 0x0158, 0x9E, 0 },
  { 0x0159, 0xA9, 0 },
  { 0x0160, 0x9B, 0 },
  { 0x0161, 0xA8, 0 },
  { 0x0164, 0x86, 0 },
  { 0x0165, 0x9F, 0 },
  { 0x016E, 0xA6, 0 },
  { 0x016F, 0x96, 0 },
  { 0x017D, 0x92, 0 },
  { 0x017E, 0x91, 0 },
  { 0x0393, 0xE2, 0 },
  { 0x0398, 0xE9, 0 },
  { 0x03A3, 0xE4, 0 },
  { 0x03A6, 0xE8, 0 },
  { 0x03A9, 0xEA, 0 },
  { 0x03B1, 0xE0, 0 },
  { 0x03B4, 0xEB, 0 },
  { 0x03B5, 0xEE, 0 },
  { 0x03C0, 0xE3, 0 },
  { 0x03C3, 0xE5, 0 },
  { 0x03C4, 0xE7, 0 },
  { 0x03C6, 0xED, 0 },
  { 0x207F, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x221E, 0xEC, 0 },
  { 0x2229, 0xEF, 0 },
  { 0x2248, 0xF7, 0 },
  { 0x2261, 0xF0, 0 },
  { 0x2264, 0xF3, 0 },
  { 0x2265, 0xF2, 0 },
  { 0x2320, 0xF4, 0 },
  { 0x2321, 0xF5, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

ImplByteConvertData const kamenickyByteCvtData = {
    kamenickyToUniTab, nullptr, nullptr, nullptr, kamenickyToCharTabEx, 0x80, 0xFF, NOTABUNI_START,
    NOTABUNI_END, NOTABCHAR_START, NOTABCHAR_END, NOTABCHAR_START, NOTABCHAR_END,
    std::size(kamenickyToCharTabEx)
};

ImplTextEncodingData const kamenickyEncodingData = {
    { &kamenickyByteCvtData, sal::detail::textenc::convertCharToUnicode,
      sal::detail::textenc::convertUnicodeToChar, nullptr, nullptr, nullptr, nullptr, nullptr,
      nullptr },
    nullptr, nullptr, 1, 1, 1, 0, RTL_TEXTENCODING_INFO_ASCII
};

/* ======================================================================= */

/* Mazovia */
/* Polish, see <https://en.wikipedia.org/wiki/Mazovia_encoding> */
/* 1-byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: <https://en.wikipedia.org/wiki/Mazovia_encoding> obtained 2022-09-15 */

sal_uInt16 const mazoviaToUniTab[128] = {
/*  0       1       2       3       4       5       6       7 */
/*  8       9       A       B       C       D       E       F */
    0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x0105, 0x00E7, /* 0x80 */
    0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0107, 0x00C4, 0x0104, /* 0x80 */
    0x0118, 0x0119, 0x0142, 0x00F4, 0x00F6, 0x0106, 0x00FB, 0x00F9, /* 0x90 */
    0x015A, 0x00D6, 0x00DC, 0x00A2, 0x0141, 0x00A5, 0x015B, 0x0192, /* 0x90 */
    0x0179, 0x017B, 0x00F3, 0x00D3, 0x0144, 0x0143, 0x017A, 0x017C, /* 0xA0 */
    0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, /* 0xA0 */
    0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* 0xB0 */
    0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, /* 0xB0 */
    0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, /* 0xC0 */
    0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, /* 0xC0 */
    0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, /* 0xD0 */
    0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, /* 0xD0 */
    0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, /* 0xE0 */
    0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, /* 0xE0 */
    0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, /* 0xF0 */
    0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0  /* 0xF0 */
};

ImplUniCharTabData const mazoviaToCharTabEx[128] = {
  { 0x00A0, 0xFF, 0 },
  { 0x00A1, 0xAD, 0 },
  { 0x00A2, 0x9B, 0 },
  { 0x00A5, 0x9D, 0 },
  { 0x00AB, 0xAE, 0 },
  { 0x00AC, 0xAA, 0 },
  { 0x00B0, 0xF8, 0 },
  { 0x00B1, 0xF1, 0 },
  { 0x00B2, 0xFD, 0 },
  { 0x00B5, 0xE6, 0 },
  { 0x00B7, 0xFA, 0 },
  { 0x00BB, 0xAF, 0 },
  { 0x00BC, 0xAC, 0 },
  { 0x00BD, 0xAB, 0 },
  { 0x00BF, 0xA8, 0 },
  { 0x00C4, 0x8E, 0 },
  { 0x00C7, 0x80, 0 },
  { 0x00D3, 0xA3, 0 },
  { 0x00D6, 0x99, 0 },
  { 0x00DC, 0x9A, 0 },
  { 0x00DF, 0xE1, 0 },
  { 0x00E0, 0x85, 0 },
  { 0x00E2, 0x83, 0 },
  { 0x00E4, 0x84, 0 },
  { 0x00E7, 0x87, 0 },
  { 0x00E8, 0x8A, 0 },
  { 0x00E9, 0x82, 0 },
  { 0x00EA, 0x88, 0 },
  { 0x00EB, 0x89, 0 },
  { 0x00EE, 0x8C, 0 },
  { 0x00EF, 0x8B, 0 },
  { 0x00F3, 0xA2, 0 },
  { 0x00F4, 0x93, 0 },
  { 0x00F6, 0x94, 0 },
  { 0x00F7, 0xF6, 0 },
  { 0x00F9, 0x97, 0 },
  { 0x00FB, 0x96, 0 },
  { 0x00FC, 0x81, 0 },
  { 0x0104, 0x8F, 0 },
  { 0x0105, 0x86, 0 },
  { 0x0106, 0x95, 0 },
  { 0x0107, 0x8D, 0 },
  { 0x0118, 0x90, 0 },
  { 0x0119, 0x91, 0 },
  { 0x0141, 0x9C, 0 },
  { 0x0142, 0x92, 0 },
  { 0x0143, 0xA5, 0 },
  { 0x0144, 0xA4, 0 },
  { 0x015A, 0x98, 0 },
  { 0x015B, 0x9E, 0 },
  { 0x0179, 0xA0, 0 },
  { 0x017A, 0xA6, 0 },
  { 0x017B, 0xA1, 0 },
  { 0x017C, 0xA7, 0 },
  { 0x0192, 0x9F, 0 },
  { 0x0393, 0xE2, 0 },
  { 0x0398, 0xE9, 0 },
  { 0x03A3, 0xE4, 0 },
  { 0x03A6, 0xE8, 0 },
  { 0x03A9, 0xEA, 0 },
  { 0x03B1, 0xE0, 0 },
  { 0x03B4, 0xEB, 0 },
  { 0x03B5, 0xEE, 0 },
  { 0x03C0, 0xE3, 0 },
  { 0x03C3, 0xE5, 0 },
  { 0x03C4, 0xE7, 0 },
  { 0x03C6, 0xED, 0 },
  { 0x207F, 0xFC, 0 },
  { 0x2219, 0xF9, 0 },
  { 0x221A, 0xFB, 0 },
  { 0x221E, 0xEC, 0 },
  { 0x2229, 0xEF, 0 },
  { 0x2248, 0xF7, 0 },
  { 0x2261, 0xF0, 0 },
  { 0x2264, 0xF3, 0 },
  { 0x2265, 0xF2, 0 },
  { 0x2310, 0xA9, 0 },
  { 0x2320, 0xF4, 0 },
  { 0x2321, 0xF5, 0 },
  { 0x2500, 0xC4, 0 },
  { 0x2502, 0xB3, 0 },
  { 0x250C, 0xDA, 0 },
  { 0x2510, 0xBF, 0 },
  { 0x2514, 0xC0, 0 },
  { 0x2518, 0xD9, 0 },
  { 0x251C, 0xC3, 0 },
  { 0x2524, 0xB4, 0 },
  { 0x252C, 0xC2, 0 },
  { 0x2534, 0xC1, 0 },
  { 0x253C, 0xC5, 0 },
  { 0x2550, 0xCD, 0 },
  { 0x2551, 0xBA, 0 },
  { 0x2552, 0xD5, 0 },
  { 0x2553, 0xD6, 0 },
  { 0x2554, 0xC9, 0 },
  { 0x2555, 0xB8, 0 },
  { 0x2556, 0xB7, 0 },
  { 0x2557, 0xBB, 0 },
  { 0x2558, 0xD4, 0 },
  { 0x2559, 0xD3, 0 },
  { 0x255A, 0xC8, 0 },
  { 0x255B, 0xBE, 0 },
  { 0x255C, 0xBD, 0 },
  { 0x255D, 0xBC, 0 },
  { 0x255E, 0xC6, 0 },
  { 0x255F, 0xC7, 0 },
  { 0x2560, 0xCC, 0 },
  { 0x2561, 0xB5, 0 },
  { 0x2562, 0xB6, 0 },
  { 0x2563, 0xB9, 0 },
  { 0x2564, 0xD1, 0 },
  { 0x2565, 0xD2, 0 },
  { 0x2566, 0xCB, 0 },
  { 0x2567, 0xCF, 0 },
  { 0x2568, 0xD0, 0 },
  { 0x2569, 0xCA, 0 },
  { 0x256A, 0xD8, 0 },
  { 0x256B, 0xD7, 0 },
  { 0x256C, 0xCE, 0 },
  { 0x2580, 0xDF, 0 },
  { 0x2584, 0xDC, 0 },
  { 0x2588, 0xDB, 0 },
  { 0x258C, 0xDD, 0 },
  { 0x2590, 0xDE, 0 },
  { 0x2591, 0xB0, 0 },
  { 0x2592, 0xB1, 0 },
  { 0x2593, 0xB2, 0 },
  { 0x25A0, 0xFE, 0 }
};

ImplByteConvertData const mazoviaByteCvtData = {
    mazoviaToUniTab, nullptr, nullptr, nullptr, mazoviaToCharTabEx, 0x80, 0xFF, NOTABUNI_START,
    NOTABUNI_END, NOTABCHAR_START, NOTABCHAR_END, NOTABCHAR_START, NOTABCHAR_END,
    std::size(mazoviaToCharTabEx)
};

ImplTextEncodingData const mazoviaEncodingData = {
    { &mazoviaByteCvtData, sal::detail::textenc::convertCharToUnicode,
      sal::detail::textenc::convertUnicodeToChar, nullptr, nullptr, nullptr, nullptr, nullptr,
      nullptr },
    nullptr, nullptr, 1, 1, 1, 0, RTL_TEXTENCODING_INFO_ASCII
};

[Seitenstruktur0.86Druckenetwas mehr zur Ethik2026-05-05]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge