Update prebuilt Clang to r416183b from Android.

https://android.googlesource.com/platform/prebuilts/clang/host/
linux-x86/+/06a71ddac05c22edb2d10b590e1769b3f8619bef

clang 12.0.5 (based on r416183b) from build 7284624.

Change-Id: I277a316abcf47307562d8b748b84870f31a72866
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/__init__.py b/linux-x64/clang/python3/lib/python3.9/encodings/__init__.py
new file mode 100644
index 0000000..ddd5afd
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/__init__.py
@@ -0,0 +1,169 @@
+""" Standard "encodings" Package
+
+    Standard Python encoding modules are stored in this package
+    directory.
+
+    Codec modules must have names corresponding to normalized encoding
+    names as defined in the normalize_encoding() function below, e.g.
+    'utf-8' must be implemented by the module 'utf_8.py'.
+
+    Each codec module must export the following interface:
+
+    * getregentry() -> codecs.CodecInfo object
+    The getregentry() API must return a CodecInfo object with encoder, decoder,
+    incrementalencoder, incrementaldecoder, streamwriter and streamreader
+    attributes which adhere to the Python Codec Interface Standard.
+
+    In addition, a module may optionally also define the following
+    APIs which are then used by the package's codec search function:
+
+    * getaliases() -> sequence of encoding name strings to use as aliases
+
+    Alias names returned by getaliases() must be normalized encoding
+    names as defined by normalize_encoding().
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""#"
+
+import codecs
+import sys
+from . import aliases
+
+_cache = {}
+_unknown = '--unknown--'
+_import_tail = ['*']
+_aliases = aliases.aliases
+
+class CodecRegistryError(LookupError, SystemError):
+    pass
+
+def normalize_encoding(encoding):
+
+    """ Normalize an encoding name.
+
+        Normalization works as follows: all non-alphanumeric
+        characters except the dot used for Python package names are
+        collapsed and replaced with a single underscore, e.g. '  -;#'
+        becomes '_'. Leading and trailing underscores are removed.
+
+        Note that encoding names should be ASCII only.
+
+    """
+    if isinstance(encoding, bytes):
+        encoding = str(encoding, "ascii")
+
+    chars = []
+    punct = False
+    for c in encoding:
+        if c.isalnum() or c == '.':
+            if punct and chars:
+                chars.append('_')
+            chars.append(c)
+            punct = False
+        else:
+            punct = True
+    return ''.join(chars)
+
+def search_function(encoding):
+
+    # Cache lookup
+    entry = _cache.get(encoding, _unknown)
+    if entry is not _unknown:
+        return entry
+
+    # Import the module:
+    #
+    # First try to find an alias for the normalized encoding
+    # name and lookup the module using the aliased name, then try to
+    # lookup the module using the standard import scheme, i.e. first
+    # try in the encodings package, then at top-level.
+    #
+    norm_encoding = normalize_encoding(encoding)
+    aliased_encoding = _aliases.get(norm_encoding) or \
+                       _aliases.get(norm_encoding.replace('.', '_'))
+    if aliased_encoding is not None:
+        modnames = [aliased_encoding,
+                    norm_encoding]
+    else:
+        modnames = [norm_encoding]
+    for modname in modnames:
+        if not modname or '.' in modname:
+            continue
+        try:
+            # Import is absolute to prevent the possibly malicious import of a
+            # module with side-effects that is not in the 'encodings' package.
+            mod = __import__('encodings.' + modname, fromlist=_import_tail,
+                             level=0)
+        except ImportError:
+            # ImportError may occur because 'encodings.(modname)' does not exist,
+            # or because it imports a name that does not exist (see mbcs and oem)
+            pass
+        else:
+            break
+    else:
+        mod = None
+
+    try:
+        getregentry = mod.getregentry
+    except AttributeError:
+        # Not a codec module
+        mod = None
+
+    if mod is None:
+        # Cache misses
+        _cache[encoding] = None
+        return None
+
+    # Now ask the module for the registry entry
+    entry = getregentry()
+    if not isinstance(entry, codecs.CodecInfo):
+        if not 4 <= len(entry) <= 7:
+            raise CodecRegistryError('module "%s" (%s) failed to register'
+                                     % (mod.__name__, mod.__file__))
+        if not callable(entry[0]) or not callable(entry[1]) or \
+           (entry[2] is not None and not callable(entry[2])) or \
+           (entry[3] is not None and not callable(entry[3])) or \
+           (len(entry) > 4 and entry[4] is not None and not callable(entry[4])) or \
+           (len(entry) > 5 and entry[5] is not None and not callable(entry[5])):
+            raise CodecRegistryError('incompatible codecs in module "%s" (%s)'
+                                     % (mod.__name__, mod.__file__))
+        if len(entry)<7 or entry[6] is None:
+            entry += (None,)*(6-len(entry)) + (mod.__name__.split(".", 1)[1],)
+        entry = codecs.CodecInfo(*entry)
+
+    # Cache the codec registry entry
+    _cache[encoding] = entry
+
+    # Register its aliases (without overwriting previously registered
+    # aliases)
+    try:
+        codecaliases = mod.getaliases()
+    except AttributeError:
+        pass
+    else:
+        for alias in codecaliases:
+            if alias not in _aliases:
+                _aliases[alias] = modname
+
+    # Return the registry entry
+    return entry
+
+# Register the search_function in the Python codec registry
+codecs.register(search_function)
+
+if sys.platform == 'win32':
+    def _alias_mbcs(encoding):
+        try:
+            import _winapi
+            ansi_code_page = "cp%s" % _winapi.GetACP()
+            if encoding == ansi_code_page:
+                import encodings.mbcs
+                return encodings.mbcs.getregentry()
+        except ImportError:
+            # Imports may fail while we are shutting down
+            pass
+
+    codecs.register(_alias_mbcs)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/aliases.py b/linux-x64/clang/python3/lib/python3.9/encodings/aliases.py
new file mode 100644
index 0000000..d85afd6
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/aliases.py
@@ -0,0 +1,551 @@
+""" Encoding Aliases Support
+
+    This module is used by the encodings package search function to
+    map encodings names to module names.
+
+    Note that the search function normalizes the encoding names before
+    doing the lookup, so the mapping will have to map normalized
+    encoding names to module names.
+
+    Contents:
+
+        The following aliases dictionary contains mappings of all IANA
+        character set names for which the Python core library provides
+        codecs. In addition to these, a few Python specific codec
+        aliases have also been added.
+
+"""
+aliases = {
+
+    # Please keep this list sorted alphabetically by value !
+
+    # ascii codec
+    '646'                : 'ascii',
+    'ansi_x3.4_1968'     : 'ascii',
+    'ansi_x3_4_1968'     : 'ascii', # some email headers use this non-standard name
+    'ansi_x3.4_1986'     : 'ascii',
+    'cp367'              : 'ascii',
+    'csascii'            : 'ascii',
+    'ibm367'             : 'ascii',
+    'iso646_us'          : 'ascii',
+    'iso_646.irv_1991'   : 'ascii',
+    'iso_ir_6'           : 'ascii',
+    'us'                 : 'ascii',
+    'us_ascii'           : 'ascii',
+
+    # base64_codec codec
+    'base64'             : 'base64_codec',
+    'base_64'            : 'base64_codec',
+
+    # big5 codec
+    'big5_tw'            : 'big5',
+    'csbig5'             : 'big5',
+
+    # big5hkscs codec
+    'big5_hkscs'         : 'big5hkscs',
+    'hkscs'              : 'big5hkscs',
+
+    # bz2_codec codec
+    'bz2'                : 'bz2_codec',
+
+    # cp037 codec
+    '037'                : 'cp037',
+    'csibm037'           : 'cp037',
+    'ebcdic_cp_ca'       : 'cp037',
+    'ebcdic_cp_nl'       : 'cp037',
+    'ebcdic_cp_us'       : 'cp037',
+    'ebcdic_cp_wt'       : 'cp037',
+    'ibm037'             : 'cp037',
+    'ibm039'             : 'cp037',
+
+    # cp1026 codec
+    '1026'               : 'cp1026',
+    'csibm1026'          : 'cp1026',
+    'ibm1026'            : 'cp1026',
+
+    # cp1125 codec
+    '1125'                : 'cp1125',
+    'ibm1125'             : 'cp1125',
+    'cp866u'              : 'cp1125',
+    'ruscii'              : 'cp1125',
+
+    # cp1140 codec
+    '1140'               : 'cp1140',
+    'ibm1140'            : 'cp1140',
+
+    # cp1250 codec
+    '1250'               : 'cp1250',
+    'windows_1250'       : 'cp1250',
+
+    # cp1251 codec
+    '1251'               : 'cp1251',
+    'windows_1251'       : 'cp1251',
+
+    # cp1252 codec
+    '1252'               : 'cp1252',
+    'windows_1252'       : 'cp1252',
+
+    # cp1253 codec
+    '1253'               : 'cp1253',
+    'windows_1253'       : 'cp1253',
+
+    # cp1254 codec
+    '1254'               : 'cp1254',
+    'windows_1254'       : 'cp1254',
+
+    # cp1255 codec
+    '1255'               : 'cp1255',
+    'windows_1255'       : 'cp1255',
+
+    # cp1256 codec
+    '1256'               : 'cp1256',
+    'windows_1256'       : 'cp1256',
+
+    # cp1257 codec
+    '1257'               : 'cp1257',
+    'windows_1257'       : 'cp1257',
+
+    # cp1258 codec
+    '1258'               : 'cp1258',
+    'windows_1258'       : 'cp1258',
+
+    # cp273 codec
+    '273'                : 'cp273',
+    'ibm273'             : 'cp273',
+    'csibm273'           : 'cp273',
+
+    # cp424 codec
+    '424'                : 'cp424',
+    'csibm424'           : 'cp424',
+    'ebcdic_cp_he'       : 'cp424',
+    'ibm424'             : 'cp424',
+
+    # cp437 codec
+    '437'                : 'cp437',
+    'cspc8codepage437'   : 'cp437',
+    'ibm437'             : 'cp437',
+
+    # cp500 codec
+    '500'                : 'cp500',
+    'csibm500'           : 'cp500',
+    'ebcdic_cp_be'       : 'cp500',
+    'ebcdic_cp_ch'       : 'cp500',
+    'ibm500'             : 'cp500',
+
+    # cp775 codec
+    '775'                : 'cp775',
+    'cspc775baltic'      : 'cp775',
+    'ibm775'             : 'cp775',
+
+    # cp850 codec
+    '850'                : 'cp850',
+    'cspc850multilingual' : 'cp850',
+    'ibm850'             : 'cp850',
+
+    # cp852 codec
+    '852'                : 'cp852',
+    'cspcp852'           : 'cp852',
+    'ibm852'             : 'cp852',
+
+    # cp855 codec
+    '855'                : 'cp855',
+    'csibm855'           : 'cp855',
+    'ibm855'             : 'cp855',
+
+    # cp857 codec
+    '857'                : 'cp857',
+    'csibm857'           : 'cp857',
+    'ibm857'             : 'cp857',
+
+    # cp858 codec
+    '858'                : 'cp858',
+    'csibm858'           : 'cp858',
+    'ibm858'             : 'cp858',
+
+    # cp860 codec
+    '860'                : 'cp860',
+    'csibm860'           : 'cp860',
+    'ibm860'             : 'cp860',
+
+    # cp861 codec
+    '861'                : 'cp861',
+    'cp_is'              : 'cp861',
+    'csibm861'           : 'cp861',
+    'ibm861'             : 'cp861',
+
+    # cp862 codec
+    '862'                : 'cp862',
+    'cspc862latinhebrew' : 'cp862',
+    'ibm862'             : 'cp862',
+
+    # cp863 codec
+    '863'                : 'cp863',
+    'csibm863'           : 'cp863',
+    'ibm863'             : 'cp863',
+
+    # cp864 codec
+    '864'                : 'cp864',
+    'csibm864'           : 'cp864',
+    'ibm864'             : 'cp864',
+
+    # cp865 codec
+    '865'                : 'cp865',
+    'csibm865'           : 'cp865',
+    'ibm865'             : 'cp865',
+
+    # cp866 codec
+    '866'                : 'cp866',
+    'csibm866'           : 'cp866',
+    'ibm866'             : 'cp866',
+
+    # cp869 codec
+    '869'                : 'cp869',
+    'cp_gr'              : 'cp869',
+    'csibm869'           : 'cp869',
+    'ibm869'             : 'cp869',
+
+    # cp932 codec
+    '932'                : 'cp932',
+    'ms932'              : 'cp932',
+    'mskanji'            : 'cp932',
+    'ms_kanji'           : 'cp932',
+
+    # cp949 codec
+    '949'                : 'cp949',
+    'ms949'              : 'cp949',
+    'uhc'                : 'cp949',
+
+    # cp950 codec
+    '950'                : 'cp950',
+    'ms950'              : 'cp950',
+
+    # euc_jis_2004 codec
+    'jisx0213'           : 'euc_jis_2004',
+    'eucjis2004'         : 'euc_jis_2004',
+    'euc_jis2004'        : 'euc_jis_2004',
+
+    # euc_jisx0213 codec
+    'eucjisx0213'        : 'euc_jisx0213',
+
+    # euc_jp codec
+    'eucjp'              : 'euc_jp',
+    'ujis'               : 'euc_jp',
+    'u_jis'              : 'euc_jp',
+
+    # euc_kr codec
+    'euckr'              : 'euc_kr',
+    'korean'             : 'euc_kr',
+    'ksc5601'            : 'euc_kr',
+    'ks_c_5601'          : 'euc_kr',
+    'ks_c_5601_1987'     : 'euc_kr',
+    'ksx1001'            : 'euc_kr',
+    'ks_x_1001'          : 'euc_kr',
+
+    # gb18030 codec
+    'gb18030_2000'       : 'gb18030',
+
+    # gb2312 codec
+    'chinese'            : 'gb2312',
+    'csiso58gb231280'    : 'gb2312',
+    'euc_cn'             : 'gb2312',
+    'euccn'              : 'gb2312',
+    'eucgb2312_cn'       : 'gb2312',
+    'gb2312_1980'        : 'gb2312',
+    'gb2312_80'          : 'gb2312',
+    'iso_ir_58'          : 'gb2312',
+
+    # gbk codec
+    '936'                : 'gbk',
+    'cp936'              : 'gbk',
+    'ms936'              : 'gbk',
+
+    # hex_codec codec
+    'hex'                : 'hex_codec',
+
+    # hp_roman8 codec
+    'roman8'             : 'hp_roman8',
+    'r8'                 : 'hp_roman8',
+    'csHPRoman8'         : 'hp_roman8',
+    'cp1051'             : 'hp_roman8',
+    'ibm1051'            : 'hp_roman8',
+
+    # hz codec
+    'hzgb'               : 'hz',
+    'hz_gb'              : 'hz',
+    'hz_gb_2312'         : 'hz',
+
+    # iso2022_jp codec
+    'csiso2022jp'        : 'iso2022_jp',
+    'iso2022jp'          : 'iso2022_jp',
+    'iso_2022_jp'        : 'iso2022_jp',
+
+    # iso2022_jp_1 codec
+    'iso2022jp_1'        : 'iso2022_jp_1',
+    'iso_2022_jp_1'      : 'iso2022_jp_1',
+
+    # iso2022_jp_2 codec
+    'iso2022jp_2'        : 'iso2022_jp_2',
+    'iso_2022_jp_2'      : 'iso2022_jp_2',
+
+    # iso2022_jp_2004 codec
+    'iso_2022_jp_2004'   : 'iso2022_jp_2004',
+    'iso2022jp_2004'     : 'iso2022_jp_2004',
+
+    # iso2022_jp_3 codec
+    'iso2022jp_3'        : 'iso2022_jp_3',
+    'iso_2022_jp_3'      : 'iso2022_jp_3',
+
+    # iso2022_jp_ext codec
+    'iso2022jp_ext'      : 'iso2022_jp_ext',
+    'iso_2022_jp_ext'    : 'iso2022_jp_ext',
+
+    # iso2022_kr codec
+    'csiso2022kr'        : 'iso2022_kr',
+    'iso2022kr'          : 'iso2022_kr',
+    'iso_2022_kr'        : 'iso2022_kr',
+
+    # iso8859_10 codec
+    'csisolatin6'        : 'iso8859_10',
+    'iso_8859_10'        : 'iso8859_10',
+    'iso_8859_10_1992'   : 'iso8859_10',
+    'iso_ir_157'         : 'iso8859_10',
+    'l6'                 : 'iso8859_10',
+    'latin6'             : 'iso8859_10',
+
+    # iso8859_11 codec
+    'thai'               : 'iso8859_11',
+    'iso_8859_11'        : 'iso8859_11',
+    'iso_8859_11_2001'   : 'iso8859_11',
+
+    # iso8859_13 codec
+    'iso_8859_13'        : 'iso8859_13',
+    'l7'                 : 'iso8859_13',
+    'latin7'             : 'iso8859_13',
+
+    # iso8859_14 codec
+    'iso_8859_14'        : 'iso8859_14',
+    'iso_8859_14_1998'   : 'iso8859_14',
+    'iso_celtic'         : 'iso8859_14',
+    'iso_ir_199'         : 'iso8859_14',
+    'l8'                 : 'iso8859_14',
+    'latin8'             : 'iso8859_14',
+
+    # iso8859_15 codec
+    'iso_8859_15'        : 'iso8859_15',
+    'l9'                 : 'iso8859_15',
+    'latin9'             : 'iso8859_15',
+
+    # iso8859_16 codec
+    'iso_8859_16'        : 'iso8859_16',
+    'iso_8859_16_2001'   : 'iso8859_16',
+    'iso_ir_226'         : 'iso8859_16',
+    'l10'                : 'iso8859_16',
+    'latin10'            : 'iso8859_16',
+
+    # iso8859_2 codec
+    'csisolatin2'        : 'iso8859_2',
+    'iso_8859_2'         : 'iso8859_2',
+    'iso_8859_2_1987'    : 'iso8859_2',
+    'iso_ir_101'         : 'iso8859_2',
+    'l2'                 : 'iso8859_2',
+    'latin2'             : 'iso8859_2',
+
+    # iso8859_3 codec
+    'csisolatin3'        : 'iso8859_3',
+    'iso_8859_3'         : 'iso8859_3',
+    'iso_8859_3_1988'    : 'iso8859_3',
+    'iso_ir_109'         : 'iso8859_3',
+    'l3'                 : 'iso8859_3',
+    'latin3'             : 'iso8859_3',
+
+    # iso8859_4 codec
+    'csisolatin4'        : 'iso8859_4',
+    'iso_8859_4'         : 'iso8859_4',
+    'iso_8859_4_1988'    : 'iso8859_4',
+    'iso_ir_110'         : 'iso8859_4',
+    'l4'                 : 'iso8859_4',
+    'latin4'             : 'iso8859_4',
+
+    # iso8859_5 codec
+    'csisolatincyrillic' : 'iso8859_5',
+    'cyrillic'           : 'iso8859_5',
+    'iso_8859_5'         : 'iso8859_5',
+    'iso_8859_5_1988'    : 'iso8859_5',
+    'iso_ir_144'         : 'iso8859_5',
+
+    # iso8859_6 codec
+    'arabic'             : 'iso8859_6',
+    'asmo_708'           : 'iso8859_6',
+    'csisolatinarabic'   : 'iso8859_6',
+    'ecma_114'           : 'iso8859_6',
+    'iso_8859_6'         : 'iso8859_6',
+    'iso_8859_6_1987'    : 'iso8859_6',
+    'iso_ir_127'         : 'iso8859_6',
+
+    # iso8859_7 codec
+    'csisolatingreek'    : 'iso8859_7',
+    'ecma_118'           : 'iso8859_7',
+    'elot_928'           : 'iso8859_7',
+    'greek'              : 'iso8859_7',
+    'greek8'             : 'iso8859_7',
+    'iso_8859_7'         : 'iso8859_7',
+    'iso_8859_7_1987'    : 'iso8859_7',
+    'iso_ir_126'         : 'iso8859_7',
+
+    # iso8859_8 codec
+    'csisolatinhebrew'   : 'iso8859_8',
+    'hebrew'             : 'iso8859_8',
+    'iso_8859_8'         : 'iso8859_8',
+    'iso_8859_8_1988'    : 'iso8859_8',
+    'iso_ir_138'         : 'iso8859_8',
+
+    # iso8859_9 codec
+    'csisolatin5'        : 'iso8859_9',
+    'iso_8859_9'         : 'iso8859_9',
+    'iso_8859_9_1989'    : 'iso8859_9',
+    'iso_ir_148'         : 'iso8859_9',
+    'l5'                 : 'iso8859_9',
+    'latin5'             : 'iso8859_9',
+
+    # johab codec
+    'cp1361'             : 'johab',
+    'ms1361'             : 'johab',
+
+    # koi8_r codec
+    'cskoi8r'            : 'koi8_r',
+
+    # kz1048 codec
+    'kz_1048'           : 'kz1048',
+    'rk1048'            : 'kz1048',
+    'strk1048_2002'     : 'kz1048',
+
+    # latin_1 codec
+    #
+    # Note that the latin_1 codec is implemented internally in C and a
+    # lot faster than the charmap codec iso8859_1 which uses the same
+    # encoding. This is why we discourage the use of the iso8859_1
+    # codec and alias it to latin_1 instead.
+    #
+    '8859'               : 'latin_1',
+    'cp819'              : 'latin_1',
+    'csisolatin1'        : 'latin_1',
+    'ibm819'             : 'latin_1',
+    'iso8859'            : 'latin_1',
+    'iso8859_1'          : 'latin_1',
+    'iso_8859_1'         : 'latin_1',
+    'iso_8859_1_1987'    : 'latin_1',
+    'iso_ir_100'         : 'latin_1',
+    'l1'                 : 'latin_1',
+    'latin'              : 'latin_1',
+    'latin1'             : 'latin_1',
+
+    # mac_cyrillic codec
+    'maccyrillic'        : 'mac_cyrillic',
+
+    # mac_greek codec
+    'macgreek'           : 'mac_greek',
+
+    # mac_iceland codec
+    'maciceland'         : 'mac_iceland',
+
+    # mac_latin2 codec
+    'maccentraleurope'   : 'mac_latin2',
+    'mac_centeuro'       : 'mac_latin2',
+    'maclatin2'          : 'mac_latin2',
+
+    # mac_roman codec
+    'macintosh'          : 'mac_roman',
+    'macroman'           : 'mac_roman',
+
+    # mac_turkish codec
+    'macturkish'         : 'mac_turkish',
+
+    # mbcs codec
+    'ansi'               : 'mbcs',
+    'dbcs'               : 'mbcs',
+
+    # ptcp154 codec
+    'csptcp154'          : 'ptcp154',
+    'pt154'              : 'ptcp154',
+    'cp154'              : 'ptcp154',
+    'cyrillic_asian'     : 'ptcp154',
+
+    # quopri_codec codec
+    'quopri'             : 'quopri_codec',
+    'quoted_printable'   : 'quopri_codec',
+    'quotedprintable'    : 'quopri_codec',
+
+    # rot_13 codec
+    'rot13'              : 'rot_13',
+
+    # shift_jis codec
+    'csshiftjis'         : 'shift_jis',
+    'shiftjis'           : 'shift_jis',
+    'sjis'               : 'shift_jis',
+    's_jis'              : 'shift_jis',
+
+    # shift_jis_2004 codec
+    'shiftjis2004'       : 'shift_jis_2004',
+    'sjis_2004'          : 'shift_jis_2004',
+    's_jis_2004'         : 'shift_jis_2004',
+
+    # shift_jisx0213 codec
+    'shiftjisx0213'      : 'shift_jisx0213',
+    'sjisx0213'          : 'shift_jisx0213',
+    's_jisx0213'         : 'shift_jisx0213',
+
+    # tis_620 codec
+    'tis620'             : 'tis_620',
+    'tis_620_0'          : 'tis_620',
+    'tis_620_2529_0'     : 'tis_620',
+    'tis_620_2529_1'     : 'tis_620',
+    'iso_ir_166'         : 'tis_620',
+
+    # utf_16 codec
+    'u16'                : 'utf_16',
+    'utf16'              : 'utf_16',
+
+    # utf_16_be codec
+    'unicodebigunmarked' : 'utf_16_be',
+    'utf_16be'           : 'utf_16_be',
+
+    # utf_16_le codec
+    'unicodelittleunmarked' : 'utf_16_le',
+    'utf_16le'           : 'utf_16_le',
+
+    # utf_32 codec
+    'u32'                : 'utf_32',
+    'utf32'              : 'utf_32',
+
+    # utf_32_be codec
+    'utf_32be'           : 'utf_32_be',
+
+    # utf_32_le codec
+    'utf_32le'           : 'utf_32_le',
+
+    # utf_7 codec
+    'u7'                 : 'utf_7',
+    'utf7'               : 'utf_7',
+    'unicode_1_1_utf_7'  : 'utf_7',
+
+    # utf_8 codec
+    'u8'                 : 'utf_8',
+    'utf'                : 'utf_8',
+    'utf8'               : 'utf_8',
+    'utf8_ucs2'          : 'utf_8',
+    'utf8_ucs4'          : 'utf_8',
+    'cp65001'            : 'utf_8',
+
+    # uu_codec codec
+    'uu'                 : 'uu_codec',
+
+    # zlib_codec codec
+    'zip'                : 'zlib_codec',
+    'zlib'               : 'zlib_codec',
+
+    # temporary mac CJK aliases, will be replaced by proper codecs in 3.1
+    'x_mac_japanese'      : 'shift_jis',
+    'x_mac_korean'        : 'euc_kr',
+    'x_mac_simp_chinese'  : 'gb2312',
+    'x_mac_trad_chinese'  : 'big5',
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/ascii.py b/linux-x64/clang/python3/lib/python3.9/encodings/ascii.py
new file mode 100644
index 0000000..2033cde
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/ascii.py
@@ -0,0 +1,50 @@
+""" Python 'ascii' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    # Note: Binding these as C functions will result in the class not
+    # converting them to methods. This is intended.
+    encode = codecs.ascii_encode
+    decode = codecs.ascii_decode
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.ascii_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.ascii_decode(input, self.errors)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+class StreamConverter(StreamWriter,StreamReader):
+
+    encode = codecs.ascii_decode
+    decode = codecs.ascii_encode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='ascii',
+        encode=Codec.encode,
+        decode=Codec.decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/base64_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/base64_codec.py
new file mode 100644
index 0000000..8e7703b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/base64_codec.py
@@ -0,0 +1,55 @@
+"""Python 'base64_codec' Codec - base64 content transfer encoding.
+
+This codec de/encodes from bytes to bytes.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+"""
+
+import codecs
+import base64
+
+### Codec APIs
+
+def base64_encode(input, errors='strict'):
+    assert errors == 'strict'
+    return (base64.encodebytes(input), len(input))
+
+def base64_decode(input, errors='strict'):
+    assert errors == 'strict'
+    return (base64.decodebytes(input), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return base64_encode(input, errors)
+    def decode(self, input, errors='strict'):
+        return base64_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        assert self.errors == 'strict'
+        return base64.encodebytes(input)
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        assert self.errors == 'strict'
+        return base64.decodebytes(input)
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='base64',
+        encode=base64_encode,
+        decode=base64_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+        _is_text_encoding=False,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/big5.py b/linux-x64/clang/python3/lib/python3.9/encodings/big5.py
new file mode 100644
index 0000000..7adeb0e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/big5.py
@@ -0,0 +1,39 @@
+#
+# big5.py: Python Unicode Codec for BIG5
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_tw, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_tw.getcodec('big5')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='big5',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/big5hkscs.py b/linux-x64/clang/python3/lib/python3.9/encodings/big5hkscs.py
new file mode 100644
index 0000000..350df37
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/big5hkscs.py
@@ -0,0 +1,39 @@
+#
+# big5hkscs.py: Python Unicode Codec for BIG5HKSCS
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_hk, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_hk.getcodec('big5hkscs')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='big5hkscs',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/bz2_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/bz2_codec.py
new file mode 100644
index 0000000..fd9495e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/bz2_codec.py
@@ -0,0 +1,78 @@
+"""Python 'bz2_codec' Codec - bz2 compression encoding.
+
+This codec de/encodes from bytes to bytes and is therefore usable with
+bytes.transform() and bytes.untransform().
+
+Adapted by Raymond Hettinger from zlib_codec.py which was written
+by Marc-Andre Lemburg (mal@lemburg.com).
+"""
+
+import codecs
+import bz2 # this codec needs the optional bz2 module !
+
+### Codec APIs
+
+def bz2_encode(input, errors='strict'):
+    assert errors == 'strict'
+    return (bz2.compress(input), len(input))
+
+def bz2_decode(input, errors='strict'):
+    assert errors == 'strict'
+    return (bz2.decompress(input), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return bz2_encode(input, errors)
+    def decode(self, input, errors='strict'):
+        return bz2_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict'):
+        assert errors == 'strict'
+        self.errors = errors
+        self.compressobj = bz2.BZ2Compressor()
+
+    def encode(self, input, final=False):
+        if final:
+            c = self.compressobj.compress(input)
+            return c + self.compressobj.flush()
+        else:
+            return self.compressobj.compress(input)
+
+    def reset(self):
+        self.compressobj = bz2.BZ2Compressor()
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def __init__(self, errors='strict'):
+        assert errors == 'strict'
+        self.errors = errors
+        self.decompressobj = bz2.BZ2Decompressor()
+
+    def decode(self, input, final=False):
+        try:
+            return self.decompressobj.decompress(input)
+        except EOFError:
+            return ''
+
+    def reset(self):
+        self.decompressobj = bz2.BZ2Decompressor()
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name="bz2",
+        encode=bz2_encode,
+        decode=bz2_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+        _is_text_encoding=False,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/charmap.py b/linux-x64/clang/python3/lib/python3.9/encodings/charmap.py
new file mode 100644
index 0000000..81189b1
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/charmap.py
@@ -0,0 +1,69 @@
+""" Generic Python Character Mapping Codec.
+
+    Use this codec directly rather than through the automatic
+    conversion mechanisms supplied by unicode() and .encode().
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    # Note: Binding these as C functions will result in the class not
+    # converting them to methods. This is intended.
+    encode = codecs.charmap_encode
+    decode = codecs.charmap_decode
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict', mapping=None):
+        codecs.IncrementalEncoder.__init__(self, errors)
+        self.mapping = mapping
+
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input, self.errors, self.mapping)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def __init__(self, errors='strict', mapping=None):
+        codecs.IncrementalDecoder.__init__(self, errors)
+        self.mapping = mapping
+
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input, self.errors, self.mapping)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+
+    def __init__(self,stream,errors='strict',mapping=None):
+        codecs.StreamWriter.__init__(self,stream,errors)
+        self.mapping = mapping
+
+    def encode(self,input,errors='strict'):
+        return Codec.encode(input,errors,self.mapping)
+
+class StreamReader(Codec,codecs.StreamReader):
+
+    def __init__(self,stream,errors='strict',mapping=None):
+        codecs.StreamReader.__init__(self,stream,errors)
+        self.mapping = mapping
+
+    def decode(self,input,errors='strict'):
+        return Codec.decode(input,errors,self.mapping)
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='charmap',
+        encode=Codec.encode,
+        decode=Codec.decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp037.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp037.py
new file mode 100644
index 0000000..4edd708
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp037.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp037 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp037',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1006.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1006.py
new file mode 100644
index 0000000..a1221c3
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1006.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1006 generated from 'MAPPINGS/VENDORS/MISC/CP1006.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1006',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u06f0'   #  0xA1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
+    '\u06f1'   #  0xA2 -> EXTENDED ARABIC-INDIC DIGIT ONE
+    '\u06f2'   #  0xA3 -> EXTENDED ARABIC-INDIC DIGIT TWO
+    '\u06f3'   #  0xA4 -> EXTENDED ARABIC-INDIC DIGIT THREE
+    '\u06f4'   #  0xA5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
+    '\u06f5'   #  0xA6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
+    '\u06f6'   #  0xA7 -> EXTENDED ARABIC-INDIC DIGIT SIX
+    '\u06f7'   #  0xA8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
+    '\u06f8'   #  0xA9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
+    '\u06f9'   #  0xAA -> EXTENDED ARABIC-INDIC DIGIT NINE
+    '\u060c'   #  0xAB -> ARABIC COMMA
+    '\u061b'   #  0xAC -> ARABIC SEMICOLON
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u061f'   #  0xAE -> ARABIC QUESTION MARK
+    '\ufe81'   #  0xAF -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufe8d'   #  0xB0 -> ARABIC LETTER ALEF ISOLATED FORM
+    '\ufe8e'   #  0xB1 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8e'   #  0xB2 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8f'   #  0xB3 -> ARABIC LETTER BEH ISOLATED FORM
+    '\ufe91'   #  0xB4 -> ARABIC LETTER BEH INITIAL FORM
+    '\ufb56'   #  0xB5 -> ARABIC LETTER PEH ISOLATED FORM
+    '\ufb58'   #  0xB6 -> ARABIC LETTER PEH INITIAL FORM
+    '\ufe93'   #  0xB7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    '\ufe95'   #  0xB8 -> ARABIC LETTER TEH ISOLATED FORM
+    '\ufe97'   #  0xB9 -> ARABIC LETTER TEH INITIAL FORM
+    '\ufb66'   #  0xBA -> ARABIC LETTER TTEH ISOLATED FORM
+    '\ufb68'   #  0xBB -> ARABIC LETTER TTEH INITIAL FORM
+    '\ufe99'   #  0xBC -> ARABIC LETTER THEH ISOLATED FORM
+    '\ufe9b'   #  0xBD -> ARABIC LETTER THEH INITIAL FORM
+    '\ufe9d'   #  0xBE -> ARABIC LETTER JEEM ISOLATED FORM
+    '\ufe9f'   #  0xBF -> ARABIC LETTER JEEM INITIAL FORM
+    '\ufb7a'   #  0xC0 -> ARABIC LETTER TCHEH ISOLATED FORM
+    '\ufb7c'   #  0xC1 -> ARABIC LETTER TCHEH INITIAL FORM
+    '\ufea1'   #  0xC2 -> ARABIC LETTER HAH ISOLATED FORM
+    '\ufea3'   #  0xC3 -> ARABIC LETTER HAH INITIAL FORM
+    '\ufea5'   #  0xC4 -> ARABIC LETTER KHAH ISOLATED FORM
+    '\ufea7'   #  0xC5 -> ARABIC LETTER KHAH INITIAL FORM
+    '\ufea9'   #  0xC6 -> ARABIC LETTER DAL ISOLATED FORM
+    '\ufb84'   #  0xC7 -> ARABIC LETTER DAHAL ISOLATED FORMN
+    '\ufeab'   #  0xC8 -> ARABIC LETTER THAL ISOLATED FORM
+    '\ufead'   #  0xC9 -> ARABIC LETTER REH ISOLATED FORM
+    '\ufb8c'   #  0xCA -> ARABIC LETTER RREH ISOLATED FORM
+    '\ufeaf'   #  0xCB -> ARABIC LETTER ZAIN ISOLATED FORM
+    '\ufb8a'   #  0xCC -> ARABIC LETTER JEH ISOLATED FORM
+    '\ufeb1'   #  0xCD -> ARABIC LETTER SEEN ISOLATED FORM
+    '\ufeb3'   #  0xCE -> ARABIC LETTER SEEN INITIAL FORM
+    '\ufeb5'   #  0xCF -> ARABIC LETTER SHEEN ISOLATED FORM
+    '\ufeb7'   #  0xD0 -> ARABIC LETTER SHEEN INITIAL FORM
+    '\ufeb9'   #  0xD1 -> ARABIC LETTER SAD ISOLATED FORM
+    '\ufebb'   #  0xD2 -> ARABIC LETTER SAD INITIAL FORM
+    '\ufebd'   #  0xD3 -> ARABIC LETTER DAD ISOLATED FORM
+    '\ufebf'   #  0xD4 -> ARABIC LETTER DAD INITIAL FORM
+    '\ufec1'   #  0xD5 -> ARABIC LETTER TAH ISOLATED FORM
+    '\ufec5'   #  0xD6 -> ARABIC LETTER ZAH ISOLATED FORM
+    '\ufec9'   #  0xD7 -> ARABIC LETTER AIN ISOLATED FORM
+    '\ufeca'   #  0xD8 -> ARABIC LETTER AIN FINAL FORM
+    '\ufecb'   #  0xD9 -> ARABIC LETTER AIN INITIAL FORM
+    '\ufecc'   #  0xDA -> ARABIC LETTER AIN MEDIAL FORM
+    '\ufecd'   #  0xDB -> ARABIC LETTER GHAIN ISOLATED FORM
+    '\ufece'   #  0xDC -> ARABIC LETTER GHAIN FINAL FORM
+    '\ufecf'   #  0xDD -> ARABIC LETTER GHAIN INITIAL FORM
+    '\ufed0'   #  0xDE -> ARABIC LETTER GHAIN MEDIAL FORM
+    '\ufed1'   #  0xDF -> ARABIC LETTER FEH ISOLATED FORM
+    '\ufed3'   #  0xE0 -> ARABIC LETTER FEH INITIAL FORM
+    '\ufed5'   #  0xE1 -> ARABIC LETTER QAF ISOLATED FORM
+    '\ufed7'   #  0xE2 -> ARABIC LETTER QAF INITIAL FORM
+    '\ufed9'   #  0xE3 -> ARABIC LETTER KAF ISOLATED FORM
+    '\ufedb'   #  0xE4 -> ARABIC LETTER KAF INITIAL FORM
+    '\ufb92'   #  0xE5 -> ARABIC LETTER GAF ISOLATED FORM
+    '\ufb94'   #  0xE6 -> ARABIC LETTER GAF INITIAL FORM
+    '\ufedd'   #  0xE7 -> ARABIC LETTER LAM ISOLATED FORM
+    '\ufedf'   #  0xE8 -> ARABIC LETTER LAM INITIAL FORM
+    '\ufee0'   #  0xE9 -> ARABIC LETTER LAM MEDIAL FORM
+    '\ufee1'   #  0xEA -> ARABIC LETTER MEEM ISOLATED FORM
+    '\ufee3'   #  0xEB -> ARABIC LETTER MEEM INITIAL FORM
+    '\ufb9e'   #  0xEC -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
+    '\ufee5'   #  0xED -> ARABIC LETTER NOON ISOLATED FORM
+    '\ufee7'   #  0xEE -> ARABIC LETTER NOON INITIAL FORM
+    '\ufe85'   #  0xEF -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    '\ufeed'   #  0xF0 -> ARABIC LETTER WAW ISOLATED FORM
+    '\ufba6'   #  0xF1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
+    '\ufba8'   #  0xF2 -> ARABIC LETTER HEH GOAL INITIAL FORM
+    '\ufba9'   #  0xF3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
+    '\ufbaa'   #  0xF4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+    '\ufe80'   #  0xF5 -> ARABIC LETTER HAMZA ISOLATED FORM
+    '\ufe89'   #  0xF6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+    '\ufe8a'   #  0xF7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+    '\ufe8b'   #  0xF8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    '\ufef1'   #  0xF9 -> ARABIC LETTER YEH ISOLATED FORM
+    '\ufef2'   #  0xFA -> ARABIC LETTER YEH FINAL FORM
+    '\ufef3'   #  0xFB -> ARABIC LETTER YEH INITIAL FORM
+    '\ufbb0'   #  0xFC -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+    '\ufbae'   #  0xFD -> ARABIC LETTER YEH BARREE ISOLATED FORM
+    '\ufe7c'   #  0xFE -> ARABIC SHADDA ISOLATED FORM
+    '\ufe7d'   #  0xFF -> ARABIC SHADDA MEDIAL FORM
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1026.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1026.py
new file mode 100644
index 0000000..46f71f7
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1026.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1026 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1026',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '{'        #  0x48 -> LEFT CURLY BRACKET
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xc7'     #  0x4A -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u011e'   #  0x5A -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u0130'   #  0x5B -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '['        #  0x68 -> LEFT SQUARE BRACKET
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u015f'   #  0x6A -> LATIN SMALL LETTER S WITH CEDILLA
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u0131'   #  0x79 -> LATIN SMALL LETTER DOTLESS I
+    ':'        #  0x7A -> COLON
+    '\xd6'     #  0x7B -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u015e'   #  0x7C -> LATIN CAPITAL LETTER S WITH CEDILLA
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '\xdc'     #  0x7F -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '}'        #  0x8C -> RIGHT CURLY BRACKET
+    '`'        #  0x8D -> GRAVE ACCENT
+    '\xa6'     #  0x8E -> BROKEN BAR
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '\xf6'     #  0xA1 -> LATIN SMALL LETTER O WITH DIAERESIS
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    ']'        #  0xAC -> RIGHT SQUARE BRACKET
+    '$'        #  0xAD -> DOLLAR SIGN
+    '@'        #  0xAE -> COMMERCIAL AT
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '\xa2'     #  0xB0 -> CENT SIGN
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '\xac'     #  0xBA -> NOT SIGN
+    '|'        #  0xBB -> VERTICAL LINE
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '\xe7'     #  0xC0 -> LATIN SMALL LETTER C WITH CEDILLA
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '~'        #  0xCC -> TILDE
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '\u011f'   #  0xD0 -> LATIN SMALL LETTER G WITH BREVE
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\\'       #  0xDC -> REVERSE SOLIDUS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xfc'     #  0xE0 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '#'        #  0xEC -> NUMBER SIGN
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '"'        #  0xFC -> QUOTATION MARK
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1125.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1125.py
new file mode 100644
index 0000000..b1fd69d
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1125.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec for CP1125
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1125',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x0410,     #  CYRILLIC CAPITAL LETTER A
+    0x0081: 0x0411,     #  CYRILLIC CAPITAL LETTER BE
+    0x0082: 0x0412,     #  CYRILLIC CAPITAL LETTER VE
+    0x0083: 0x0413,     #  CYRILLIC CAPITAL LETTER GHE
+    0x0084: 0x0414,     #  CYRILLIC CAPITAL LETTER DE
+    0x0085: 0x0415,     #  CYRILLIC CAPITAL LETTER IE
+    0x0086: 0x0416,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x0087: 0x0417,     #  CYRILLIC CAPITAL LETTER ZE
+    0x0088: 0x0418,     #  CYRILLIC CAPITAL LETTER I
+    0x0089: 0x0419,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x008a: 0x041a,     #  CYRILLIC CAPITAL LETTER KA
+    0x008b: 0x041b,     #  CYRILLIC CAPITAL LETTER EL
+    0x008c: 0x041c,     #  CYRILLIC CAPITAL LETTER EM
+    0x008d: 0x041d,     #  CYRILLIC CAPITAL LETTER EN
+    0x008e: 0x041e,     #  CYRILLIC CAPITAL LETTER O
+    0x008f: 0x041f,     #  CYRILLIC CAPITAL LETTER PE
+    0x0090: 0x0420,     #  CYRILLIC CAPITAL LETTER ER
+    0x0091: 0x0421,     #  CYRILLIC CAPITAL LETTER ES
+    0x0092: 0x0422,     #  CYRILLIC CAPITAL LETTER TE
+    0x0093: 0x0423,     #  CYRILLIC CAPITAL LETTER U
+    0x0094: 0x0424,     #  CYRILLIC CAPITAL LETTER EF
+    0x0095: 0x0425,     #  CYRILLIC CAPITAL LETTER HA
+    0x0096: 0x0426,     #  CYRILLIC CAPITAL LETTER TSE
+    0x0097: 0x0427,     #  CYRILLIC CAPITAL LETTER CHE
+    0x0098: 0x0428,     #  CYRILLIC CAPITAL LETTER SHA
+    0x0099: 0x0429,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x009a: 0x042a,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x009b: 0x042b,     #  CYRILLIC CAPITAL LETTER YERU
+    0x009c: 0x042c,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x009d: 0x042d,     #  CYRILLIC CAPITAL LETTER E
+    0x009e: 0x042e,     #  CYRILLIC CAPITAL LETTER YU
+    0x009f: 0x042f,     #  CYRILLIC CAPITAL LETTER YA
+    0x00a0: 0x0430,     #  CYRILLIC SMALL LETTER A
+    0x00a1: 0x0431,     #  CYRILLIC SMALL LETTER BE
+    0x00a2: 0x0432,     #  CYRILLIC SMALL LETTER VE
+    0x00a3: 0x0433,     #  CYRILLIC SMALL LETTER GHE
+    0x00a4: 0x0434,     #  CYRILLIC SMALL LETTER DE
+    0x00a5: 0x0435,     #  CYRILLIC SMALL LETTER IE
+    0x00a6: 0x0436,     #  CYRILLIC SMALL LETTER ZHE
+    0x00a7: 0x0437,     #  CYRILLIC SMALL LETTER ZE
+    0x00a8: 0x0438,     #  CYRILLIC SMALL LETTER I
+    0x00a9: 0x0439,     #  CYRILLIC SMALL LETTER SHORT I
+    0x00aa: 0x043a,     #  CYRILLIC SMALL LETTER KA
+    0x00ab: 0x043b,     #  CYRILLIC SMALL LETTER EL
+    0x00ac: 0x043c,     #  CYRILLIC SMALL LETTER EM
+    0x00ad: 0x043d,     #  CYRILLIC SMALL LETTER EN
+    0x00ae: 0x043e,     #  CYRILLIC SMALL LETTER O
+    0x00af: 0x043f,     #  CYRILLIC SMALL LETTER PE
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x0440,     #  CYRILLIC SMALL LETTER ER
+    0x00e1: 0x0441,     #  CYRILLIC SMALL LETTER ES
+    0x00e2: 0x0442,     #  CYRILLIC SMALL LETTER TE
+    0x00e3: 0x0443,     #  CYRILLIC SMALL LETTER U
+    0x00e4: 0x0444,     #  CYRILLIC SMALL LETTER EF
+    0x00e5: 0x0445,     #  CYRILLIC SMALL LETTER HA
+    0x00e6: 0x0446,     #  CYRILLIC SMALL LETTER TSE
+    0x00e7: 0x0447,     #  CYRILLIC SMALL LETTER CHE
+    0x00e8: 0x0448,     #  CYRILLIC SMALL LETTER SHA
+    0x00e9: 0x0449,     #  CYRILLIC SMALL LETTER SHCHA
+    0x00ea: 0x044a,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x00eb: 0x044b,     #  CYRILLIC SMALL LETTER YERU
+    0x00ec: 0x044c,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x00ed: 0x044d,     #  CYRILLIC SMALL LETTER E
+    0x00ee: 0x044e,     #  CYRILLIC SMALL LETTER YU
+    0x00ef: 0x044f,     #  CYRILLIC SMALL LETTER YA
+    0x00f0: 0x0401,     #  CYRILLIC CAPITAL LETTER IO
+    0x00f1: 0x0451,     #  CYRILLIC SMALL LETTER IO
+    0x00f2: 0x0490,     #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    0x00f3: 0x0491,     #  CYRILLIC SMALL LETTER GHE WITH UPTURN
+    0x00f4: 0x0404,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x00f5: 0x0454,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x00f6: 0x0406,     #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x00f7: 0x0456,     #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x00f8: 0x0407,     #  CYRILLIC CAPITAL LETTER YI
+    0x00f9: 0x0457,     #  CYRILLIC SMALL LETTER YI
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x2116,     #  NUMERO SIGN
+    0x00fd: 0x00a4,     #  CURRENCY SIGN
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0410'   #  0x0080 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0x0081 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0x0082 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0x0083 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0x0084 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0x0085 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0x0086 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0x0087 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0x0088 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0x008a -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0x008b -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0x008c -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0x008d -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0x008e -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0x008f -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0x0090 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0x0091 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0x0092 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0x0093 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0x0094 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0x0095 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0x0096 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0x0097 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0x0098 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0x009b -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0x009d -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0x009e -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0x009f -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0x00a1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0x00a2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0x00a3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0x00a4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0x00a5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0x00a6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0x00a7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0x00a8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0x00a9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0x00aa -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0x00ab -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0x00ac -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0x00ad -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0x00ae -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0x00af -> CYRILLIC SMALL LETTER PE
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u0440'   #  0x00e0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0x00e1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0x00e2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0x00e3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0x00e4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0x00e5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0x00e6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0x00e7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0x00e8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0x00e9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0x00eb -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0x00ed -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0x00ee -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0x00ef -> CYRILLIC SMALL LETTER YA
+    '\u0401'   #  0x00f0 -> CYRILLIC CAPITAL LETTER IO
+    '\u0451'   #  0x00f1 -> CYRILLIC SMALL LETTER IO
+    '\u0490'   #  0x00f2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    '\u0491'   #  0x00f3 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
+    '\u0404'   #  0x00f4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0454'   #  0x00f5 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0406'   #  0x00f6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0456'   #  0x00f7 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0407'   #  0x00f8 -> CYRILLIC CAPITAL LETTER YI
+    '\u0457'   #  0x00f9 -> CYRILLIC SMALL LETTER YI
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u2116'   #  0x00fc -> NUMERO SIGN
+    '\xa4'     #  0x00fd -> CURRENCY SIGN
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a4: 0x00fd,     #  CURRENCY SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x0401: 0x00f0,     #  CYRILLIC CAPITAL LETTER IO
+    0x0404: 0x00f4,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x0406: 0x00f6,     #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x0407: 0x00f8,     #  CYRILLIC CAPITAL LETTER YI
+    0x0410: 0x0080,     #  CYRILLIC CAPITAL LETTER A
+    0x0411: 0x0081,     #  CYRILLIC CAPITAL LETTER BE
+    0x0412: 0x0082,     #  CYRILLIC CAPITAL LETTER VE
+    0x0413: 0x0083,     #  CYRILLIC CAPITAL LETTER GHE
+    0x0414: 0x0084,     #  CYRILLIC CAPITAL LETTER DE
+    0x0415: 0x0085,     #  CYRILLIC CAPITAL LETTER IE
+    0x0416: 0x0086,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x0417: 0x0087,     #  CYRILLIC CAPITAL LETTER ZE
+    0x0418: 0x0088,     #  CYRILLIC CAPITAL LETTER I
+    0x0419: 0x0089,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x041a: 0x008a,     #  CYRILLIC CAPITAL LETTER KA
+    0x041b: 0x008b,     #  CYRILLIC CAPITAL LETTER EL
+    0x041c: 0x008c,     #  CYRILLIC CAPITAL LETTER EM
+    0x041d: 0x008d,     #  CYRILLIC CAPITAL LETTER EN
+    0x041e: 0x008e,     #  CYRILLIC CAPITAL LETTER O
+    0x041f: 0x008f,     #  CYRILLIC CAPITAL LETTER PE
+    0x0420: 0x0090,     #  CYRILLIC CAPITAL LETTER ER
+    0x0421: 0x0091,     #  CYRILLIC CAPITAL LETTER ES
+    0x0422: 0x0092,     #  CYRILLIC CAPITAL LETTER TE
+    0x0423: 0x0093,     #  CYRILLIC CAPITAL LETTER U
+    0x0424: 0x0094,     #  CYRILLIC CAPITAL LETTER EF
+    0x0425: 0x0095,     #  CYRILLIC CAPITAL LETTER HA
+    0x0426: 0x0096,     #  CYRILLIC CAPITAL LETTER TSE
+    0x0427: 0x0097,     #  CYRILLIC CAPITAL LETTER CHE
+    0x0428: 0x0098,     #  CYRILLIC CAPITAL LETTER SHA
+    0x0429: 0x0099,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x042a: 0x009a,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x042b: 0x009b,     #  CYRILLIC CAPITAL LETTER YERU
+    0x042c: 0x009c,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x042d: 0x009d,     #  CYRILLIC CAPITAL LETTER E
+    0x042e: 0x009e,     #  CYRILLIC CAPITAL LETTER YU
+    0x042f: 0x009f,     #  CYRILLIC CAPITAL LETTER YA
+    0x0430: 0x00a0,     #  CYRILLIC SMALL LETTER A
+    0x0431: 0x00a1,     #  CYRILLIC SMALL LETTER BE
+    0x0432: 0x00a2,     #  CYRILLIC SMALL LETTER VE
+    0x0433: 0x00a3,     #  CYRILLIC SMALL LETTER GHE
+    0x0434: 0x00a4,     #  CYRILLIC SMALL LETTER DE
+    0x0435: 0x00a5,     #  CYRILLIC SMALL LETTER IE
+    0x0436: 0x00a6,     #  CYRILLIC SMALL LETTER ZHE
+    0x0437: 0x00a7,     #  CYRILLIC SMALL LETTER ZE
+    0x0438: 0x00a8,     #  CYRILLIC SMALL LETTER I
+    0x0439: 0x00a9,     #  CYRILLIC SMALL LETTER SHORT I
+    0x043a: 0x00aa,     #  CYRILLIC SMALL LETTER KA
+    0x043b: 0x00ab,     #  CYRILLIC SMALL LETTER EL
+    0x043c: 0x00ac,     #  CYRILLIC SMALL LETTER EM
+    0x043d: 0x00ad,     #  CYRILLIC SMALL LETTER EN
+    0x043e: 0x00ae,     #  CYRILLIC SMALL LETTER O
+    0x043f: 0x00af,     #  CYRILLIC SMALL LETTER PE
+    0x0440: 0x00e0,     #  CYRILLIC SMALL LETTER ER
+    0x0441: 0x00e1,     #  CYRILLIC SMALL LETTER ES
+    0x0442: 0x00e2,     #  CYRILLIC SMALL LETTER TE
+    0x0443: 0x00e3,     #  CYRILLIC SMALL LETTER U
+    0x0444: 0x00e4,     #  CYRILLIC SMALL LETTER EF
+    0x0445: 0x00e5,     #  CYRILLIC SMALL LETTER HA
+    0x0446: 0x00e6,     #  CYRILLIC SMALL LETTER TSE
+    0x0447: 0x00e7,     #  CYRILLIC SMALL LETTER CHE
+    0x0448: 0x00e8,     #  CYRILLIC SMALL LETTER SHA
+    0x0449: 0x00e9,     #  CYRILLIC SMALL LETTER SHCHA
+    0x044a: 0x00ea,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x044b: 0x00eb,     #  CYRILLIC SMALL LETTER YERU
+    0x044c: 0x00ec,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x044d: 0x00ed,     #  CYRILLIC SMALL LETTER E
+    0x044e: 0x00ee,     #  CYRILLIC SMALL LETTER YU
+    0x044f: 0x00ef,     #  CYRILLIC SMALL LETTER YA
+    0x0451: 0x00f1,     #  CYRILLIC SMALL LETTER IO
+    0x0454: 0x00f5,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x0456: 0x00f7,     #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x0457: 0x00f9,     #  CYRILLIC SMALL LETTER YI
+    0x0490: 0x00f2,     #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    0x0491: 0x00f3,     #  CYRILLIC SMALL LETTER GHE WITH UPTURN
+    0x2116: 0x00fc,     #  NUMERO SIGN
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1140.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1140.py
new file mode 100644
index 0000000..0a919d8
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1140.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1140 generated from 'python-mappings/CP1140.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1140',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\u20ac'   #  0x9F -> EURO SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1250.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1250.py
new file mode 100644
index 0000000..c2c83aa
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1250.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1250 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1250',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u015a'   #  0x8C -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u0164'   #  0x8D -> LATIN CAPITAL LETTER T WITH CARON
+    '\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u015b'   #  0x9C -> LATIN SMALL LETTER S WITH ACUTE
+    '\u0165'   #  0x9D -> LATIN SMALL LETTER T WITH CARON
+    '\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
+    '\u017a'   #  0x9F -> LATIN SMALL LETTER Z WITH ACUTE
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u02c7'   #  0xA1 -> CARON
+    '\u02d8'   #  0xA2 -> BREVE
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0104'   #  0xA5 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0105'   #  0xB9 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u013d'   #  0xBC -> LATIN CAPITAL LETTER L WITH CARON
+    '\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
+    '\u013e'   #  0xBE -> LATIN SMALL LETTER L WITH CARON
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
+    '\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
+    '\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
+    '\u02d9'   #  0xFF -> DOT ABOVE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1251.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1251.py
new file mode 100644
index 0000000..22bc660
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1251.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1251 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1251',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u0402'   #  0x80 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0403'   #  0x81 -> CYRILLIC CAPITAL LETTER GJE
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0453'   #  0x83 -> CYRILLIC SMALL LETTER GJE
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u20ac'   #  0x88 -> EURO SIGN
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0409'   #  0x8A -> CYRILLIC CAPITAL LETTER LJE
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u040a'   #  0x8C -> CYRILLIC CAPITAL LETTER NJE
+    '\u040c'   #  0x8D -> CYRILLIC CAPITAL LETTER KJE
+    '\u040b'   #  0x8E -> CYRILLIC CAPITAL LETTER TSHE
+    '\u040f'   #  0x8F -> CYRILLIC CAPITAL LETTER DZHE
+    '\u0452'   #  0x90 -> CYRILLIC SMALL LETTER DJE
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0459'   #  0x9A -> CYRILLIC SMALL LETTER LJE
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u045a'   #  0x9C -> CYRILLIC SMALL LETTER NJE
+    '\u045c'   #  0x9D -> CYRILLIC SMALL LETTER KJE
+    '\u045b'   #  0x9E -> CYRILLIC SMALL LETTER TSHE
+    '\u045f'   #  0x9F -> CYRILLIC SMALL LETTER DZHE
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u040e'   #  0xA1 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0xA2 -> CYRILLIC SMALL LETTER SHORT U
+    '\u0408'   #  0xA3 -> CYRILLIC CAPITAL LETTER JE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0490'   #  0xA5 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0401'   #  0xA8 -> CYRILLIC CAPITAL LETTER IO
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0404'   #  0xAA -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u0407'   #  0xAF -> CYRILLIC CAPITAL LETTER YI
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u0406'   #  0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0456'   #  0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0491'   #  0xB4 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0451'   #  0xB8 -> CYRILLIC SMALL LETTER IO
+    '\u2116'   #  0xB9 -> NUMERO SIGN
+    '\u0454'   #  0xBA -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0458'   #  0xBC -> CYRILLIC SMALL LETTER JE
+    '\u0405'   #  0xBD -> CYRILLIC CAPITAL LETTER DZE
+    '\u0455'   #  0xBE -> CYRILLIC SMALL LETTER DZE
+    '\u0457'   #  0xBF -> CYRILLIC SMALL LETTER YI
+    '\u0410'   #  0xC0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xC1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0xC2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0xC3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0xC4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xC5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0xC6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0xC7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0xC8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xCA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xCB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xCC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xCD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xCE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xCF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0xD0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xD1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xD2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xD3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0xD4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0xD5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0xD6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0xD7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0xDB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0xDD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0xDE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0xDF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0xFF -> CYRILLIC SMALL LETTER YA
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1252.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1252.py
new file mode 100644
index 0000000..c0e8088
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1252.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1252 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1252',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1253.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1253.py
new file mode 100644
index 0000000..ec9c097
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1253.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1253 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1253',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0385'   #  0xA1 -> GREEK DIALYTIKA TONOS
+    '\u0386'   #  0xA2 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\ufffe'   #  0xAA -> UNDEFINED
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u2015'   #  0xAF -> HORIZONTAL BAR
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u0384'   #  0xB4 -> GREEK TONOS
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
+    '\ufffe'   #  0xD2 -> UNDEFINED
+    '\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xED -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xEE -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
+    '\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
+    '\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
+    '\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\ufffe'   #  0xFF -> UNDEFINED
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1254.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1254.py
new file mode 100644
index 0000000..4912327
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1254.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1254 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1254',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1255.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1255.py
new file mode 100644
index 0000000..91ce26b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1255.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1255 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1255.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1255',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20aa'   #  0xA4 -> NEW SHEQEL SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xd7'     #  0xAA -> MULTIPLICATION SIGN
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xf7'     #  0xBA -> DIVISION SIGN
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\u05b0'   #  0xC0 -> HEBREW POINT SHEVA
+    '\u05b1'   #  0xC1 -> HEBREW POINT HATAF SEGOL
+    '\u05b2'   #  0xC2 -> HEBREW POINT HATAF PATAH
+    '\u05b3'   #  0xC3 -> HEBREW POINT HATAF QAMATS
+    '\u05b4'   #  0xC4 -> HEBREW POINT HIRIQ
+    '\u05b5'   #  0xC5 -> HEBREW POINT TSERE
+    '\u05b6'   #  0xC6 -> HEBREW POINT SEGOL
+    '\u05b7'   #  0xC7 -> HEBREW POINT PATAH
+    '\u05b8'   #  0xC8 -> HEBREW POINT QAMATS
+    '\u05b9'   #  0xC9 -> HEBREW POINT HOLAM
+    '\ufffe'   #  0xCA -> UNDEFINED
+    '\u05bb'   #  0xCB -> HEBREW POINT QUBUTS
+    '\u05bc'   #  0xCC -> HEBREW POINT DAGESH OR MAPIQ
+    '\u05bd'   #  0xCD -> HEBREW POINT METEG
+    '\u05be'   #  0xCE -> HEBREW PUNCTUATION MAQAF
+    '\u05bf'   #  0xCF -> HEBREW POINT RAFE
+    '\u05c0'   #  0xD0 -> HEBREW PUNCTUATION PASEQ
+    '\u05c1'   #  0xD1 -> HEBREW POINT SHIN DOT
+    '\u05c2'   #  0xD2 -> HEBREW POINT SIN DOT
+    '\u05c3'   #  0xD3 -> HEBREW PUNCTUATION SOF PASUQ
+    '\u05f0'   #  0xD4 -> HEBREW LIGATURE YIDDISH DOUBLE VAV
+    '\u05f1'   #  0xD5 -> HEBREW LIGATURE YIDDISH VAV YOD
+    '\u05f2'   #  0xD6 -> HEBREW LIGATURE YIDDISH DOUBLE YOD
+    '\u05f3'   #  0xD7 -> HEBREW PUNCTUATION GERESH
+    '\u05f4'   #  0xD8 -> HEBREW PUNCTUATION GERSHAYIM
+    '\ufffe'   #  0xD9 -> UNDEFINED
+    '\ufffe'   #  0xDA -> UNDEFINED
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\ufffe'   #  0xDF -> UNDEFINED
+    '\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0xE1 -> HEBREW LETTER BET
+    '\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0xE3 -> HEBREW LETTER DALET
+    '\u05d4'   #  0xE4 -> HEBREW LETTER HE
+    '\u05d5'   #  0xE5 -> HEBREW LETTER VAV
+    '\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0xE7 -> HEBREW LETTER HET
+    '\u05d8'   #  0xE8 -> HEBREW LETTER TET
+    '\u05d9'   #  0xE9 -> HEBREW LETTER YOD
+    '\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0xEB -> HEBREW LETTER KAF
+    '\u05dc'   #  0xEC -> HEBREW LETTER LAMED
+    '\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0xEE -> HEBREW LETTER MEM
+    '\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0xF0 -> HEBREW LETTER NUN
+    '\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0xF4 -> HEBREW LETTER PE
+    '\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0xF7 -> HEBREW LETTER QOF
+    '\u05e8'   #  0xF8 -> HEBREW LETTER RESH
+    '\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0xFA -> HEBREW LETTER TAV
+    '\ufffe'   #  0xFB -> UNDEFINED
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\ufffe'   #  0xFF -> UNDEFINED
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1256.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1256.py
new file mode 100644
index 0000000..fd6afab
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1256.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1256 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1256',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\u067e'   #  0x81 -> ARABIC LETTER PEH
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0679'   #  0x8A -> ARABIC LETTER TTEH
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\u0686'   #  0x8D -> ARABIC LETTER TCHEH
+    '\u0698'   #  0x8E -> ARABIC LETTER JEH
+    '\u0688'   #  0x8F -> ARABIC LETTER DDAL
+    '\u06af'   #  0x90 -> ARABIC LETTER GAF
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u06a9'   #  0x98 -> ARABIC LETTER KEHEH
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0691'   #  0x9A -> ARABIC LETTER RREH
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\u200c'   #  0x9D -> ZERO WIDTH NON-JOINER
+    '\u200d'   #  0x9E -> ZERO WIDTH JOINER
+    '\u06ba'   #  0x9F -> ARABIC LETTER NOON GHUNNA
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u060c'   #  0xA1 -> ARABIC COMMA
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u06be'   #  0xAA -> ARABIC LETTER HEH DOACHASHMEE
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u061b'   #  0xBA -> ARABIC SEMICOLON
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\u06c1'   #  0xC0 -> ARABIC LETTER HEH GOAL
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0637'   #  0xD8 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD9 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xDA -> ARABIC LETTER AIN
+    '\u063a'   #  0xDB -> ARABIC LETTER GHAIN
+    '\u0640'   #  0xDC -> ARABIC TATWEEL
+    '\u0641'   #  0xDD -> ARABIC LETTER FEH
+    '\u0642'   #  0xDE -> ARABIC LETTER QAF
+    '\u0643'   #  0xDF -> ARABIC LETTER KAF
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\u0644'   #  0xE1 -> ARABIC LETTER LAM
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0645'   #  0xE3 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE4 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE5 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE6 -> ARABIC LETTER WAW
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0649'   #  0xEC -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xED -> ARABIC LETTER YEH
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u064b'   #  0xF0 -> ARABIC FATHATAN
+    '\u064c'   #  0xF1 -> ARABIC DAMMATAN
+    '\u064d'   #  0xF2 -> ARABIC KASRATAN
+    '\u064e'   #  0xF3 -> ARABIC FATHA
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u064f'   #  0xF5 -> ARABIC DAMMA
+    '\u0650'   #  0xF6 -> ARABIC KASRA
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0651'   #  0xF8 -> ARABIC SHADDA
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\u0652'   #  0xFA -> ARABIC SUKUN
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1257.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1257.py
new file mode 100644
index 0000000..9ebc90d
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1257.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1257 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1257',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\xa8'     #  0x8D -> DIAERESIS
+    '\u02c7'   #  0x8E -> CARON
+    '\xb8'     #  0x8F -> CEDILLA
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\xaf'     #  0x9D -> MACRON
+    '\u02db'   #  0x9E -> OGONEK
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'   #  0xA1 -> UNDEFINED
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'   #  0xA5 -> UNDEFINED
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xe6'     #  0xBF -> LATIN SMALL LETTER AE
+    '\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
+    '\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
+    '\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
+    '\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
+    '\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
+    '\u02d9'   #  0xFF -> DOT ABOVE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp1258.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp1258.py
new file mode 100644
index 0000000..784378a
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp1258.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp1258 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp1258',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0300'   #  0xCC -> COMBINING GRAVE ACCENT
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u0309'   #  0xD2 -> COMBINING HOOK ABOVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u01a0'   #  0xD5 -> LATIN CAPITAL LETTER O WITH HORN
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u01af'   #  0xDD -> LATIN CAPITAL LETTER U WITH HORN
+    '\u0303'   #  0xDE -> COMBINING TILDE
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0301'   #  0xEC -> COMBINING ACUTE ACCENT
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\u0323'   #  0xF2 -> COMBINING DOT BELOW
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u01a1'   #  0xF5 -> LATIN SMALL LETTER O WITH HORN
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u01b0'   #  0xFD -> LATIN SMALL LETTER U WITH HORN
+    '\u20ab'   #  0xFE -> DONG SIGN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp273.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp273.py
new file mode 100644
index 0000000..69c6d77
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp273.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp273 generated from 'python-mappings/CP273.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp273',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'      #  0x00 -> NULL (NUL)
+    '\x01'      #  0x01 -> START OF HEADING (SOH)
+    '\x02'      #  0x02 -> START OF TEXT (STX)
+    '\x03'      #  0x03 -> END OF TEXT (ETX)
+    '\x9c'      #  0x04 -> STRING TERMINATOR (ST)
+    '\t'        #  0x05 -> CHARACTER TABULATION (HT)
+    '\x86'      #  0x06 -> START OF SELECTED AREA (SSA)
+    '\x7f'      #  0x07 -> DELETE (DEL)
+    '\x97'      #  0x08 -> END OF GUARDED AREA (EPA)
+    '\x8d'      #  0x09 -> REVERSE LINE FEED (RI)
+    '\x8e'      #  0x0A -> SINGLE-SHIFT TWO (SS2)
+    '\x0b'      #  0x0B -> LINE TABULATION (VT)
+    '\x0c'      #  0x0C -> FORM FEED (FF)
+    '\r'        #  0x0D -> CARRIAGE RETURN (CR)
+    '\x0e'      #  0x0E -> SHIFT OUT (SO)
+    '\x0f'      #  0x0F -> SHIFT IN (SI)
+    '\x10'      #  0x10 -> DATALINK ESCAPE (DLE)
+    '\x11'      #  0x11 -> DEVICE CONTROL ONE (DC1)
+    '\x12'      #  0x12 -> DEVICE CONTROL TWO (DC2)
+    '\x13'      #  0x13 -> DEVICE CONTROL THREE (DC3)
+    '\x9d'      #  0x14 -> OPERATING SYSTEM COMMAND (OSC)
+    '\x85'      #  0x15 -> NEXT LINE (NEL)
+    '\x08'      #  0x16 -> BACKSPACE (BS)
+    '\x87'      #  0x17 -> END OF SELECTED AREA (ESA)
+    '\x18'      #  0x18 -> CANCEL (CAN)
+    '\x19'      #  0x19 -> END OF MEDIUM (EM)
+    '\x92'      #  0x1A -> PRIVATE USE TWO (PU2)
+    '\x8f'      #  0x1B -> SINGLE-SHIFT THREE (SS3)
+    '\x1c'      #  0x1C -> FILE SEPARATOR (IS4)
+    '\x1d'      #  0x1D -> GROUP SEPARATOR (IS3)
+    '\x1e'      #  0x1E -> RECORD SEPARATOR (IS2)
+    '\x1f'      #  0x1F -> UNIT SEPARATOR (IS1)
+    '\x80'      #  0x20 -> PADDING CHARACTER (PAD)
+    '\x81'      #  0x21 -> HIGH OCTET PRESET (HOP)
+    '\x82'      #  0x22 -> BREAK PERMITTED HERE (BPH)
+    '\x83'      #  0x23 -> NO BREAK HERE (NBH)
+    '\x84'      #  0x24 -> INDEX (IND)
+    '\n'        #  0x25 -> LINE FEED (LF)
+    '\x17'      #  0x26 -> END OF TRANSMISSION BLOCK (ETB)
+    '\x1b'      #  0x27 -> ESCAPE (ESC)
+    '\x88'      #  0x28 -> CHARACTER TABULATION SET (HTS)
+    '\x89'      #  0x29 -> CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
+    '\x8a'      #  0x2A -> LINE TABULATION SET (VTS)
+    '\x8b'      #  0x2B -> PARTIAL LINE FORWARD (PLD)
+    '\x8c'      #  0x2C -> PARTIAL LINE BACKWARD (PLU)
+    '\x05'      #  0x2D -> ENQUIRY (ENQ)
+    '\x06'      #  0x2E -> ACKNOWLEDGE (ACK)
+    '\x07'      #  0x2F -> BELL (BEL)
+    '\x90'      #  0x30 -> DEVICE CONTROL STRING (DCS)
+    '\x91'      #  0x31 -> PRIVATE USE ONE (PU1)
+    '\x16'      #  0x32 -> SYNCHRONOUS IDLE (SYN)
+    '\x93'      #  0x33 -> SET TRANSMIT STATE (STS)
+    '\x94'      #  0x34 -> CANCEL CHARACTER (CCH)
+    '\x95'      #  0x35 -> MESSAGE WAITING (MW)
+    '\x96'      #  0x36 -> START OF GUARDED AREA (SPA)
+    '\x04'      #  0x37 -> END OF TRANSMISSION (EOT)
+    '\x98'      #  0x38 -> START OF STRING (SOS)
+    '\x99'      #  0x39 -> SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
+    '\x9a'      #  0x3A -> SINGLE CHARACTER INTRODUCER (SCI)
+    '\x9b'      #  0x3B -> CONTROL SEQUENCE INTRODUCER (CSI)
+    '\x14'      #  0x3C -> DEVICE CONTROL FOUR (DC4)
+    '\x15'      #  0x3D -> NEGATIVE ACKNOWLEDGE (NAK)
+    '\x9e'      #  0x3E -> PRIVACY MESSAGE (PM)
+    '\x1a'      #  0x3F -> SUBSTITUTE (SUB)
+    ' '         #  0x40 -> SPACE
+    '\xa0'      #  0x41 -> NO-BREAK SPACE
+    '\xe2'      #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '{'         #  0x43 -> LEFT CURLY BRACKET
+    '\xe0'      #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'      #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'      #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'      #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'      #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'      #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xc4'      #  0x4A -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '.'         #  0x4B -> FULL STOP
+    '<'         #  0x4C -> LESS-THAN SIGN
+    '('         #  0x4D -> LEFT PARENTHESIS
+    '+'         #  0x4E -> PLUS SIGN
+    '!'         #  0x4F -> EXCLAMATION MARK
+    '&'         #  0x50 -> AMPERSAND
+    '\xe9'      #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'      #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'      #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'      #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'      #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'      #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'      #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'      #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '~'         #  0x59 -> TILDE
+    '\xdc'      #  0x5A -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '$'         #  0x5B -> DOLLAR SIGN
+    '*'         #  0x5C -> ASTERISK
+    ')'         #  0x5D -> RIGHT PARENTHESIS
+    ';'         #  0x5E -> SEMICOLON
+    '^'         #  0x5F -> CIRCUMFLEX ACCENT
+    '-'         #  0x60 -> HYPHEN-MINUS
+    '/'         #  0x61 -> SOLIDUS
+    '\xc2'      #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '['         #  0x63 -> LEFT SQUARE BRACKET
+    '\xc0'      #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'      #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'      #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'      #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'      #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'      #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xf6'      #  0x6A -> LATIN SMALL LETTER O WITH DIAERESIS
+    ','         #  0x6B -> COMMA
+    '%'         #  0x6C -> PERCENT SIGN
+    '_'         #  0x6D -> LOW LINE
+    '>'         #  0x6E -> GREATER-THAN SIGN
+    '?'         #  0x6F -> QUESTION MARK
+    '\xf8'      #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'      #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'      #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'      #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'      #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'      #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'      #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'      #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'      #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'         #  0x79 -> GRAVE ACCENT
+    ':'         #  0x7A -> COLON
+    '#'         #  0x7B -> NUMBER SIGN
+    '\xa7'      #  0x7C -> SECTION SIGN
+    "'"         #  0x7D -> APOSTROPHE
+    '='         #  0x7E -> EQUALS SIGN
+    '"'         #  0x7F -> QUOTATION MARK
+    '\xd8'      #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'         #  0x81 -> LATIN SMALL LETTER A
+    'b'         #  0x82 -> LATIN SMALL LETTER B
+    'c'         #  0x83 -> LATIN SMALL LETTER C
+    'd'         #  0x84 -> LATIN SMALL LETTER D
+    'e'         #  0x85 -> LATIN SMALL LETTER E
+    'f'         #  0x86 -> LATIN SMALL LETTER F
+    'g'         #  0x87 -> LATIN SMALL LETTER G
+    'h'         #  0x88 -> LATIN SMALL LETTER H
+    'i'         #  0x89 -> LATIN SMALL LETTER I
+    '\xab'      #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'      #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'      #  0x8C -> LATIN SMALL LETTER ETH (Icelandic)
+    '\xfd'      #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'      #  0x8E -> LATIN SMALL LETTER THORN (Icelandic)
+    '\xb1'      #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'      #  0x90 -> DEGREE SIGN
+    'j'         #  0x91 -> LATIN SMALL LETTER J
+    'k'         #  0x92 -> LATIN SMALL LETTER K
+    'l'         #  0x93 -> LATIN SMALL LETTER L
+    'm'         #  0x94 -> LATIN SMALL LETTER M
+    'n'         #  0x95 -> LATIN SMALL LETTER N
+    'o'         #  0x96 -> LATIN SMALL LETTER O
+    'p'         #  0x97 -> LATIN SMALL LETTER P
+    'q'         #  0x98 -> LATIN SMALL LETTER Q
+    'r'         #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'      #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'      #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'      #  0x9C -> LATIN SMALL LETTER AE
+    '\xb8'      #  0x9D -> CEDILLA
+    '\xc6'      #  0x9E -> LATIN CAPITAL LETTER AE
+    '\xa4'      #  0x9F -> CURRENCY SIGN
+    '\xb5'      #  0xA0 -> MICRO SIGN
+    '\xdf'      #  0xA1 -> LATIN SMALL LETTER SHARP S (German)
+    's'         #  0xA2 -> LATIN SMALL LETTER S
+    't'         #  0xA3 -> LATIN SMALL LETTER T
+    'u'         #  0xA4 -> LATIN SMALL LETTER U
+    'v'         #  0xA5 -> LATIN SMALL LETTER V
+    'w'         #  0xA6 -> LATIN SMALL LETTER W
+    'x'         #  0xA7 -> LATIN SMALL LETTER X
+    'y'         #  0xA8 -> LATIN SMALL LETTER Y
+    'z'         #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'      #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'      #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'      #  0xAC -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\xdd'      #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'      #  0xAE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xae'      #  0xAF -> REGISTERED SIGN
+    '\xa2'      #  0xB0 -> CENT SIGN
+    '\xa3'      #  0xB1 -> POUND SIGN
+    '\xa5'      #  0xB2 -> YEN SIGN
+    '\xb7'      #  0xB3 -> MIDDLE DOT
+    '\xa9'      #  0xB4 -> COPYRIGHT SIGN
+    '@'         #  0xB5 -> COMMERCIAL AT
+    '\xb6'      #  0xB6 -> PILCROW SIGN
+    '\xbc'      #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'      #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'      #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '\xac'      #  0xBA -> NOT SIGN
+    '|'         #  0xBB -> VERTICAL LINE
+    '\u203e'    #  0xBC -> OVERLINE
+    '\xa8'      #  0xBD -> DIAERESIS
+    '\xb4'      #  0xBE -> ACUTE ACCENT
+    '\xd7'      #  0xBF -> MULTIPLICATION SIGN
+    '\xe4'      #  0xC0 -> LATIN SMALL LETTER A WITH DIAERESIS
+    'A'         #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'         #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'         #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'         #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'         #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'         #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'         #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'         #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'         #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'      #  0xCA -> SOFT HYPHEN
+    '\xf4'      #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xa6'      #  0xCC -> BROKEN BAR
+    '\xf2'      #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'      #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'      #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '\xfc'      #  0xD0 -> LATIN SMALL LETTER U WITH DIAERESIS
+    'J'         #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'         #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'         #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'         #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'         #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'         #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'         #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'         #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'         #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'      #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'      #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '}'         #  0xDC -> RIGHT CURLY BRACKET
+    '\xf9'      #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'      #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'      #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'      #  0xE0 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xf7'      #  0xE1 -> DIVISION SIGN
+    'S'         #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'         #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'         #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'         #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'         #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'         #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'         #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'         #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'      #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'      #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\\'        #  0xEC -> REVERSE SOLIDUS
+    '\xd2'      #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'      #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'      #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'         #  0xF0 -> DIGIT ZERO
+    '1'         #  0xF1 -> DIGIT ONE
+    '2'         #  0xF2 -> DIGIT TWO
+    '3'         #  0xF3 -> DIGIT THREE
+    '4'         #  0xF4 -> DIGIT FOUR
+    '5'         #  0xF5 -> DIGIT FIVE
+    '6'         #  0xF6 -> DIGIT SIX
+    '7'         #  0xF7 -> DIGIT SEVEN
+    '8'         #  0xF8 -> DIGIT EIGHT
+    '9'         #  0xF9 -> DIGIT NINE
+    '\xb3'      #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'      #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    ']'         #  0xFC -> RIGHT SQUARE BRACKET
+    '\xd9'      #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'      #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'      #  0xFF -> APPLICATION PROGRAM COMMAND (APC)
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp424.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp424.py
new file mode 100644
index 0000000..6753daf
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp424.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp424 generated from 'MAPPINGS/VENDORS/MISC/CP424.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp424',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> SELECT
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> REQUIRED NEW LINE
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> GRAPHIC ESCAPE
+    '\x8d'     #  0x09 -> SUPERSCRIPT
+    '\x8e'     #  0x0A -> REPEAT
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> RESTORE/ENABLE PRESENTATION
+    '\x85'     #  0x15 -> NEW LINE
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> PROGRAM OPERATOR COMMUNICATION
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> UNIT BACK SPACE
+    '\x8f'     #  0x1B -> CUSTOMER USE ONE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> DIGIT SELECT
+    '\x81'     #  0x21 -> START OF SIGNIFICANCE
+    '\x82'     #  0x22 -> FIELD SEPARATOR
+    '\x83'     #  0x23 -> WORD UNDERSCORE
+    '\x84'     #  0x24 -> BYPASS OR INHIBIT PRESENTATION
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> SET ATTRIBUTE
+    '\x89'     #  0x29 -> START FIELD EXTENDED
+    '\x8a'     #  0x2A -> SET MODE OR SWITCH
+    '\x8b'     #  0x2B -> CONTROL SEQUENCE PREFIX
+    '\x8c'     #  0x2C -> MODIFY FIELD ATTRIBUTE
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> <reserved>
+    '\x91'     #  0x31 -> <reserved>
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> INDEX RETURN
+    '\x94'     #  0x34 -> PRESENTATION POSITION
+    '\x95'     #  0x35 -> TRANSPARENT
+    '\x96'     #  0x36 -> NUMERIC BACKSPACE
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> SUBSCRIPT
+    '\x99'     #  0x39 -> INDENT TABULATION
+    '\x9a'     #  0x3A -> REVERSE FORM FEED
+    '\x9b'     #  0x3B -> CUSTOMER USE THREE
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> <reserved>
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\u05d0'   #  0x41 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x42 -> HEBREW LETTER BET
+    '\u05d2'   #  0x43 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x44 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x45 -> HEBREW LETTER HE
+    '\u05d5'   #  0x46 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x47 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x48 -> HEBREW LETTER HET
+    '\u05d8'   #  0x49 -> HEBREW LETTER TET
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\u05d9'   #  0x51 -> HEBREW LETTER YOD
+    '\u05da'   #  0x52 -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x53 -> HEBREW LETTER KAF
+    '\u05dc'   #  0x54 -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x55 -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x56 -> HEBREW LETTER MEM
+    '\u05df'   #  0x57 -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x58 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x59 -> HEBREW LETTER SAMEKH
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\u05e2'   #  0x62 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x63 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x64 -> HEBREW LETTER PE
+    '\u05e5'   #  0x65 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x66 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x67 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x68 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x69 -> HEBREW LETTER SHIN
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\ufffe'   #  0x70 -> UNDEFINED
+    '\u05ea'   #  0x71 -> HEBREW LETTER TAV
+    '\ufffe'   #  0x72 -> UNDEFINED
+    '\ufffe'   #  0x73 -> UNDEFINED
+    '\xa0'     #  0x74 -> NO-BREAK SPACE
+    '\ufffe'   #  0x75 -> UNDEFINED
+    '\ufffe'   #  0x76 -> UNDEFINED
+    '\ufffe'   #  0x77 -> UNDEFINED
+    '\u2017'   #  0x78 -> DOUBLE LOW LINE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\ufffe'   #  0x80 -> UNDEFINED
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\xb8'     #  0x9D -> CEDILLA
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\ufffe'   #  0xAA -> UNDEFINED
+    '\ufffe'   #  0xAB -> UNDEFINED
+    '\ufffe'   #  0xAC -> UNDEFINED
+    '\ufffe'   #  0xAD -> UNDEFINED
+    '\ufffe'   #  0xAE -> UNDEFINED
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\ufffe'   #  0xCB -> UNDEFINED
+    '\ufffe'   #  0xCC -> UNDEFINED
+    '\ufffe'   #  0xCD -> UNDEFINED
+    '\ufffe'   #  0xCE -> UNDEFINED
+    '\ufffe'   #  0xCF -> UNDEFINED
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\ufffe'   #  0xDF -> UNDEFINED
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\ufffe'   #  0xEB -> UNDEFINED
+    '\ufffe'   #  0xEC -> UNDEFINED
+    '\ufffe'   #  0xED -> UNDEFINED
+    '\ufffe'   #  0xEE -> UNDEFINED
+    '\ufffe'   #  0xEF -> UNDEFINED
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\ufffe'   #  0xFB -> UNDEFINED
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\ufffe'   #  0xFD -> UNDEFINED
+    '\ufffe'   #  0xFE -> UNDEFINED
+    '\x9f'     #  0xFF -> EIGHT ONES
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp437.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp437.py
new file mode 100644
index 0000000..b6c75e2
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp437.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec cp437 generated from 'VENDORS/MICSFT/PC/CP437.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp437',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00ff,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00a2,     #  CENT SIGN
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00a5,     #  YEN SIGN
+    0x009e: 0x20a7,     #  PESETA SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x2310,     #  REVERSED NOT SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xa5'     #  0x009d -> YEN SIGN
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x009b,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a5: 0x009d,     #  YEN SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ec: 0x008d,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00ff: 0x0098,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x20a7: 0x009e,     #  PESETA SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2310: 0x00a9,     #  REVERSED NOT SIGN
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp500.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp500.py
new file mode 100644
index 0000000..5f61535
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp500.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp500 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp500',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '['        #  0x4A -> LEFT SQUARE BRACKET
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    ']'        #  0x5A -> RIGHT SQUARE BRACKET
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '\xa2'     #  0xB0 -> CENT SIGN
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '\xac'     #  0xBA -> NOT SIGN
+    '|'        #  0xBB -> VERTICAL LINE
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp720.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp720.py
new file mode 100644
index 0000000..96d6096
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp720.py
@@ -0,0 +1,309 @@
+"""Python Character Mapping Codec cp720 generated on Windows:
+Vista 6.0.6002 SP2 Multiprocessor Free with the command:
+  python Tools/unicode/genwincodec.py 720
+"""#"
+
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp720',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'      #  0x00 -> CONTROL CHARACTER
+    '\x01'      #  0x01 -> CONTROL CHARACTER
+    '\x02'      #  0x02 -> CONTROL CHARACTER
+    '\x03'      #  0x03 -> CONTROL CHARACTER
+    '\x04'      #  0x04 -> CONTROL CHARACTER
+    '\x05'      #  0x05 -> CONTROL CHARACTER
+    '\x06'      #  0x06 -> CONTROL CHARACTER
+    '\x07'      #  0x07 -> CONTROL CHARACTER
+    '\x08'      #  0x08 -> CONTROL CHARACTER
+    '\t'        #  0x09 -> CONTROL CHARACTER
+    '\n'        #  0x0A -> CONTROL CHARACTER
+    '\x0b'      #  0x0B -> CONTROL CHARACTER
+    '\x0c'      #  0x0C -> CONTROL CHARACTER
+    '\r'        #  0x0D -> CONTROL CHARACTER
+    '\x0e'      #  0x0E -> CONTROL CHARACTER
+    '\x0f'      #  0x0F -> CONTROL CHARACTER
+    '\x10'      #  0x10 -> CONTROL CHARACTER
+    '\x11'      #  0x11 -> CONTROL CHARACTER
+    '\x12'      #  0x12 -> CONTROL CHARACTER
+    '\x13'      #  0x13 -> CONTROL CHARACTER
+    '\x14'      #  0x14 -> CONTROL CHARACTER
+    '\x15'      #  0x15 -> CONTROL CHARACTER
+    '\x16'      #  0x16 -> CONTROL CHARACTER
+    '\x17'      #  0x17 -> CONTROL CHARACTER
+    '\x18'      #  0x18 -> CONTROL CHARACTER
+    '\x19'      #  0x19 -> CONTROL CHARACTER
+    '\x1a'      #  0x1A -> CONTROL CHARACTER
+    '\x1b'      #  0x1B -> CONTROL CHARACTER
+    '\x1c'      #  0x1C -> CONTROL CHARACTER
+    '\x1d'      #  0x1D -> CONTROL CHARACTER
+    '\x1e'      #  0x1E -> CONTROL CHARACTER
+    '\x1f'      #  0x1F -> CONTROL CHARACTER
+    ' '         #  0x20 -> SPACE
+    '!'         #  0x21 -> EXCLAMATION MARK
+    '"'         #  0x22 -> QUOTATION MARK
+    '#'         #  0x23 -> NUMBER SIGN
+    '$'         #  0x24 -> DOLLAR SIGN
+    '%'         #  0x25 -> PERCENT SIGN
+    '&'         #  0x26 -> AMPERSAND
+    "'"         #  0x27 -> APOSTROPHE
+    '('         #  0x28 -> LEFT PARENTHESIS
+    ')'         #  0x29 -> RIGHT PARENTHESIS
+    '*'         #  0x2A -> ASTERISK
+    '+'         #  0x2B -> PLUS SIGN
+    ','         #  0x2C -> COMMA
+    '-'         #  0x2D -> HYPHEN-MINUS
+    '.'         #  0x2E -> FULL STOP
+    '/'         #  0x2F -> SOLIDUS
+    '0'         #  0x30 -> DIGIT ZERO
+    '1'         #  0x31 -> DIGIT ONE
+    '2'         #  0x32 -> DIGIT TWO
+    '3'         #  0x33 -> DIGIT THREE
+    '4'         #  0x34 -> DIGIT FOUR
+    '5'         #  0x35 -> DIGIT FIVE
+    '6'         #  0x36 -> DIGIT SIX
+    '7'         #  0x37 -> DIGIT SEVEN
+    '8'         #  0x38 -> DIGIT EIGHT
+    '9'         #  0x39 -> DIGIT NINE
+    ':'         #  0x3A -> COLON
+    ';'         #  0x3B -> SEMICOLON
+    '<'         #  0x3C -> LESS-THAN SIGN
+    '='         #  0x3D -> EQUALS SIGN
+    '>'         #  0x3E -> GREATER-THAN SIGN
+    '?'         #  0x3F -> QUESTION MARK
+    '@'         #  0x40 -> COMMERCIAL AT
+    'A'         #  0x41 -> LATIN CAPITAL LETTER A
+    'B'         #  0x42 -> LATIN CAPITAL LETTER B
+    'C'         #  0x43 -> LATIN CAPITAL LETTER C
+    'D'         #  0x44 -> LATIN CAPITAL LETTER D
+    'E'         #  0x45 -> LATIN CAPITAL LETTER E
+    'F'         #  0x46 -> LATIN CAPITAL LETTER F
+    'G'         #  0x47 -> LATIN CAPITAL LETTER G
+    'H'         #  0x48 -> LATIN CAPITAL LETTER H
+    'I'         #  0x49 -> LATIN CAPITAL LETTER I
+    'J'         #  0x4A -> LATIN CAPITAL LETTER J
+    'K'         #  0x4B -> LATIN CAPITAL LETTER K
+    'L'         #  0x4C -> LATIN CAPITAL LETTER L
+    'M'         #  0x4D -> LATIN CAPITAL LETTER M
+    'N'         #  0x4E -> LATIN CAPITAL LETTER N
+    'O'         #  0x4F -> LATIN CAPITAL LETTER O
+    'P'         #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'         #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'         #  0x52 -> LATIN CAPITAL LETTER R
+    'S'         #  0x53 -> LATIN CAPITAL LETTER S
+    'T'         #  0x54 -> LATIN CAPITAL LETTER T
+    'U'         #  0x55 -> LATIN CAPITAL LETTER U
+    'V'         #  0x56 -> LATIN CAPITAL LETTER V
+    'W'         #  0x57 -> LATIN CAPITAL LETTER W
+    'X'         #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'         #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'         #  0x5A -> LATIN CAPITAL LETTER Z
+    '['         #  0x5B -> LEFT SQUARE BRACKET
+    '\\'        #  0x5C -> REVERSE SOLIDUS
+    ']'         #  0x5D -> RIGHT SQUARE BRACKET
+    '^'         #  0x5E -> CIRCUMFLEX ACCENT
+    '_'         #  0x5F -> LOW LINE
+    '`'         #  0x60 -> GRAVE ACCENT
+    'a'         #  0x61 -> LATIN SMALL LETTER A
+    'b'         #  0x62 -> LATIN SMALL LETTER B
+    'c'         #  0x63 -> LATIN SMALL LETTER C
+    'd'         #  0x64 -> LATIN SMALL LETTER D
+    'e'         #  0x65 -> LATIN SMALL LETTER E
+    'f'         #  0x66 -> LATIN SMALL LETTER F
+    'g'         #  0x67 -> LATIN SMALL LETTER G
+    'h'         #  0x68 -> LATIN SMALL LETTER H
+    'i'         #  0x69 -> LATIN SMALL LETTER I
+    'j'         #  0x6A -> LATIN SMALL LETTER J
+    'k'         #  0x6B -> LATIN SMALL LETTER K
+    'l'         #  0x6C -> LATIN SMALL LETTER L
+    'm'         #  0x6D -> LATIN SMALL LETTER M
+    'n'         #  0x6E -> LATIN SMALL LETTER N
+    'o'         #  0x6F -> LATIN SMALL LETTER O
+    'p'         #  0x70 -> LATIN SMALL LETTER P
+    'q'         #  0x71 -> LATIN SMALL LETTER Q
+    'r'         #  0x72 -> LATIN SMALL LETTER R
+    's'         #  0x73 -> LATIN SMALL LETTER S
+    't'         #  0x74 -> LATIN SMALL LETTER T
+    'u'         #  0x75 -> LATIN SMALL LETTER U
+    'v'         #  0x76 -> LATIN SMALL LETTER V
+    'w'         #  0x77 -> LATIN SMALL LETTER W
+    'x'         #  0x78 -> LATIN SMALL LETTER X
+    'y'         #  0x79 -> LATIN SMALL LETTER Y
+    'z'         #  0x7A -> LATIN SMALL LETTER Z
+    '{'         #  0x7B -> LEFT CURLY BRACKET
+    '|'         #  0x7C -> VERTICAL LINE
+    '}'         #  0x7D -> RIGHT CURLY BRACKET
+    '~'         #  0x7E -> TILDE
+    '\x7f'      #  0x7F -> CONTROL CHARACTER
+    '\x80'
+    '\x81'
+    '\xe9'      #  0x82 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'      #  0x83 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\x84'
+    '\xe0'      #  0x85 -> LATIN SMALL LETTER A WITH GRAVE
+    '\x86'
+    '\xe7'      #  0x87 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'      #  0x88 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'      #  0x89 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'      #  0x8A -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'      #  0x8B -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'      #  0x8C -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\x8d'
+    '\x8e'
+    '\x8f'
+    '\x90'
+    '\u0651'    #  0x91 -> ARABIC SHADDA
+    '\u0652'    #  0x92 -> ARABIC SUKUN
+    '\xf4'      #  0x93 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xa4'      #  0x94 -> CURRENCY SIGN
+    '\u0640'    #  0x95 -> ARABIC TATWEEL
+    '\xfb'      #  0x96 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'      #  0x97 -> LATIN SMALL LETTER U WITH GRAVE
+    '\u0621'    #  0x98 -> ARABIC LETTER HAMZA
+    '\u0622'    #  0x99 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'    #  0x9A -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'    #  0x9B -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\xa3'      #  0x9C -> POUND SIGN
+    '\u0625'    #  0x9D -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'    #  0x9E -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'    #  0x9F -> ARABIC LETTER ALEF
+    '\u0628'    #  0xA0 -> ARABIC LETTER BEH
+    '\u0629'    #  0xA1 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'    #  0xA2 -> ARABIC LETTER TEH
+    '\u062b'    #  0xA3 -> ARABIC LETTER THEH
+    '\u062c'    #  0xA4 -> ARABIC LETTER JEEM
+    '\u062d'    #  0xA5 -> ARABIC LETTER HAH
+    '\u062e'    #  0xA6 -> ARABIC LETTER KHAH
+    '\u062f'    #  0xA7 -> ARABIC LETTER DAL
+    '\u0630'    #  0xA8 -> ARABIC LETTER THAL
+    '\u0631'    #  0xA9 -> ARABIC LETTER REH
+    '\u0632'    #  0xAA -> ARABIC LETTER ZAIN
+    '\u0633'    #  0xAB -> ARABIC LETTER SEEN
+    '\u0634'    #  0xAC -> ARABIC LETTER SHEEN
+    '\u0635'    #  0xAD -> ARABIC LETTER SAD
+    '\xab'      #  0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'      #  0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'    #  0xB0 -> LIGHT SHADE
+    '\u2592'    #  0xB1 -> MEDIUM SHADE
+    '\u2593'    #  0xB2 -> DARK SHADE
+    '\u2502'    #  0xB3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'    #  0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'    #  0xB5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'    #  0xB6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'    #  0xB7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'    #  0xB8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'    #  0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'    #  0xBA -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'    #  0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'    #  0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'    #  0xBD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'    #  0xBE -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'    #  0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'    #  0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'    #  0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'    #  0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'    #  0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'    #  0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'    #  0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'    #  0xC6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'    #  0xC7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'    #  0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'    #  0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'    #  0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'    #  0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'    #  0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'    #  0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'    #  0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'    #  0xCF -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'    #  0xD0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'    #  0xD1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'    #  0xD2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'    #  0xD3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'    #  0xD4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'    #  0xD5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'    #  0xD6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'    #  0xD7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'    #  0xD8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'    #  0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'    #  0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'    #  0xDB -> FULL BLOCK
+    '\u2584'    #  0xDC -> LOWER HALF BLOCK
+    '\u258c'    #  0xDD -> LEFT HALF BLOCK
+    '\u2590'    #  0xDE -> RIGHT HALF BLOCK
+    '\u2580'    #  0xDF -> UPPER HALF BLOCK
+    '\u0636'    #  0xE0 -> ARABIC LETTER DAD
+    '\u0637'    #  0xE1 -> ARABIC LETTER TAH
+    '\u0638'    #  0xE2 -> ARABIC LETTER ZAH
+    '\u0639'    #  0xE3 -> ARABIC LETTER AIN
+    '\u063a'    #  0xE4 -> ARABIC LETTER GHAIN
+    '\u0641'    #  0xE5 -> ARABIC LETTER FEH
+    '\xb5'      #  0xE6 -> MICRO SIGN
+    '\u0642'    #  0xE7 -> ARABIC LETTER QAF
+    '\u0643'    #  0xE8 -> ARABIC LETTER KAF
+    '\u0644'    #  0xE9 -> ARABIC LETTER LAM
+    '\u0645'    #  0xEA -> ARABIC LETTER MEEM
+    '\u0646'    #  0xEB -> ARABIC LETTER NOON
+    '\u0647'    #  0xEC -> ARABIC LETTER HEH
+    '\u0648'    #  0xED -> ARABIC LETTER WAW
+    '\u0649'    #  0xEE -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'    #  0xEF -> ARABIC LETTER YEH
+    '\u2261'    #  0xF0 -> IDENTICAL TO
+    '\u064b'    #  0xF1 -> ARABIC FATHATAN
+    '\u064c'    #  0xF2 -> ARABIC DAMMATAN
+    '\u064d'    #  0xF3 -> ARABIC KASRATAN
+    '\u064e'    #  0xF4 -> ARABIC FATHA
+    '\u064f'    #  0xF5 -> ARABIC DAMMA
+    '\u0650'    #  0xF6 -> ARABIC KASRA
+    '\u2248'    #  0xF7 -> ALMOST EQUAL TO
+    '\xb0'      #  0xF8 -> DEGREE SIGN
+    '\u2219'    #  0xF9 -> BULLET OPERATOR
+    '\xb7'      #  0xFA -> MIDDLE DOT
+    '\u221a'    #  0xFB -> SQUARE ROOT
+    '\u207f'    #  0xFC -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'      #  0xFD -> SUPERSCRIPT TWO
+    '\u25a0'    #  0xFE -> BLACK SQUARE
+    '\xa0'      #  0xFF -> NO-BREAK SPACE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp737.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp737.py
new file mode 100644
index 0000000..9685bae
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp737.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec cp737 generated from 'VENDORS/MICSFT/PC/CP737.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp737',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x0391,     #  GREEK CAPITAL LETTER ALPHA
+    0x0081: 0x0392,     #  GREEK CAPITAL LETTER BETA
+    0x0082: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x0083: 0x0394,     #  GREEK CAPITAL LETTER DELTA
+    0x0084: 0x0395,     #  GREEK CAPITAL LETTER EPSILON
+    0x0085: 0x0396,     #  GREEK CAPITAL LETTER ZETA
+    0x0086: 0x0397,     #  GREEK CAPITAL LETTER ETA
+    0x0087: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x0088: 0x0399,     #  GREEK CAPITAL LETTER IOTA
+    0x0089: 0x039a,     #  GREEK CAPITAL LETTER KAPPA
+    0x008a: 0x039b,     #  GREEK CAPITAL LETTER LAMDA
+    0x008b: 0x039c,     #  GREEK CAPITAL LETTER MU
+    0x008c: 0x039d,     #  GREEK CAPITAL LETTER NU
+    0x008d: 0x039e,     #  GREEK CAPITAL LETTER XI
+    0x008e: 0x039f,     #  GREEK CAPITAL LETTER OMICRON
+    0x008f: 0x03a0,     #  GREEK CAPITAL LETTER PI
+    0x0090: 0x03a1,     #  GREEK CAPITAL LETTER RHO
+    0x0091: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x0092: 0x03a4,     #  GREEK CAPITAL LETTER TAU
+    0x0093: 0x03a5,     #  GREEK CAPITAL LETTER UPSILON
+    0x0094: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x0095: 0x03a7,     #  GREEK CAPITAL LETTER CHI
+    0x0096: 0x03a8,     #  GREEK CAPITAL LETTER PSI
+    0x0097: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x0098: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x0099: 0x03b2,     #  GREEK SMALL LETTER BETA
+    0x009a: 0x03b3,     #  GREEK SMALL LETTER GAMMA
+    0x009b: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x009c: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x009d: 0x03b6,     #  GREEK SMALL LETTER ZETA
+    0x009e: 0x03b7,     #  GREEK SMALL LETTER ETA
+    0x009f: 0x03b8,     #  GREEK SMALL LETTER THETA
+    0x00a0: 0x03b9,     #  GREEK SMALL LETTER IOTA
+    0x00a1: 0x03ba,     #  GREEK SMALL LETTER KAPPA
+    0x00a2: 0x03bb,     #  GREEK SMALL LETTER LAMDA
+    0x00a3: 0x03bc,     #  GREEK SMALL LETTER MU
+    0x00a4: 0x03bd,     #  GREEK SMALL LETTER NU
+    0x00a5: 0x03be,     #  GREEK SMALL LETTER XI
+    0x00a6: 0x03bf,     #  GREEK SMALL LETTER OMICRON
+    0x00a7: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00a8: 0x03c1,     #  GREEK SMALL LETTER RHO
+    0x00a9: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00aa: 0x03c2,     #  GREEK SMALL LETTER FINAL SIGMA
+    0x00ab: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00ac: 0x03c5,     #  GREEK SMALL LETTER UPSILON
+    0x00ad: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ae: 0x03c7,     #  GREEK SMALL LETTER CHI
+    0x00af: 0x03c8,     #  GREEK SMALL LETTER PSI
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03c9,     #  GREEK SMALL LETTER OMEGA
+    0x00e1: 0x03ac,     #  GREEK SMALL LETTER ALPHA WITH TONOS
+    0x00e2: 0x03ad,     #  GREEK SMALL LETTER EPSILON WITH TONOS
+    0x00e3: 0x03ae,     #  GREEK SMALL LETTER ETA WITH TONOS
+    0x00e4: 0x03ca,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    0x00e5: 0x03af,     #  GREEK SMALL LETTER IOTA WITH TONOS
+    0x00e6: 0x03cc,     #  GREEK SMALL LETTER OMICRON WITH TONOS
+    0x00e7: 0x03cd,     #  GREEK SMALL LETTER UPSILON WITH TONOS
+    0x00e8: 0x03cb,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    0x00e9: 0x03ce,     #  GREEK SMALL LETTER OMEGA WITH TONOS
+    0x00ea: 0x0386,     #  GREEK CAPITAL LETTER ALPHA WITH TONOS
+    0x00eb: 0x0388,     #  GREEK CAPITAL LETTER EPSILON WITH TONOS
+    0x00ec: 0x0389,     #  GREEK CAPITAL LETTER ETA WITH TONOS
+    0x00ed: 0x038a,     #  GREEK CAPITAL LETTER IOTA WITH TONOS
+    0x00ee: 0x038c,     #  GREEK CAPITAL LETTER OMICRON WITH TONOS
+    0x00ef: 0x038e,     #  GREEK CAPITAL LETTER UPSILON WITH TONOS
+    0x00f0: 0x038f,     #  GREEK CAPITAL LETTER OMEGA WITH TONOS
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x03aa,     #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    0x00f5: 0x03ab,     #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0391'   #  0x0080 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x0081 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x0082 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x0083 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x0084 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x0085 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x0086 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0x0087 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x0088 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0x0089 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x008a -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x008b -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x008c -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0x008d -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x008e -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0x008f -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x0090 -> GREEK CAPITAL LETTER RHO
+    '\u03a3'   #  0x0091 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0x0092 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x0093 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x0094 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x0095 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x0096 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x0097 -> GREEK CAPITAL LETTER OMEGA
+    '\u03b1'   #  0x0098 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x0099 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x009a -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0x009b -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x009c -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0x009d -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0x009e -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x009f -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x00a0 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x00a1 -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x00a2 -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x00a3 -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0x00a4 -> GREEK SMALL LETTER NU
+    '\u03be'   #  0x00a5 -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0x00a6 -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0x00a7 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0x00a8 -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0x00a9 -> GREEK SMALL LETTER SIGMA
+    '\u03c2'   #  0x00aa -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0x00ab -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0x00ac -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0x00ad -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0x00ae -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0x00af -> GREEK SMALL LETTER PSI
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03c9'   #  0x00e0 -> GREEK SMALL LETTER OMEGA
+    '\u03ac'   #  0x00e1 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0x00e2 -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0x00e3 -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03ca'   #  0x00e4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03af'   #  0x00e5 -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0x00e6 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0x00e7 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03cb'   #  0x00e8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03ce'   #  0x00e9 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u0386'   #  0x00ea -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0x00eb -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0x00ec -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0x00ed -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0x00ee -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0x00ef -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0x00f0 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u03aa'   #  0x00f4 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0x00f5 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x0386: 0x00ea,     #  GREEK CAPITAL LETTER ALPHA WITH TONOS
+    0x0388: 0x00eb,     #  GREEK CAPITAL LETTER EPSILON WITH TONOS
+    0x0389: 0x00ec,     #  GREEK CAPITAL LETTER ETA WITH TONOS
+    0x038a: 0x00ed,     #  GREEK CAPITAL LETTER IOTA WITH TONOS
+    0x038c: 0x00ee,     #  GREEK CAPITAL LETTER OMICRON WITH TONOS
+    0x038e: 0x00ef,     #  GREEK CAPITAL LETTER UPSILON WITH TONOS
+    0x038f: 0x00f0,     #  GREEK CAPITAL LETTER OMEGA WITH TONOS
+    0x0391: 0x0080,     #  GREEK CAPITAL LETTER ALPHA
+    0x0392: 0x0081,     #  GREEK CAPITAL LETTER BETA
+    0x0393: 0x0082,     #  GREEK CAPITAL LETTER GAMMA
+    0x0394: 0x0083,     #  GREEK CAPITAL LETTER DELTA
+    0x0395: 0x0084,     #  GREEK CAPITAL LETTER EPSILON
+    0x0396: 0x0085,     #  GREEK CAPITAL LETTER ZETA
+    0x0397: 0x0086,     #  GREEK CAPITAL LETTER ETA
+    0x0398: 0x0087,     #  GREEK CAPITAL LETTER THETA
+    0x0399: 0x0088,     #  GREEK CAPITAL LETTER IOTA
+    0x039a: 0x0089,     #  GREEK CAPITAL LETTER KAPPA
+    0x039b: 0x008a,     #  GREEK CAPITAL LETTER LAMDA
+    0x039c: 0x008b,     #  GREEK CAPITAL LETTER MU
+    0x039d: 0x008c,     #  GREEK CAPITAL LETTER NU
+    0x039e: 0x008d,     #  GREEK CAPITAL LETTER XI
+    0x039f: 0x008e,     #  GREEK CAPITAL LETTER OMICRON
+    0x03a0: 0x008f,     #  GREEK CAPITAL LETTER PI
+    0x03a1: 0x0090,     #  GREEK CAPITAL LETTER RHO
+    0x03a3: 0x0091,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a4: 0x0092,     #  GREEK CAPITAL LETTER TAU
+    0x03a5: 0x0093,     #  GREEK CAPITAL LETTER UPSILON
+    0x03a6: 0x0094,     #  GREEK CAPITAL LETTER PHI
+    0x03a7: 0x0095,     #  GREEK CAPITAL LETTER CHI
+    0x03a8: 0x0096,     #  GREEK CAPITAL LETTER PSI
+    0x03a9: 0x0097,     #  GREEK CAPITAL LETTER OMEGA
+    0x03aa: 0x00f4,     #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    0x03ab: 0x00f5,     #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    0x03ac: 0x00e1,     #  GREEK SMALL LETTER ALPHA WITH TONOS
+    0x03ad: 0x00e2,     #  GREEK SMALL LETTER EPSILON WITH TONOS
+    0x03ae: 0x00e3,     #  GREEK SMALL LETTER ETA WITH TONOS
+    0x03af: 0x00e5,     #  GREEK SMALL LETTER IOTA WITH TONOS
+    0x03b1: 0x0098,     #  GREEK SMALL LETTER ALPHA
+    0x03b2: 0x0099,     #  GREEK SMALL LETTER BETA
+    0x03b3: 0x009a,     #  GREEK SMALL LETTER GAMMA
+    0x03b4: 0x009b,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x009c,     #  GREEK SMALL LETTER EPSILON
+    0x03b6: 0x009d,     #  GREEK SMALL LETTER ZETA
+    0x03b7: 0x009e,     #  GREEK SMALL LETTER ETA
+    0x03b8: 0x009f,     #  GREEK SMALL LETTER THETA
+    0x03b9: 0x00a0,     #  GREEK SMALL LETTER IOTA
+    0x03ba: 0x00a1,     #  GREEK SMALL LETTER KAPPA
+    0x03bb: 0x00a2,     #  GREEK SMALL LETTER LAMDA
+    0x03bc: 0x00a3,     #  GREEK SMALL LETTER MU
+    0x03bd: 0x00a4,     #  GREEK SMALL LETTER NU
+    0x03be: 0x00a5,     #  GREEK SMALL LETTER XI
+    0x03bf: 0x00a6,     #  GREEK SMALL LETTER OMICRON
+    0x03c0: 0x00a7,     #  GREEK SMALL LETTER PI
+    0x03c1: 0x00a8,     #  GREEK SMALL LETTER RHO
+    0x03c2: 0x00aa,     #  GREEK SMALL LETTER FINAL SIGMA
+    0x03c3: 0x00a9,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00ab,     #  GREEK SMALL LETTER TAU
+    0x03c5: 0x00ac,     #  GREEK SMALL LETTER UPSILON
+    0x03c6: 0x00ad,     #  GREEK SMALL LETTER PHI
+    0x03c7: 0x00ae,     #  GREEK SMALL LETTER CHI
+    0x03c8: 0x00af,     #  GREEK SMALL LETTER PSI
+    0x03c9: 0x00e0,     #  GREEK SMALL LETTER OMEGA
+    0x03ca: 0x00e4,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    0x03cb: 0x00e8,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    0x03cc: 0x00e6,     #  GREEK SMALL LETTER OMICRON WITH TONOS
+    0x03cd: 0x00e7,     #  GREEK SMALL LETTER UPSILON WITH TONOS
+    0x03ce: 0x00e9,     #  GREEK SMALL LETTER OMEGA WITH TONOS
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp775.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp775.py
new file mode 100644
index 0000000..fe06e7b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp775.py
@@ -0,0 +1,697 @@
+""" Python Character Mapping Codec cp775 generated from 'VENDORS/MICSFT/PC/CP775.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp775',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x0106,     #  LATIN CAPITAL LETTER C WITH ACUTE
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x0101,     #  LATIN SMALL LETTER A WITH MACRON
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x0123,     #  LATIN SMALL LETTER G WITH CEDILLA
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x0107,     #  LATIN SMALL LETTER C WITH ACUTE
+    0x0088: 0x0142,     #  LATIN SMALL LETTER L WITH STROKE
+    0x0089: 0x0113,     #  LATIN SMALL LETTER E WITH MACRON
+    0x008a: 0x0156,     #  LATIN CAPITAL LETTER R WITH CEDILLA
+    0x008b: 0x0157,     #  LATIN SMALL LETTER R WITH CEDILLA
+    0x008c: 0x012b,     #  LATIN SMALL LETTER I WITH MACRON
+    0x008d: 0x0179,     #  LATIN CAPITAL LETTER Z WITH ACUTE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x014d,     #  LATIN SMALL LETTER O WITH MACRON
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x0122,     #  LATIN CAPITAL LETTER G WITH CEDILLA
+    0x0096: 0x00a2,     #  CENT SIGN
+    0x0097: 0x015a,     #  LATIN CAPITAL LETTER S WITH ACUTE
+    0x0098: 0x015b,     #  LATIN SMALL LETTER S WITH ACUTE
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x00d7,     #  MULTIPLICATION SIGN
+    0x009f: 0x00a4,     #  CURRENCY SIGN
+    0x00a0: 0x0100,     #  LATIN CAPITAL LETTER A WITH MACRON
+    0x00a1: 0x012a,     #  LATIN CAPITAL LETTER I WITH MACRON
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x017b,     #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    0x00a4: 0x017c,     #  LATIN SMALL LETTER Z WITH DOT ABOVE
+    0x00a5: 0x017a,     #  LATIN SMALL LETTER Z WITH ACUTE
+    0x00a6: 0x201d,     #  RIGHT DOUBLE QUOTATION MARK
+    0x00a7: 0x00a6,     #  BROKEN BAR
+    0x00a8: 0x00a9,     #  COPYRIGHT SIGN
+    0x00a9: 0x00ae,     #  REGISTERED SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x0141,     #  LATIN CAPITAL LETTER L WITH STROKE
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x0104,     #  LATIN CAPITAL LETTER A WITH OGONEK
+    0x00b6: 0x010c,     #  LATIN CAPITAL LETTER C WITH CARON
+    0x00b7: 0x0118,     #  LATIN CAPITAL LETTER E WITH OGONEK
+    0x00b8: 0x0116,     #  LATIN CAPITAL LETTER E WITH DOT ABOVE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x012e,     #  LATIN CAPITAL LETTER I WITH OGONEK
+    0x00be: 0x0160,     #  LATIN CAPITAL LETTER S WITH CARON
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x0172,     #  LATIN CAPITAL LETTER U WITH OGONEK
+    0x00c7: 0x016a,     #  LATIN CAPITAL LETTER U WITH MACRON
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x017d,     #  LATIN CAPITAL LETTER Z WITH CARON
+    0x00d0: 0x0105,     #  LATIN SMALL LETTER A WITH OGONEK
+    0x00d1: 0x010d,     #  LATIN SMALL LETTER C WITH CARON
+    0x00d2: 0x0119,     #  LATIN SMALL LETTER E WITH OGONEK
+    0x00d3: 0x0117,     #  LATIN SMALL LETTER E WITH DOT ABOVE
+    0x00d4: 0x012f,     #  LATIN SMALL LETTER I WITH OGONEK
+    0x00d5: 0x0161,     #  LATIN SMALL LETTER S WITH CARON
+    0x00d6: 0x0173,     #  LATIN SMALL LETTER U WITH OGONEK
+    0x00d7: 0x016b,     #  LATIN SMALL LETTER U WITH MACRON
+    0x00d8: 0x017e,     #  LATIN SMALL LETTER Z WITH CARON
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S (GERMAN)
+    0x00e2: 0x014c,     #  LATIN CAPITAL LETTER O WITH MACRON
+    0x00e3: 0x0143,     #  LATIN CAPITAL LETTER N WITH ACUTE
+    0x00e4: 0x00f5,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00e5: 0x00d5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x0144,     #  LATIN SMALL LETTER N WITH ACUTE
+    0x00e8: 0x0136,     #  LATIN CAPITAL LETTER K WITH CEDILLA
+    0x00e9: 0x0137,     #  LATIN SMALL LETTER K WITH CEDILLA
+    0x00ea: 0x013b,     #  LATIN CAPITAL LETTER L WITH CEDILLA
+    0x00eb: 0x013c,     #  LATIN SMALL LETTER L WITH CEDILLA
+    0x00ec: 0x0146,     #  LATIN SMALL LETTER N WITH CEDILLA
+    0x00ed: 0x0112,     #  LATIN CAPITAL LETTER E WITH MACRON
+    0x00ee: 0x0145,     #  LATIN CAPITAL LETTER N WITH CEDILLA
+    0x00ef: 0x2019,     #  RIGHT SINGLE QUOTATION MARK
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x201c,     #  LEFT DOUBLE QUOTATION MARK
+    0x00f3: 0x00be,     #  VULGAR FRACTION THREE QUARTERS
+    0x00f4: 0x00b6,     #  PILCROW SIGN
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x201e,     #  DOUBLE LOW-9 QUOTATION MARK
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x00b9,     #  SUPERSCRIPT ONE
+    0x00fc: 0x00b3,     #  SUPERSCRIPT THREE
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0106'   #  0x0080 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0101'   #  0x0083 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0123'   #  0x0085 -> LATIN SMALL LETTER G WITH CEDILLA
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0107'   #  0x0087 -> LATIN SMALL LETTER C WITH ACUTE
+    '\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
+    '\u0113'   #  0x0089 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0156'   #  0x008a -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\u0157'   #  0x008b -> LATIN SMALL LETTER R WITH CEDILLA
+    '\u012b'   #  0x008c -> LATIN SMALL LETTER I WITH MACRON
+    '\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\u014d'   #  0x0093 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u0122'   #  0x0095 -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\xa2'     #  0x0096 -> CENT SIGN
+    '\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\xa4'     #  0x009f -> CURRENCY SIGN
+    '\u0100'   #  0x00a0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u012a'   #  0x00a1 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u017b'   #  0x00a3 -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017c'   #  0x00a4 -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017a'   #  0x00a5 -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u201d'   #  0x00a6 -> RIGHT DOUBLE QUOTATION MARK
+    '\xa6'     #  0x00a7 -> BROKEN BAR
+    '\xa9'     #  0x00a8 -> COPYRIGHT SIGN
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\u0141'   #  0x00ad -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u0104'   #  0x00b5 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u010c'   #  0x00b6 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u0118'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0116'   #  0x00b8 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u012e'   #  0x00bd -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0160'   #  0x00be -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u0172'   #  0x00c6 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u016a'   #  0x00c7 -> LATIN CAPITAL LETTER U WITH MACRON
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u017d'   #  0x00cf -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u0105'   #  0x00d0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u010d'   #  0x00d1 -> LATIN SMALL LETTER C WITH CARON
+    '\u0119'   #  0x00d2 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0117'   #  0x00d3 -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u012f'   #  0x00d4 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0161'   #  0x00d5 -> LATIN SMALL LETTER S WITH CARON
+    '\u0173'   #  0x00d6 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u016b'   #  0x00d7 -> LATIN SMALL LETTER U WITH MACRON
+    '\u017e'   #  0x00d8 -> LATIN SMALL LETTER Z WITH CARON
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u014c'   #  0x00e2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u0144'   #  0x00e7 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0136'   #  0x00e8 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u0137'   #  0x00e9 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u013b'   #  0x00ea -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u013c'   #  0x00eb -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0146'   #  0x00ec -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u0112'   #  0x00ed -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0145'   #  0x00ee -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u2019'   #  0x00ef -> RIGHT SINGLE QUOTATION MARK
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u201c'   #  0x00f2 -> LEFT DOUBLE QUOTATION MARK
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u201e'   #  0x00f7 -> DOUBLE LOW-9 QUOTATION MARK
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a2: 0x0096,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x009f,     #  CURRENCY SIGN
+    0x00a6: 0x00a7,     #  BROKEN BAR
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a9: 0x00a8,     #  COPYRIGHT SIGN
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00ae: 0x00a9,     #  REGISTERED SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b3: 0x00fc,     #  SUPERSCRIPT THREE
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b6: 0x00f4,     #  PILCROW SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00b9: 0x00fb,     #  SUPERSCRIPT ONE
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00be: 0x00f3,     #  VULGAR FRACTION THREE QUARTERS
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00d3: 0x00e0,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d5: 0x00e5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d7: 0x009e,     #  MULTIPLICATION SIGN
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S (GERMAN)
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f5: 0x00e4,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0100: 0x00a0,     #  LATIN CAPITAL LETTER A WITH MACRON
+    0x0101: 0x0083,     #  LATIN SMALL LETTER A WITH MACRON
+    0x0104: 0x00b5,     #  LATIN CAPITAL LETTER A WITH OGONEK
+    0x0105: 0x00d0,     #  LATIN SMALL LETTER A WITH OGONEK
+    0x0106: 0x0080,     #  LATIN CAPITAL LETTER C WITH ACUTE
+    0x0107: 0x0087,     #  LATIN SMALL LETTER C WITH ACUTE
+    0x010c: 0x00b6,     #  LATIN CAPITAL LETTER C WITH CARON
+    0x010d: 0x00d1,     #  LATIN SMALL LETTER C WITH CARON
+    0x0112: 0x00ed,     #  LATIN CAPITAL LETTER E WITH MACRON
+    0x0113: 0x0089,     #  LATIN SMALL LETTER E WITH MACRON
+    0x0116: 0x00b8,     #  LATIN CAPITAL LETTER E WITH DOT ABOVE
+    0x0117: 0x00d3,     #  LATIN SMALL LETTER E WITH DOT ABOVE
+    0x0118: 0x00b7,     #  LATIN CAPITAL LETTER E WITH OGONEK
+    0x0119: 0x00d2,     #  LATIN SMALL LETTER E WITH OGONEK
+    0x0122: 0x0095,     #  LATIN CAPITAL LETTER G WITH CEDILLA
+    0x0123: 0x0085,     #  LATIN SMALL LETTER G WITH CEDILLA
+    0x012a: 0x00a1,     #  LATIN CAPITAL LETTER I WITH MACRON
+    0x012b: 0x008c,     #  LATIN SMALL LETTER I WITH MACRON
+    0x012e: 0x00bd,     #  LATIN CAPITAL LETTER I WITH OGONEK
+    0x012f: 0x00d4,     #  LATIN SMALL LETTER I WITH OGONEK
+    0x0136: 0x00e8,     #  LATIN CAPITAL LETTER K WITH CEDILLA
+    0x0137: 0x00e9,     #  LATIN SMALL LETTER K WITH CEDILLA
+    0x013b: 0x00ea,     #  LATIN CAPITAL LETTER L WITH CEDILLA
+    0x013c: 0x00eb,     #  LATIN SMALL LETTER L WITH CEDILLA
+    0x0141: 0x00ad,     #  LATIN CAPITAL LETTER L WITH STROKE
+    0x0142: 0x0088,     #  LATIN SMALL LETTER L WITH STROKE
+    0x0143: 0x00e3,     #  LATIN CAPITAL LETTER N WITH ACUTE
+    0x0144: 0x00e7,     #  LATIN SMALL LETTER N WITH ACUTE
+    0x0145: 0x00ee,     #  LATIN CAPITAL LETTER N WITH CEDILLA
+    0x0146: 0x00ec,     #  LATIN SMALL LETTER N WITH CEDILLA
+    0x014c: 0x00e2,     #  LATIN CAPITAL LETTER O WITH MACRON
+    0x014d: 0x0093,     #  LATIN SMALL LETTER O WITH MACRON
+    0x0156: 0x008a,     #  LATIN CAPITAL LETTER R WITH CEDILLA
+    0x0157: 0x008b,     #  LATIN SMALL LETTER R WITH CEDILLA
+    0x015a: 0x0097,     #  LATIN CAPITAL LETTER S WITH ACUTE
+    0x015b: 0x0098,     #  LATIN SMALL LETTER S WITH ACUTE
+    0x0160: 0x00be,     #  LATIN CAPITAL LETTER S WITH CARON
+    0x0161: 0x00d5,     #  LATIN SMALL LETTER S WITH CARON
+    0x016a: 0x00c7,     #  LATIN CAPITAL LETTER U WITH MACRON
+    0x016b: 0x00d7,     #  LATIN SMALL LETTER U WITH MACRON
+    0x0172: 0x00c6,     #  LATIN CAPITAL LETTER U WITH OGONEK
+    0x0173: 0x00d6,     #  LATIN SMALL LETTER U WITH OGONEK
+    0x0179: 0x008d,     #  LATIN CAPITAL LETTER Z WITH ACUTE
+    0x017a: 0x00a5,     #  LATIN SMALL LETTER Z WITH ACUTE
+    0x017b: 0x00a3,     #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    0x017c: 0x00a4,     #  LATIN SMALL LETTER Z WITH DOT ABOVE
+    0x017d: 0x00cf,     #  LATIN CAPITAL LETTER Z WITH CARON
+    0x017e: 0x00d8,     #  LATIN SMALL LETTER Z WITH CARON
+    0x2019: 0x00ef,     #  RIGHT SINGLE QUOTATION MARK
+    0x201c: 0x00f2,     #  LEFT DOUBLE QUOTATION MARK
+    0x201d: 0x00a6,     #  RIGHT DOUBLE QUOTATION MARK
+    0x201e: 0x00f7,     #  DOUBLE LOW-9 QUOTATION MARK
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp850.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp850.py
new file mode 100644
index 0000000..f98aef9
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp850.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP850.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp850',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00ff,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x00d7,     #  MULTIPLICATION SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x00ae,     #  REGISTERED SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00b6: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00b7: 0x00c0,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00b8: 0x00a9,     #  COPYRIGHT SIGN
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x00a2,     #  CENT SIGN
+    0x00be: 0x00a5,     #  YEN SIGN
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x00e3,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00c7: 0x00c3,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x00a4,     #  CURRENCY SIGN
+    0x00d0: 0x00f0,     #  LATIN SMALL LETTER ETH
+    0x00d1: 0x00d0,     #  LATIN CAPITAL LETTER ETH
+    0x00d2: 0x00ca,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00d3: 0x00cb,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00d4: 0x00c8,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00d5: 0x0131,     #  LATIN SMALL LETTER DOTLESS I
+    0x00d6: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d7: 0x00ce,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00d8: 0x00cf,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x00a6,     #  BROKEN BAR
+    0x00de: 0x00cc,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00e3: 0x00d2,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00e4: 0x00f5,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00e5: 0x00d5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x00fe,     #  LATIN SMALL LETTER THORN
+    0x00e8: 0x00de,     #  LATIN CAPITAL LETTER THORN
+    0x00e9: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00ea: 0x00db,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00eb: 0x00d9,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00ec: 0x00fd,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00ed: 0x00dd,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00ee: 0x00af,     #  MACRON
+    0x00ef: 0x00b4,     #  ACUTE ACCENT
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2017,     #  DOUBLE LOW LINE
+    0x00f3: 0x00be,     #  VULGAR FRACTION THREE QUARTERS
+    0x00f4: 0x00b6,     #  PILCROW SIGN
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x00b8,     #  CEDILLA
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x00a8,     #  DIAERESIS
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x00b9,     #  SUPERSCRIPT ONE
+    0x00fc: 0x00b3,     #  SUPERSCRIPT THREE
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa9'     #  0x00b8 -> COPYRIGHT SIGN
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0x00bd -> CENT SIGN
+    '\xa5'     #  0x00be -> YEN SIGN
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
+    '\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\xf0'     #  0x00d0 -> LATIN SMALL LETTER ETH
+    '\xd0'     #  0x00d1 -> LATIN CAPITAL LETTER ETH
+    '\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\u0131'   #  0x00d5 -> LATIN SMALL LETTER DOTLESS I
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\xa6'     #  0x00dd -> BROKEN BAR
+    '\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\xfe'     #  0x00e7 -> LATIN SMALL LETTER THORN
+    '\xde'     #  0x00e8 -> LATIN CAPITAL LETTER THORN
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xaf'     #  0x00ee -> MACRON
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2017'   #  0x00f2 -> DOUBLE LOW LINE
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x00bd,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x00cf,     #  CURRENCY SIGN
+    0x00a5: 0x00be,     #  YEN SIGN
+    0x00a6: 0x00dd,     #  BROKEN BAR
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a8: 0x00f9,     #  DIAERESIS
+    0x00a9: 0x00b8,     #  COPYRIGHT SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00ae: 0x00a9,     #  REGISTERED SIGN
+    0x00af: 0x00ee,     #  MACRON
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b3: 0x00fc,     #  SUPERSCRIPT THREE
+    0x00b4: 0x00ef,     #  ACUTE ACCENT
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b6: 0x00f4,     #  PILCROW SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00b8: 0x00f7,     #  CEDILLA
+    0x00b9: 0x00fb,     #  SUPERSCRIPT ONE
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00be: 0x00f3,     #  VULGAR FRACTION THREE QUARTERS
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c0: 0x00b7,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00c1: 0x00b5,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c2: 0x00b6,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c3: 0x00c7,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c8: 0x00d4,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00ca: 0x00d2,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00cb: 0x00d3,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00cc: 0x00de,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00cd: 0x00d6,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00ce: 0x00d7,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00cf: 0x00d8,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d0: 0x00d1,     #  LATIN CAPITAL LETTER ETH
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d2: 0x00e3,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00d3: 0x00e0,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d4: 0x00e2,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d5: 0x00e5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d7: 0x009e,     #  MULTIPLICATION SIGN
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00d9: 0x00eb,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00da: 0x00e9,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00db: 0x00ea,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00dd: 0x00ed,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00de: 0x00e8,     #  LATIN CAPITAL LETTER THORN
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e3: 0x00c6,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ec: 0x008d,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f0: 0x00d0,     #  LATIN SMALL LETTER ETH
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f5: 0x00e4,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00fd: 0x00ec,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00fe: 0x00e7,     #  LATIN SMALL LETTER THORN
+    0x00ff: 0x0098,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0131: 0x00d5,     #  LATIN SMALL LETTER DOTLESS I
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x2017: 0x00f2,     #  DOUBLE LOW LINE
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp852.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp852.py
new file mode 100644
index 0000000..34d8a0e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp852.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP852.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp852',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x016f,     #  LATIN SMALL LETTER U WITH RING ABOVE
+    0x0086: 0x0107,     #  LATIN SMALL LETTER C WITH ACUTE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x0142,     #  LATIN SMALL LETTER L WITH STROKE
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x0150,     #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    0x008b: 0x0151,     #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x0179,     #  LATIN CAPITAL LETTER Z WITH ACUTE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x0106,     #  LATIN CAPITAL LETTER C WITH ACUTE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x0139,     #  LATIN CAPITAL LETTER L WITH ACUTE
+    0x0092: 0x013a,     #  LATIN SMALL LETTER L WITH ACUTE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x013d,     #  LATIN CAPITAL LETTER L WITH CARON
+    0x0096: 0x013e,     #  LATIN SMALL LETTER L WITH CARON
+    0x0097: 0x015a,     #  LATIN CAPITAL LETTER S WITH ACUTE
+    0x0098: 0x015b,     #  LATIN SMALL LETTER S WITH ACUTE
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x0164,     #  LATIN CAPITAL LETTER T WITH CARON
+    0x009c: 0x0165,     #  LATIN SMALL LETTER T WITH CARON
+    0x009d: 0x0141,     #  LATIN CAPITAL LETTER L WITH STROKE
+    0x009e: 0x00d7,     #  MULTIPLICATION SIGN
+    0x009f: 0x010d,     #  LATIN SMALL LETTER C WITH CARON
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x0104,     #  LATIN CAPITAL LETTER A WITH OGONEK
+    0x00a5: 0x0105,     #  LATIN SMALL LETTER A WITH OGONEK
+    0x00a6: 0x017d,     #  LATIN CAPITAL LETTER Z WITH CARON
+    0x00a7: 0x017e,     #  LATIN SMALL LETTER Z WITH CARON
+    0x00a8: 0x0118,     #  LATIN CAPITAL LETTER E WITH OGONEK
+    0x00a9: 0x0119,     #  LATIN SMALL LETTER E WITH OGONEK
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x017a,     #  LATIN SMALL LETTER Z WITH ACUTE
+    0x00ac: 0x010c,     #  LATIN CAPITAL LETTER C WITH CARON
+    0x00ad: 0x015f,     #  LATIN SMALL LETTER S WITH CEDILLA
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00b6: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00b7: 0x011a,     #  LATIN CAPITAL LETTER E WITH CARON
+    0x00b8: 0x015e,     #  LATIN CAPITAL LETTER S WITH CEDILLA
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x017b,     #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    0x00be: 0x017c,     #  LATIN SMALL LETTER Z WITH DOT ABOVE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x0102,     #  LATIN CAPITAL LETTER A WITH BREVE
+    0x00c7: 0x0103,     #  LATIN SMALL LETTER A WITH BREVE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x00a4,     #  CURRENCY SIGN
+    0x00d0: 0x0111,     #  LATIN SMALL LETTER D WITH STROKE
+    0x00d1: 0x0110,     #  LATIN CAPITAL LETTER D WITH STROKE
+    0x00d2: 0x010e,     #  LATIN CAPITAL LETTER D WITH CARON
+    0x00d3: 0x00cb,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00d4: 0x010f,     #  LATIN SMALL LETTER D WITH CARON
+    0x00d5: 0x0147,     #  LATIN CAPITAL LETTER N WITH CARON
+    0x00d6: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d7: 0x00ce,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00d8: 0x011b,     #  LATIN SMALL LETTER E WITH CARON
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x0162,     #  LATIN CAPITAL LETTER T WITH CEDILLA
+    0x00de: 0x016e,     #  LATIN CAPITAL LETTER U WITH RING ABOVE
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00e3: 0x0143,     #  LATIN CAPITAL LETTER N WITH ACUTE
+    0x00e4: 0x0144,     #  LATIN SMALL LETTER N WITH ACUTE
+    0x00e5: 0x0148,     #  LATIN SMALL LETTER N WITH CARON
+    0x00e6: 0x0160,     #  LATIN CAPITAL LETTER S WITH CARON
+    0x00e7: 0x0161,     #  LATIN SMALL LETTER S WITH CARON
+    0x00e8: 0x0154,     #  LATIN CAPITAL LETTER R WITH ACUTE
+    0x00e9: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00ea: 0x0155,     #  LATIN SMALL LETTER R WITH ACUTE
+    0x00eb: 0x0170,     #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    0x00ec: 0x00fd,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00ed: 0x00dd,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00ee: 0x0163,     #  LATIN SMALL LETTER T WITH CEDILLA
+    0x00ef: 0x00b4,     #  ACUTE ACCENT
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x02dd,     #  DOUBLE ACUTE ACCENT
+    0x00f2: 0x02db,     #  OGONEK
+    0x00f3: 0x02c7,     #  CARON
+    0x00f4: 0x02d8,     #  BREVE
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x00b8,     #  CEDILLA
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x00a8,     #  DIAERESIS
+    0x00fa: 0x02d9,     #  DOT ABOVE
+    0x00fb: 0x0171,     #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    0x00fc: 0x0158,     #  LATIN CAPITAL LETTER R WITH CARON
+    0x00fd: 0x0159,     #  LATIN SMALL LETTER R WITH CARON
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u016f'   #  0x0085 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\u0107'   #  0x0086 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0150'   #  0x008a -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\u0151'   #  0x008b -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0106'   #  0x008f -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0139'   #  0x0091 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u013a'   #  0x0092 -> LATIN SMALL LETTER L WITH ACUTE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u013d'   #  0x0095 -> LATIN CAPITAL LETTER L WITH CARON
+    '\u013e'   #  0x0096 -> LATIN SMALL LETTER L WITH CARON
+    '\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0164'   #  0x009b -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0165'   #  0x009c -> LATIN SMALL LETTER T WITH CARON
+    '\u0141'   #  0x009d -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\u010d'   #  0x009f -> LATIN SMALL LETTER C WITH CARON
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0104'   #  0x00a4 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0105'   #  0x00a5 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u017d'   #  0x00a6 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017e'   #  0x00a7 -> LATIN SMALL LETTER Z WITH CARON
+    '\u0118'   #  0x00a8 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0119'   #  0x00a9 -> LATIN SMALL LETTER E WITH OGONEK
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\u017a'   #  0x00ab -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u010c'   #  0x00ac -> LATIN CAPITAL LETTER C WITH CARON
+    '\u015f'   #  0x00ad -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u011a'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH CARON
+    '\u015e'   #  0x00b8 -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u017b'   #  0x00bd -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017c'   #  0x00be -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u0102'   #  0x00c6 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\u0103'   #  0x00c7 -> LATIN SMALL LETTER A WITH BREVE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\u0111'   #  0x00d0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0110'   #  0x00d1 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u010e'   #  0x00d2 -> LATIN CAPITAL LETTER D WITH CARON
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u010f'   #  0x00d4 -> LATIN SMALL LETTER D WITH CARON
+    '\u0147'   #  0x00d5 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u011b'   #  0x00d8 -> LATIN SMALL LETTER E WITH CARON
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u0162'   #  0x00dd -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\u016e'   #  0x00de -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0144'   #  0x00e4 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0x00e5 -> LATIN SMALL LETTER N WITH CARON
+    '\u0160'   #  0x00e6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0161'   #  0x00e7 -> LATIN SMALL LETTER S WITH CARON
+    '\u0154'   #  0x00e8 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0155'   #  0x00ea -> LATIN SMALL LETTER R WITH ACUTE
+    '\u0170'   #  0x00eb -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0163'   #  0x00ee -> LATIN SMALL LETTER T WITH CEDILLA
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\u02dd'   #  0x00f1 -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0x00f2 -> OGONEK
+    '\u02c7'   #  0x00f3 -> CARON
+    '\u02d8'   #  0x00f4 -> BREVE
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\u02d9'   #  0x00fa -> DOT ABOVE
+    '\u0171'   #  0x00fb -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\u0158'   #  0x00fc -> LATIN CAPITAL LETTER R WITH CARON
+    '\u0159'   #  0x00fd -> LATIN SMALL LETTER R WITH CARON
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a4: 0x00cf,     #  CURRENCY SIGN
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a8: 0x00f9,     #  DIAERESIS
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b4: 0x00ef,     #  ACUTE ACCENT
+    0x00b8: 0x00f7,     #  CEDILLA
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00c1: 0x00b5,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c2: 0x00b6,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00cb: 0x00d3,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00cd: 0x00d6,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00ce: 0x00d7,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00d3: 0x00e0,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d4: 0x00e2,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d7: 0x009e,     #  MULTIPLICATION SIGN
+    0x00da: 0x00e9,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00dd: 0x00ed,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00fd: 0x00ec,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x0102: 0x00c6,     #  LATIN CAPITAL LETTER A WITH BREVE
+    0x0103: 0x00c7,     #  LATIN SMALL LETTER A WITH BREVE
+    0x0104: 0x00a4,     #  LATIN CAPITAL LETTER A WITH OGONEK
+    0x0105: 0x00a5,     #  LATIN SMALL LETTER A WITH OGONEK
+    0x0106: 0x008f,     #  LATIN CAPITAL LETTER C WITH ACUTE
+    0x0107: 0x0086,     #  LATIN SMALL LETTER C WITH ACUTE
+    0x010c: 0x00ac,     #  LATIN CAPITAL LETTER C WITH CARON
+    0x010d: 0x009f,     #  LATIN SMALL LETTER C WITH CARON
+    0x010e: 0x00d2,     #  LATIN CAPITAL LETTER D WITH CARON
+    0x010f: 0x00d4,     #  LATIN SMALL LETTER D WITH CARON
+    0x0110: 0x00d1,     #  LATIN CAPITAL LETTER D WITH STROKE
+    0x0111: 0x00d0,     #  LATIN SMALL LETTER D WITH STROKE
+    0x0118: 0x00a8,     #  LATIN CAPITAL LETTER E WITH OGONEK
+    0x0119: 0x00a9,     #  LATIN SMALL LETTER E WITH OGONEK
+    0x011a: 0x00b7,     #  LATIN CAPITAL LETTER E WITH CARON
+    0x011b: 0x00d8,     #  LATIN SMALL LETTER E WITH CARON
+    0x0139: 0x0091,     #  LATIN CAPITAL LETTER L WITH ACUTE
+    0x013a: 0x0092,     #  LATIN SMALL LETTER L WITH ACUTE
+    0x013d: 0x0095,     #  LATIN CAPITAL LETTER L WITH CARON
+    0x013e: 0x0096,     #  LATIN SMALL LETTER L WITH CARON
+    0x0141: 0x009d,     #  LATIN CAPITAL LETTER L WITH STROKE
+    0x0142: 0x0088,     #  LATIN SMALL LETTER L WITH STROKE
+    0x0143: 0x00e3,     #  LATIN CAPITAL LETTER N WITH ACUTE
+    0x0144: 0x00e4,     #  LATIN SMALL LETTER N WITH ACUTE
+    0x0147: 0x00d5,     #  LATIN CAPITAL LETTER N WITH CARON
+    0x0148: 0x00e5,     #  LATIN SMALL LETTER N WITH CARON
+    0x0150: 0x008a,     #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    0x0151: 0x008b,     #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    0x0154: 0x00e8,     #  LATIN CAPITAL LETTER R WITH ACUTE
+    0x0155: 0x00ea,     #  LATIN SMALL LETTER R WITH ACUTE
+    0x0158: 0x00fc,     #  LATIN CAPITAL LETTER R WITH CARON
+    0x0159: 0x00fd,     #  LATIN SMALL LETTER R WITH CARON
+    0x015a: 0x0097,     #  LATIN CAPITAL LETTER S WITH ACUTE
+    0x015b: 0x0098,     #  LATIN SMALL LETTER S WITH ACUTE
+    0x015e: 0x00b8,     #  LATIN CAPITAL LETTER S WITH CEDILLA
+    0x015f: 0x00ad,     #  LATIN SMALL LETTER S WITH CEDILLA
+    0x0160: 0x00e6,     #  LATIN CAPITAL LETTER S WITH CARON
+    0x0161: 0x00e7,     #  LATIN SMALL LETTER S WITH CARON
+    0x0162: 0x00dd,     #  LATIN CAPITAL LETTER T WITH CEDILLA
+    0x0163: 0x00ee,     #  LATIN SMALL LETTER T WITH CEDILLA
+    0x0164: 0x009b,     #  LATIN CAPITAL LETTER T WITH CARON
+    0x0165: 0x009c,     #  LATIN SMALL LETTER T WITH CARON
+    0x016e: 0x00de,     #  LATIN CAPITAL LETTER U WITH RING ABOVE
+    0x016f: 0x0085,     #  LATIN SMALL LETTER U WITH RING ABOVE
+    0x0170: 0x00eb,     #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    0x0171: 0x00fb,     #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    0x0179: 0x008d,     #  LATIN CAPITAL LETTER Z WITH ACUTE
+    0x017a: 0x00ab,     #  LATIN SMALL LETTER Z WITH ACUTE
+    0x017b: 0x00bd,     #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    0x017c: 0x00be,     #  LATIN SMALL LETTER Z WITH DOT ABOVE
+    0x017d: 0x00a6,     #  LATIN CAPITAL LETTER Z WITH CARON
+    0x017e: 0x00a7,     #  LATIN SMALL LETTER Z WITH CARON
+    0x02c7: 0x00f3,     #  CARON
+    0x02d8: 0x00f4,     #  BREVE
+    0x02d9: 0x00fa,     #  DOT ABOVE
+    0x02db: 0x00f2,     #  OGONEK
+    0x02dd: 0x00f1,     #  DOUBLE ACUTE ACCENT
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp855.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp855.py
new file mode 100644
index 0000000..4fe9210
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp855.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP855.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp855',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x0452,     #  CYRILLIC SMALL LETTER DJE
+    0x0081: 0x0402,     #  CYRILLIC CAPITAL LETTER DJE
+    0x0082: 0x0453,     #  CYRILLIC SMALL LETTER GJE
+    0x0083: 0x0403,     #  CYRILLIC CAPITAL LETTER GJE
+    0x0084: 0x0451,     #  CYRILLIC SMALL LETTER IO
+    0x0085: 0x0401,     #  CYRILLIC CAPITAL LETTER IO
+    0x0086: 0x0454,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x0087: 0x0404,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x0088: 0x0455,     #  CYRILLIC SMALL LETTER DZE
+    0x0089: 0x0405,     #  CYRILLIC CAPITAL LETTER DZE
+    0x008a: 0x0456,     #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x008b: 0x0406,     #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x008c: 0x0457,     #  CYRILLIC SMALL LETTER YI
+    0x008d: 0x0407,     #  CYRILLIC CAPITAL LETTER YI
+    0x008e: 0x0458,     #  CYRILLIC SMALL LETTER JE
+    0x008f: 0x0408,     #  CYRILLIC CAPITAL LETTER JE
+    0x0090: 0x0459,     #  CYRILLIC SMALL LETTER LJE
+    0x0091: 0x0409,     #  CYRILLIC CAPITAL LETTER LJE
+    0x0092: 0x045a,     #  CYRILLIC SMALL LETTER NJE
+    0x0093: 0x040a,     #  CYRILLIC CAPITAL LETTER NJE
+    0x0094: 0x045b,     #  CYRILLIC SMALL LETTER TSHE
+    0x0095: 0x040b,     #  CYRILLIC CAPITAL LETTER TSHE
+    0x0096: 0x045c,     #  CYRILLIC SMALL LETTER KJE
+    0x0097: 0x040c,     #  CYRILLIC CAPITAL LETTER KJE
+    0x0098: 0x045e,     #  CYRILLIC SMALL LETTER SHORT U
+    0x0099: 0x040e,     #  CYRILLIC CAPITAL LETTER SHORT U
+    0x009a: 0x045f,     #  CYRILLIC SMALL LETTER DZHE
+    0x009b: 0x040f,     #  CYRILLIC CAPITAL LETTER DZHE
+    0x009c: 0x044e,     #  CYRILLIC SMALL LETTER YU
+    0x009d: 0x042e,     #  CYRILLIC CAPITAL LETTER YU
+    0x009e: 0x044a,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x009f: 0x042a,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x00a0: 0x0430,     #  CYRILLIC SMALL LETTER A
+    0x00a1: 0x0410,     #  CYRILLIC CAPITAL LETTER A
+    0x00a2: 0x0431,     #  CYRILLIC SMALL LETTER BE
+    0x00a3: 0x0411,     #  CYRILLIC CAPITAL LETTER BE
+    0x00a4: 0x0446,     #  CYRILLIC SMALL LETTER TSE
+    0x00a5: 0x0426,     #  CYRILLIC CAPITAL LETTER TSE
+    0x00a6: 0x0434,     #  CYRILLIC SMALL LETTER DE
+    0x00a7: 0x0414,     #  CYRILLIC CAPITAL LETTER DE
+    0x00a8: 0x0435,     #  CYRILLIC SMALL LETTER IE
+    0x00a9: 0x0415,     #  CYRILLIC CAPITAL LETTER IE
+    0x00aa: 0x0444,     #  CYRILLIC SMALL LETTER EF
+    0x00ab: 0x0424,     #  CYRILLIC CAPITAL LETTER EF
+    0x00ac: 0x0433,     #  CYRILLIC SMALL LETTER GHE
+    0x00ad: 0x0413,     #  CYRILLIC CAPITAL LETTER GHE
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x0445,     #  CYRILLIC SMALL LETTER HA
+    0x00b6: 0x0425,     #  CYRILLIC CAPITAL LETTER HA
+    0x00b7: 0x0438,     #  CYRILLIC SMALL LETTER I
+    0x00b8: 0x0418,     #  CYRILLIC CAPITAL LETTER I
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x0439,     #  CYRILLIC SMALL LETTER SHORT I
+    0x00be: 0x0419,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x043a,     #  CYRILLIC SMALL LETTER KA
+    0x00c7: 0x041a,     #  CYRILLIC CAPITAL LETTER KA
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x00a4,     #  CURRENCY SIGN
+    0x00d0: 0x043b,     #  CYRILLIC SMALL LETTER EL
+    0x00d1: 0x041b,     #  CYRILLIC CAPITAL LETTER EL
+    0x00d2: 0x043c,     #  CYRILLIC SMALL LETTER EM
+    0x00d3: 0x041c,     #  CYRILLIC CAPITAL LETTER EM
+    0x00d4: 0x043d,     #  CYRILLIC SMALL LETTER EN
+    0x00d5: 0x041d,     #  CYRILLIC CAPITAL LETTER EN
+    0x00d6: 0x043e,     #  CYRILLIC SMALL LETTER O
+    0x00d7: 0x041e,     #  CYRILLIC CAPITAL LETTER O
+    0x00d8: 0x043f,     #  CYRILLIC SMALL LETTER PE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x041f,     #  CYRILLIC CAPITAL LETTER PE
+    0x00de: 0x044f,     #  CYRILLIC SMALL LETTER YA
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x042f,     #  CYRILLIC CAPITAL LETTER YA
+    0x00e1: 0x0440,     #  CYRILLIC SMALL LETTER ER
+    0x00e2: 0x0420,     #  CYRILLIC CAPITAL LETTER ER
+    0x00e3: 0x0441,     #  CYRILLIC SMALL LETTER ES
+    0x00e4: 0x0421,     #  CYRILLIC CAPITAL LETTER ES
+    0x00e5: 0x0442,     #  CYRILLIC SMALL LETTER TE
+    0x00e6: 0x0422,     #  CYRILLIC CAPITAL LETTER TE
+    0x00e7: 0x0443,     #  CYRILLIC SMALL LETTER U
+    0x00e8: 0x0423,     #  CYRILLIC CAPITAL LETTER U
+    0x00e9: 0x0436,     #  CYRILLIC SMALL LETTER ZHE
+    0x00ea: 0x0416,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x00eb: 0x0432,     #  CYRILLIC SMALL LETTER VE
+    0x00ec: 0x0412,     #  CYRILLIC CAPITAL LETTER VE
+    0x00ed: 0x044c,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x00ee: 0x042c,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x00ef: 0x2116,     #  NUMERO SIGN
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x044b,     #  CYRILLIC SMALL LETTER YERU
+    0x00f2: 0x042b,     #  CYRILLIC CAPITAL LETTER YERU
+    0x00f3: 0x0437,     #  CYRILLIC SMALL LETTER ZE
+    0x00f4: 0x0417,     #  CYRILLIC CAPITAL LETTER ZE
+    0x00f5: 0x0448,     #  CYRILLIC SMALL LETTER SHA
+    0x00f6: 0x0428,     #  CYRILLIC CAPITAL LETTER SHA
+    0x00f7: 0x044d,     #  CYRILLIC SMALL LETTER E
+    0x00f8: 0x042d,     #  CYRILLIC CAPITAL LETTER E
+    0x00f9: 0x0449,     #  CYRILLIC SMALL LETTER SHCHA
+    0x00fa: 0x0429,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x00fb: 0x0447,     #  CYRILLIC SMALL LETTER CHE
+    0x00fc: 0x0427,     #  CYRILLIC CAPITAL LETTER CHE
+    0x00fd: 0x00a7,     #  SECTION SIGN
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0452'   #  0x0080 -> CYRILLIC SMALL LETTER DJE
+    '\u0402'   #  0x0081 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0453'   #  0x0082 -> CYRILLIC SMALL LETTER GJE
+    '\u0403'   #  0x0083 -> CYRILLIC CAPITAL LETTER GJE
+    '\u0451'   #  0x0084 -> CYRILLIC SMALL LETTER IO
+    '\u0401'   #  0x0085 -> CYRILLIC CAPITAL LETTER IO
+    '\u0454'   #  0x0086 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0404'   #  0x0087 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0455'   #  0x0088 -> CYRILLIC SMALL LETTER DZE
+    '\u0405'   #  0x0089 -> CYRILLIC CAPITAL LETTER DZE
+    '\u0456'   #  0x008a -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0406'   #  0x008b -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0x008c -> CYRILLIC SMALL LETTER YI
+    '\u0407'   #  0x008d -> CYRILLIC CAPITAL LETTER YI
+    '\u0458'   #  0x008e -> CYRILLIC SMALL LETTER JE
+    '\u0408'   #  0x008f -> CYRILLIC CAPITAL LETTER JE
+    '\u0459'   #  0x0090 -> CYRILLIC SMALL LETTER LJE
+    '\u0409'   #  0x0091 -> CYRILLIC CAPITAL LETTER LJE
+    '\u045a'   #  0x0092 -> CYRILLIC SMALL LETTER NJE
+    '\u040a'   #  0x0093 -> CYRILLIC CAPITAL LETTER NJE
+    '\u045b'   #  0x0094 -> CYRILLIC SMALL LETTER TSHE
+    '\u040b'   #  0x0095 -> CYRILLIC CAPITAL LETTER TSHE
+    '\u045c'   #  0x0096 -> CYRILLIC SMALL LETTER KJE
+    '\u040c'   #  0x0097 -> CYRILLIC CAPITAL LETTER KJE
+    '\u045e'   #  0x0098 -> CYRILLIC SMALL LETTER SHORT U
+    '\u040e'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045f'   #  0x009a -> CYRILLIC SMALL LETTER DZHE
+    '\u040f'   #  0x009b -> CYRILLIC CAPITAL LETTER DZHE
+    '\u044e'   #  0x009c -> CYRILLIC SMALL LETTER YU
+    '\u042e'   #  0x009d -> CYRILLIC CAPITAL LETTER YU
+    '\u044a'   #  0x009e -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042a'   #  0x009f -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
+    '\u0410'   #  0x00a1 -> CYRILLIC CAPITAL LETTER A
+    '\u0431'   #  0x00a2 -> CYRILLIC SMALL LETTER BE
+    '\u0411'   #  0x00a3 -> CYRILLIC CAPITAL LETTER BE
+    '\u0446'   #  0x00a4 -> CYRILLIC SMALL LETTER TSE
+    '\u0426'   #  0x00a5 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0434'   #  0x00a6 -> CYRILLIC SMALL LETTER DE
+    '\u0414'   #  0x00a7 -> CYRILLIC CAPITAL LETTER DE
+    '\u0435'   #  0x00a8 -> CYRILLIC SMALL LETTER IE
+    '\u0415'   #  0x00a9 -> CYRILLIC CAPITAL LETTER IE
+    '\u0444'   #  0x00aa -> CYRILLIC SMALL LETTER EF
+    '\u0424'   #  0x00ab -> CYRILLIC CAPITAL LETTER EF
+    '\u0433'   #  0x00ac -> CYRILLIC SMALL LETTER GHE
+    '\u0413'   #  0x00ad -> CYRILLIC CAPITAL LETTER GHE
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u0445'   #  0x00b5 -> CYRILLIC SMALL LETTER HA
+    '\u0425'   #  0x00b6 -> CYRILLIC CAPITAL LETTER HA
+    '\u0438'   #  0x00b7 -> CYRILLIC SMALL LETTER I
+    '\u0418'   #  0x00b8 -> CYRILLIC CAPITAL LETTER I
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u0439'   #  0x00bd -> CYRILLIC SMALL LETTER SHORT I
+    '\u0419'   #  0x00be -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u043a'   #  0x00c6 -> CYRILLIC SMALL LETTER KA
+    '\u041a'   #  0x00c7 -> CYRILLIC CAPITAL LETTER KA
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\u043b'   #  0x00d0 -> CYRILLIC SMALL LETTER EL
+    '\u041b'   #  0x00d1 -> CYRILLIC CAPITAL LETTER EL
+    '\u043c'   #  0x00d2 -> CYRILLIC SMALL LETTER EM
+    '\u041c'   #  0x00d3 -> CYRILLIC CAPITAL LETTER EM
+    '\u043d'   #  0x00d4 -> CYRILLIC SMALL LETTER EN
+    '\u041d'   #  0x00d5 -> CYRILLIC CAPITAL LETTER EN
+    '\u043e'   #  0x00d6 -> CYRILLIC SMALL LETTER O
+    '\u041e'   #  0x00d7 -> CYRILLIC CAPITAL LETTER O
+    '\u043f'   #  0x00d8 -> CYRILLIC SMALL LETTER PE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u041f'   #  0x00dd -> CYRILLIC CAPITAL LETTER PE
+    '\u044f'   #  0x00de -> CYRILLIC SMALL LETTER YA
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u042f'   #  0x00e0 -> CYRILLIC CAPITAL LETTER YA
+    '\u0440'   #  0x00e1 -> CYRILLIC SMALL LETTER ER
+    '\u0420'   #  0x00e2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0441'   #  0x00e3 -> CYRILLIC SMALL LETTER ES
+    '\u0421'   #  0x00e4 -> CYRILLIC CAPITAL LETTER ES
+    '\u0442'   #  0x00e5 -> CYRILLIC SMALL LETTER TE
+    '\u0422'   #  0x00e6 -> CYRILLIC CAPITAL LETTER TE
+    '\u0443'   #  0x00e7 -> CYRILLIC SMALL LETTER U
+    '\u0423'   #  0x00e8 -> CYRILLIC CAPITAL LETTER U
+    '\u0436'   #  0x00e9 -> CYRILLIC SMALL LETTER ZHE
+    '\u0416'   #  0x00ea -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0432'   #  0x00eb -> CYRILLIC SMALL LETTER VE
+    '\u0412'   #  0x00ec -> CYRILLIC CAPITAL LETTER VE
+    '\u044c'   #  0x00ed -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u042c'   #  0x00ee -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u2116'   #  0x00ef -> NUMERO SIGN
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\u044b'   #  0x00f1 -> CYRILLIC SMALL LETTER YERU
+    '\u042b'   #  0x00f2 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0437'   #  0x00f3 -> CYRILLIC SMALL LETTER ZE
+    '\u0417'   #  0x00f4 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0448'   #  0x00f5 -> CYRILLIC SMALL LETTER SHA
+    '\u0428'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHA
+    '\u044d'   #  0x00f7 -> CYRILLIC SMALL LETTER E
+    '\u042d'   #  0x00f8 -> CYRILLIC CAPITAL LETTER E
+    '\u0449'   #  0x00f9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u0429'   #  0x00fa -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0447'   #  0x00fb -> CYRILLIC SMALL LETTER CHE
+    '\u0427'   #  0x00fc -> CYRILLIC CAPITAL LETTER CHE
+    '\xa7'     #  0x00fd -> SECTION SIGN
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a4: 0x00cf,     #  CURRENCY SIGN
+    0x00a7: 0x00fd,     #  SECTION SIGN
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x0401: 0x0085,     #  CYRILLIC CAPITAL LETTER IO
+    0x0402: 0x0081,     #  CYRILLIC CAPITAL LETTER DJE
+    0x0403: 0x0083,     #  CYRILLIC CAPITAL LETTER GJE
+    0x0404: 0x0087,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x0405: 0x0089,     #  CYRILLIC CAPITAL LETTER DZE
+    0x0406: 0x008b,     #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x0407: 0x008d,     #  CYRILLIC CAPITAL LETTER YI
+    0x0408: 0x008f,     #  CYRILLIC CAPITAL LETTER JE
+    0x0409: 0x0091,     #  CYRILLIC CAPITAL LETTER LJE
+    0x040a: 0x0093,     #  CYRILLIC CAPITAL LETTER NJE
+    0x040b: 0x0095,     #  CYRILLIC CAPITAL LETTER TSHE
+    0x040c: 0x0097,     #  CYRILLIC CAPITAL LETTER KJE
+    0x040e: 0x0099,     #  CYRILLIC CAPITAL LETTER SHORT U
+    0x040f: 0x009b,     #  CYRILLIC CAPITAL LETTER DZHE
+    0x0410: 0x00a1,     #  CYRILLIC CAPITAL LETTER A
+    0x0411: 0x00a3,     #  CYRILLIC CAPITAL LETTER BE
+    0x0412: 0x00ec,     #  CYRILLIC CAPITAL LETTER VE
+    0x0413: 0x00ad,     #  CYRILLIC CAPITAL LETTER GHE
+    0x0414: 0x00a7,     #  CYRILLIC CAPITAL LETTER DE
+    0x0415: 0x00a9,     #  CYRILLIC CAPITAL LETTER IE
+    0x0416: 0x00ea,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x0417: 0x00f4,     #  CYRILLIC CAPITAL LETTER ZE
+    0x0418: 0x00b8,     #  CYRILLIC CAPITAL LETTER I
+    0x0419: 0x00be,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x041a: 0x00c7,     #  CYRILLIC CAPITAL LETTER KA
+    0x041b: 0x00d1,     #  CYRILLIC CAPITAL LETTER EL
+    0x041c: 0x00d3,     #  CYRILLIC CAPITAL LETTER EM
+    0x041d: 0x00d5,     #  CYRILLIC CAPITAL LETTER EN
+    0x041e: 0x00d7,     #  CYRILLIC CAPITAL LETTER O
+    0x041f: 0x00dd,     #  CYRILLIC CAPITAL LETTER PE
+    0x0420: 0x00e2,     #  CYRILLIC CAPITAL LETTER ER
+    0x0421: 0x00e4,     #  CYRILLIC CAPITAL LETTER ES
+    0x0422: 0x00e6,     #  CYRILLIC CAPITAL LETTER TE
+    0x0423: 0x00e8,     #  CYRILLIC CAPITAL LETTER U
+    0x0424: 0x00ab,     #  CYRILLIC CAPITAL LETTER EF
+    0x0425: 0x00b6,     #  CYRILLIC CAPITAL LETTER HA
+    0x0426: 0x00a5,     #  CYRILLIC CAPITAL LETTER TSE
+    0x0427: 0x00fc,     #  CYRILLIC CAPITAL LETTER CHE
+    0x0428: 0x00f6,     #  CYRILLIC CAPITAL LETTER SHA
+    0x0429: 0x00fa,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x042a: 0x009f,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x042b: 0x00f2,     #  CYRILLIC CAPITAL LETTER YERU
+    0x042c: 0x00ee,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x042d: 0x00f8,     #  CYRILLIC CAPITAL LETTER E
+    0x042e: 0x009d,     #  CYRILLIC CAPITAL LETTER YU
+    0x042f: 0x00e0,     #  CYRILLIC CAPITAL LETTER YA
+    0x0430: 0x00a0,     #  CYRILLIC SMALL LETTER A
+    0x0431: 0x00a2,     #  CYRILLIC SMALL LETTER BE
+    0x0432: 0x00eb,     #  CYRILLIC SMALL LETTER VE
+    0x0433: 0x00ac,     #  CYRILLIC SMALL LETTER GHE
+    0x0434: 0x00a6,     #  CYRILLIC SMALL LETTER DE
+    0x0435: 0x00a8,     #  CYRILLIC SMALL LETTER IE
+    0x0436: 0x00e9,     #  CYRILLIC SMALL LETTER ZHE
+    0x0437: 0x00f3,     #  CYRILLIC SMALL LETTER ZE
+    0x0438: 0x00b7,     #  CYRILLIC SMALL LETTER I
+    0x0439: 0x00bd,     #  CYRILLIC SMALL LETTER SHORT I
+    0x043a: 0x00c6,     #  CYRILLIC SMALL LETTER KA
+    0x043b: 0x00d0,     #  CYRILLIC SMALL LETTER EL
+    0x043c: 0x00d2,     #  CYRILLIC SMALL LETTER EM
+    0x043d: 0x00d4,     #  CYRILLIC SMALL LETTER EN
+    0x043e: 0x00d6,     #  CYRILLIC SMALL LETTER O
+    0x043f: 0x00d8,     #  CYRILLIC SMALL LETTER PE
+    0x0440: 0x00e1,     #  CYRILLIC SMALL LETTER ER
+    0x0441: 0x00e3,     #  CYRILLIC SMALL LETTER ES
+    0x0442: 0x00e5,     #  CYRILLIC SMALL LETTER TE
+    0x0443: 0x00e7,     #  CYRILLIC SMALL LETTER U
+    0x0444: 0x00aa,     #  CYRILLIC SMALL LETTER EF
+    0x0445: 0x00b5,     #  CYRILLIC SMALL LETTER HA
+    0x0446: 0x00a4,     #  CYRILLIC SMALL LETTER TSE
+    0x0447: 0x00fb,     #  CYRILLIC SMALL LETTER CHE
+    0x0448: 0x00f5,     #  CYRILLIC SMALL LETTER SHA
+    0x0449: 0x00f9,     #  CYRILLIC SMALL LETTER SHCHA
+    0x044a: 0x009e,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x044b: 0x00f1,     #  CYRILLIC SMALL LETTER YERU
+    0x044c: 0x00ed,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x044d: 0x00f7,     #  CYRILLIC SMALL LETTER E
+    0x044e: 0x009c,     #  CYRILLIC SMALL LETTER YU
+    0x044f: 0x00de,     #  CYRILLIC SMALL LETTER YA
+    0x0451: 0x0084,     #  CYRILLIC SMALL LETTER IO
+    0x0452: 0x0080,     #  CYRILLIC SMALL LETTER DJE
+    0x0453: 0x0082,     #  CYRILLIC SMALL LETTER GJE
+    0x0454: 0x0086,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x0455: 0x0088,     #  CYRILLIC SMALL LETTER DZE
+    0x0456: 0x008a,     #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    0x0457: 0x008c,     #  CYRILLIC SMALL LETTER YI
+    0x0458: 0x008e,     #  CYRILLIC SMALL LETTER JE
+    0x0459: 0x0090,     #  CYRILLIC SMALL LETTER LJE
+    0x045a: 0x0092,     #  CYRILLIC SMALL LETTER NJE
+    0x045b: 0x0094,     #  CYRILLIC SMALL LETTER TSHE
+    0x045c: 0x0096,     #  CYRILLIC SMALL LETTER KJE
+    0x045e: 0x0098,     #  CYRILLIC SMALL LETTER SHORT U
+    0x045f: 0x009a,     #  CYRILLIC SMALL LETTER DZHE
+    0x2116: 0x00ef,     #  NUMERO SIGN
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp856.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp856.py
new file mode 100644
index 0000000..cacbfb2
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp856.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp856 generated from 'MAPPINGS/VENDORS/MISC/CP856.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp856',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u05d0'   #  0x80 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x81 -> HEBREW LETTER BET
+    '\u05d2'   #  0x82 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x83 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x84 -> HEBREW LETTER HE
+    '\u05d5'   #  0x85 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x86 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x87 -> HEBREW LETTER HET
+    '\u05d8'   #  0x88 -> HEBREW LETTER TET
+    '\u05d9'   #  0x89 -> HEBREW LETTER YOD
+    '\u05da'   #  0x8A -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x8B -> HEBREW LETTER KAF
+    '\u05dc'   #  0x8C -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x8D -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x8E -> HEBREW LETTER MEM
+    '\u05df'   #  0x8F -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x90 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x91 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0x92 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x93 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x94 -> HEBREW LETTER PE
+    '\u05e5'   #  0x95 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x96 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x97 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x98 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x99 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0x9A -> HEBREW LETTER TAV
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\xa3'     #  0x9C -> POUND SIGN
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\xd7'     #  0x9E -> MULTIPLICATION SIGN
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\ufffe'   #  0xA0 -> UNDEFINED
+    '\ufffe'   #  0xA1 -> UNDEFINED
+    '\ufffe'   #  0xA2 -> UNDEFINED
+    '\ufffe'   #  0xA3 -> UNDEFINED
+    '\ufffe'   #  0xA4 -> UNDEFINED
+    '\ufffe'   #  0xA5 -> UNDEFINED
+    '\ufffe'   #  0xA6 -> UNDEFINED
+    '\ufffe'   #  0xA7 -> UNDEFINED
+    '\ufffe'   #  0xA8 -> UNDEFINED
+    '\xae'     #  0xA9 -> REGISTERED SIGN
+    '\xac'     #  0xAA -> NOT SIGN
+    '\xbd'     #  0xAB -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0xAC -> VULGAR FRACTION ONE QUARTER
+    '\ufffe'   #  0xAD -> UNDEFINED
+    '\xab'     #  0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0xB0 -> LIGHT SHADE
+    '\u2592'   #  0xB1 -> MEDIUM SHADE
+    '\u2593'   #  0xB2 -> DARK SHADE
+    '\u2502'   #  0xB3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\ufffe'   #  0xB5 -> UNDEFINED
+    '\ufffe'   #  0xB6 -> UNDEFINED
+    '\ufffe'   #  0xB7 -> UNDEFINED
+    '\xa9'     #  0xB8 -> COPYRIGHT SIGN
+    '\u2563'   #  0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0xBA -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0xBD -> CENT SIGN
+    '\xa5'     #  0xBE -> YEN SIGN
+    '\u2510'   #  0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\ufffe'   #  0xC6 -> UNDEFINED
+    '\ufffe'   #  0xC7 -> UNDEFINED
+    '\u255a'   #  0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0xCF -> CURRENCY SIGN
+    '\ufffe'   #  0xD0 -> UNDEFINED
+    '\ufffe'   #  0xD1 -> UNDEFINED
+    '\ufffe'   #  0xD2 -> UNDEFINED
+    '\ufffe'   #  0xD3 -> UNDEFINEDS
+    '\ufffe'   #  0xD4 -> UNDEFINED
+    '\ufffe'   #  0xD5 -> UNDEFINED
+    '\ufffe'   #  0xD6 -> UNDEFINEDE
+    '\ufffe'   #  0xD7 -> UNDEFINED
+    '\ufffe'   #  0xD8 -> UNDEFINED
+    '\u2518'   #  0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0xDB -> FULL BLOCK
+    '\u2584'   #  0xDC -> LOWER HALF BLOCK
+    '\xa6'     #  0xDD -> BROKEN BAR
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\u2580'   #  0xDF -> UPPER HALF BLOCK
+    '\ufffe'   #  0xE0 -> UNDEFINED
+    '\ufffe'   #  0xE1 -> UNDEFINED
+    '\ufffe'   #  0xE2 -> UNDEFINED
+    '\ufffe'   #  0xE3 -> UNDEFINED
+    '\ufffe'   #  0xE4 -> UNDEFINED
+    '\ufffe'   #  0xE5 -> UNDEFINED
+    '\xb5'     #  0xE6 -> MICRO SIGN
+    '\ufffe'   #  0xE7 -> UNDEFINED
+    '\ufffe'   #  0xE8 -> UNDEFINED
+    '\ufffe'   #  0xE9 -> UNDEFINED
+    '\ufffe'   #  0xEA -> UNDEFINED
+    '\ufffe'   #  0xEB -> UNDEFINED
+    '\ufffe'   #  0xEC -> UNDEFINED
+    '\ufffe'   #  0xED -> UNDEFINED
+    '\xaf'     #  0xEE -> MACRON
+    '\xb4'     #  0xEF -> ACUTE ACCENT
+    '\xad'     #  0xF0 -> SOFT HYPHEN
+    '\xb1'     #  0xF1 -> PLUS-MINUS SIGN
+    '\u2017'   #  0xF2 -> DOUBLE LOW LINE
+    '\xbe'     #  0xF3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0xF4 -> PILCROW SIGN
+    '\xa7'     #  0xF5 -> SECTION SIGN
+    '\xf7'     #  0xF6 -> DIVISION SIGN
+    '\xb8'     #  0xF7 -> CEDILLA
+    '\xb0'     #  0xF8 -> DEGREE SIGN
+    '\xa8'     #  0xF9 -> DIAERESIS
+    '\xb7'     #  0xFA -> MIDDLE DOT
+    '\xb9'     #  0xFB -> SUPERSCRIPT ONE
+    '\xb3'     #  0xFC -> SUPERSCRIPT THREE
+    '\xb2'     #  0xFD -> SUPERSCRIPT TWO
+    '\u25a0'   #  0xFE -> BLACK SQUARE
+    '\xa0'     #  0xFF -> NO-BREAK SPACE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp857.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp857.py
new file mode 100644
index 0000000..741b059
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp857.py
@@ -0,0 +1,694 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP857.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp857',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x0131,     #  LATIN SMALL LETTER DOTLESS I
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x0130,     #  LATIN CAPITAL LETTER I WITH DOT ABOVE
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x015e,     #  LATIN CAPITAL LETTER S WITH CEDILLA
+    0x009f: 0x015f,     #  LATIN SMALL LETTER S WITH CEDILLA
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x011e,     #  LATIN CAPITAL LETTER G WITH BREVE
+    0x00a7: 0x011f,     #  LATIN SMALL LETTER G WITH BREVE
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x00ae,     #  REGISTERED SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00b6: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00b7: 0x00c0,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00b8: 0x00a9,     #  COPYRIGHT SIGN
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x00a2,     #  CENT SIGN
+    0x00be: 0x00a5,     #  YEN SIGN
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x00e3,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00c7: 0x00c3,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x00a4,     #  CURRENCY SIGN
+    0x00d0: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00d1: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00d2: 0x00ca,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00d3: 0x00cb,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00d4: 0x00c8,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00d5: None,       #  UNDEFINED
+    0x00d6: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d7: 0x00ce,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00d8: 0x00cf,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x00a6,     #  BROKEN BAR
+    0x00de: 0x00cc,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00e3: 0x00d2,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00e4: 0x00f5,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00e5: 0x00d5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: None,       #  UNDEFINED
+    0x00e8: 0x00d7,     #  MULTIPLICATION SIGN
+    0x00e9: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00ea: 0x00db,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00eb: 0x00d9,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00ed: 0x00ff,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x00ee: 0x00af,     #  MACRON
+    0x00ef: 0x00b4,     #  ACUTE ACCENT
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: None,       #  UNDEFINED
+    0x00f3: 0x00be,     #  VULGAR FRACTION THREE QUARTERS
+    0x00f4: 0x00b6,     #  PILCROW SIGN
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x00b8,     #  CEDILLA
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x00a8,     #  DIAERESIS
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x00b9,     #  SUPERSCRIPT ONE
+    0x00fc: 0x00b3,     #  SUPERSCRIPT THREE
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u0131'   #  0x008d -> LATIN SMALL LETTER DOTLESS I
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\u0130'   #  0x0098 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u015e'   #  0x009e -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u015f'   #  0x009f -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u011e'   #  0x00a6 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u011f'   #  0x00a7 -> LATIN SMALL LETTER G WITH BREVE
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa9'     #  0x00b8 -> COPYRIGHT SIGN
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0x00bd -> CENT SIGN
+    '\xa5'     #  0x00be -> YEN SIGN
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
+    '\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\xba'     #  0x00d0 -> MASCULINE ORDINAL INDICATOR
+    '\xaa'     #  0x00d1 -> FEMININE ORDINAL INDICATOR
+    '\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\ufffe'   #  0x00d5 -> UNDEFINED
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\xa6'     #  0x00dd -> BROKEN BAR
+    '\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\ufffe'   #  0x00e7 -> UNDEFINED
+    '\xd7'     #  0x00e8 -> MULTIPLICATION SIGN
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xec'     #  0x00ec -> LATIN SMALL LETTER I WITH GRAVE
+    '\xff'     #  0x00ed -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xaf'     #  0x00ee -> MACRON
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\ufffe'   #  0x00f2 -> UNDEFINED
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x00bd,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x00cf,     #  CURRENCY SIGN
+    0x00a5: 0x00be,     #  YEN SIGN
+    0x00a6: 0x00dd,     #  BROKEN BAR
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a8: 0x00f9,     #  DIAERESIS
+    0x00a9: 0x00b8,     #  COPYRIGHT SIGN
+    0x00aa: 0x00d1,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00ae: 0x00a9,     #  REGISTERED SIGN
+    0x00af: 0x00ee,     #  MACRON
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b3: 0x00fc,     #  SUPERSCRIPT THREE
+    0x00b4: 0x00ef,     #  ACUTE ACCENT
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b6: 0x00f4,     #  PILCROW SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00b8: 0x00f7,     #  CEDILLA
+    0x00b9: 0x00fb,     #  SUPERSCRIPT ONE
+    0x00ba: 0x00d0,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00be: 0x00f3,     #  VULGAR FRACTION THREE QUARTERS
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c0: 0x00b7,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00c1: 0x00b5,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c2: 0x00b6,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c3: 0x00c7,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c8: 0x00d4,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00ca: 0x00d2,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00cb: 0x00d3,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00cc: 0x00de,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00cd: 0x00d6,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00ce: 0x00d7,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00cf: 0x00d8,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d2: 0x00e3,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00d3: 0x00e0,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d4: 0x00e2,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d5: 0x00e5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d7: 0x00e8,     #  MULTIPLICATION SIGN
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00d9: 0x00eb,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00da: 0x00e9,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00db: 0x00ea,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e3: 0x00c6,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ec: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f5: 0x00e4,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00ff: 0x00ed,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x011e: 0x00a6,     #  LATIN CAPITAL LETTER G WITH BREVE
+    0x011f: 0x00a7,     #  LATIN SMALL LETTER G WITH BREVE
+    0x0130: 0x0098,     #  LATIN CAPITAL LETTER I WITH DOT ABOVE
+    0x0131: 0x008d,     #  LATIN SMALL LETTER DOTLESS I
+    0x015e: 0x009e,     #  LATIN CAPITAL LETTER S WITH CEDILLA
+    0x015f: 0x009f,     #  LATIN SMALL LETTER S WITH CEDILLA
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp858.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp858.py
new file mode 100644
index 0000000..7579f52
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp858.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec for CP858, modified from cp850.
+
+"""
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp858',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00ff,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x00d7,     #  MULTIPLICATION SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x00ae,     #  REGISTERED SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00b6: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00b7: 0x00c0,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00b8: 0x00a9,     #  COPYRIGHT SIGN
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x00a2,     #  CENT SIGN
+    0x00be: 0x00a5,     #  YEN SIGN
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x00e3,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00c7: 0x00c3,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x00a4,     #  CURRENCY SIGN
+    0x00d0: 0x00f0,     #  LATIN SMALL LETTER ETH
+    0x00d1: 0x00d0,     #  LATIN CAPITAL LETTER ETH
+    0x00d2: 0x00ca,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00d3: 0x00cb,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00d4: 0x00c8,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00d5: 0x20ac,     #  EURO SIGN
+    0x00d6: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d7: 0x00ce,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00d8: 0x00cf,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x00a6,     #  BROKEN BAR
+    0x00de: 0x00cc,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00e3: 0x00d2,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00e4: 0x00f5,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00e5: 0x00d5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x00fe,     #  LATIN SMALL LETTER THORN
+    0x00e8: 0x00de,     #  LATIN CAPITAL LETTER THORN
+    0x00e9: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00ea: 0x00db,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00eb: 0x00d9,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00ec: 0x00fd,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00ed: 0x00dd,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00ee: 0x00af,     #  MACRON
+    0x00ef: 0x00b4,     #  ACUTE ACCENT
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2017,     #  DOUBLE LOW LINE
+    0x00f3: 0x00be,     #  VULGAR FRACTION THREE QUARTERS
+    0x00f4: 0x00b6,     #  PILCROW SIGN
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x00b8,     #  CEDILLA
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x00a8,     #  DIAERESIS
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x00b9,     #  SUPERSCRIPT ONE
+    0x00fc: 0x00b3,     #  SUPERSCRIPT THREE
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa9'     #  0x00b8 -> COPYRIGHT SIGN
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0x00bd -> CENT SIGN
+    '\xa5'     #  0x00be -> YEN SIGN
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
+    '\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\xf0'     #  0x00d0 -> LATIN SMALL LETTER ETH
+    '\xd0'     #  0x00d1 -> LATIN CAPITAL LETTER ETH
+    '\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\u20ac'   #  0x00d5 -> EURO SIGN
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\xa6'     #  0x00dd -> BROKEN BAR
+    '\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\xfe'     #  0x00e7 -> LATIN SMALL LETTER THORN
+    '\xde'     #  0x00e8 -> LATIN CAPITAL LETTER THORN
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xaf'     #  0x00ee -> MACRON
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2017'   #  0x00f2 -> DOUBLE LOW LINE
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x00bd,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x00cf,     #  CURRENCY SIGN
+    0x00a5: 0x00be,     #  YEN SIGN
+    0x00a6: 0x00dd,     #  BROKEN BAR
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a8: 0x00f9,     #  DIAERESIS
+    0x00a9: 0x00b8,     #  COPYRIGHT SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00ae: 0x00a9,     #  REGISTERED SIGN
+    0x00af: 0x00ee,     #  MACRON
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b3: 0x00fc,     #  SUPERSCRIPT THREE
+    0x00b4: 0x00ef,     #  ACUTE ACCENT
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b6: 0x00f4,     #  PILCROW SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00b8: 0x00f7,     #  CEDILLA
+    0x00b9: 0x00fb,     #  SUPERSCRIPT ONE
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00be: 0x00f3,     #  VULGAR FRACTION THREE QUARTERS
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c0: 0x00b7,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00c1: 0x00b5,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c2: 0x00b6,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c3: 0x00c7,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c8: 0x00d4,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00ca: 0x00d2,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00cb: 0x00d3,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00cc: 0x00de,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00cd: 0x00d6,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00ce: 0x00d7,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00cf: 0x00d8,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d0: 0x00d1,     #  LATIN CAPITAL LETTER ETH
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d2: 0x00e3,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00d3: 0x00e0,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d4: 0x00e2,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d5: 0x00e5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d7: 0x009e,     #  MULTIPLICATION SIGN
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00d9: 0x00eb,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00da: 0x00e9,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00db: 0x00ea,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00dd: 0x00ed,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00de: 0x00e8,     #  LATIN CAPITAL LETTER THORN
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e3: 0x00c6,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ec: 0x008d,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f0: 0x00d0,     #  LATIN SMALL LETTER ETH
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f5: 0x00e4,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00fd: 0x00ec,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00fe: 0x00e7,     #  LATIN SMALL LETTER THORN
+    0x00ff: 0x0098,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x20ac: 0x00d5,     #  EURO SIGN
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x2017: 0x00f2,     #  DOUBLE LOW LINE
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp860.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp860.py
new file mode 100644
index 0000000..65903e7
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp860.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP860.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp860',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e3,     #  LATIN SMALL LETTER A WITH TILDE
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00ca,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x008c: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x008d: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x008e: 0x00c3,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x008f: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00c0,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x0092: 0x00c8,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f5,     #  LATIN SMALL LETTER O WITH TILDE
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00cc,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x0099: 0x00d5,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00a2,     #  CENT SIGN
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d9,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x009e: 0x20a7,     #  PESETA SIGN
+    0x009f: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x00d2,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0x0084 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xc1'     #  0x0086 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xca'     #  0x0089 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xcd'     #  0x008b -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xd4'     #  0x008c -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc3'     #  0x008e -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc2'     #  0x008f -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xc0'     #  0x0091 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc8'     #  0x0092 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0x0094 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xda'     #  0x0096 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xcc'     #  0x0098 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd5'     #  0x0099 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\xd3'     #  0x009f -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xd2'     #  0x00a9 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x009b,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c0: 0x0091,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00c1: 0x0086,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c2: 0x008f,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c3: 0x008e,     #  LATIN CAPITAL LETTER A WITH TILDE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c8: 0x0092,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00ca: 0x0089,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00cc: 0x0098,     #  LATIN CAPITAL LETTER I WITH GRAVE
+    0x00cd: 0x008b,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d2: 0x00a9,     #  LATIN CAPITAL LETTER O WITH GRAVE
+    0x00d3: 0x009f,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d4: 0x008c,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d5: 0x0099,     #  LATIN CAPITAL LETTER O WITH TILDE
+    0x00d9: 0x009d,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00da: 0x0096,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e3: 0x0084,     #  LATIN SMALL LETTER A WITH TILDE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00ec: 0x008d,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f5: 0x0094,     #  LATIN SMALL LETTER O WITH TILDE
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x20a7: 0x009e,     #  PESETA SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp861.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp861.py
new file mode 100644
index 0000000..860a05f
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp861.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP861.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp861',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00d0,     #  LATIN CAPITAL LETTER ETH
+    0x008c: 0x00f0,     #  LATIN SMALL LETTER ETH
+    0x008d: 0x00de,     #  LATIN CAPITAL LETTER THORN
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00fe,     #  LATIN SMALL LETTER THORN
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00dd,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x0098: 0x00fd,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x20a7,     #  PESETA SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00c1,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00a5: 0x00cd,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00a6: 0x00d3,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00a7: 0x00da,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x2310,     #  REVERSED NOT SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xd0'     #  0x008b -> LATIN CAPITAL LETTER ETH
+    '\xf0'     #  0x008c -> LATIN SMALL LETTER ETH
+    '\xde'     #  0x008d -> LATIN CAPITAL LETTER THORN
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xfe'     #  0x0095 -> LATIN SMALL LETTER THORN
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xdd'     #  0x0097 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xfd'     #  0x0098 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xc1'     #  0x00a4 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcd'     #  0x00a5 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xd3'     #  0x00a6 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xda'     #  0x00a7 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c1: 0x00a4,     #  LATIN CAPITAL LETTER A WITH ACUTE
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00cd: 0x00a5,     #  LATIN CAPITAL LETTER I WITH ACUTE
+    0x00d0: 0x008b,     #  LATIN CAPITAL LETTER ETH
+    0x00d3: 0x00a6,     #  LATIN CAPITAL LETTER O WITH ACUTE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00da: 0x00a7,     #  LATIN CAPITAL LETTER U WITH ACUTE
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00dd: 0x0097,     #  LATIN CAPITAL LETTER Y WITH ACUTE
+    0x00de: 0x008d,     #  LATIN CAPITAL LETTER THORN
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00f0: 0x008c,     #  LATIN SMALL LETTER ETH
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00fd: 0x0098,     #  LATIN SMALL LETTER Y WITH ACUTE
+    0x00fe: 0x0095,     #  LATIN SMALL LETTER THORN
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x20a7: 0x009e,     #  PESETA SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2310: 0x00a9,     #  REVERSED NOT SIGN
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp862.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp862.py
new file mode 100644
index 0000000..3df22f9
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp862.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP862.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp862',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x05d0,     #  HEBREW LETTER ALEF
+    0x0081: 0x05d1,     #  HEBREW LETTER BET
+    0x0082: 0x05d2,     #  HEBREW LETTER GIMEL
+    0x0083: 0x05d3,     #  HEBREW LETTER DALET
+    0x0084: 0x05d4,     #  HEBREW LETTER HE
+    0x0085: 0x05d5,     #  HEBREW LETTER VAV
+    0x0086: 0x05d6,     #  HEBREW LETTER ZAYIN
+    0x0087: 0x05d7,     #  HEBREW LETTER HET
+    0x0088: 0x05d8,     #  HEBREW LETTER TET
+    0x0089: 0x05d9,     #  HEBREW LETTER YOD
+    0x008a: 0x05da,     #  HEBREW LETTER FINAL KAF
+    0x008b: 0x05db,     #  HEBREW LETTER KAF
+    0x008c: 0x05dc,     #  HEBREW LETTER LAMED
+    0x008d: 0x05dd,     #  HEBREW LETTER FINAL MEM
+    0x008e: 0x05de,     #  HEBREW LETTER MEM
+    0x008f: 0x05df,     #  HEBREW LETTER FINAL NUN
+    0x0090: 0x05e0,     #  HEBREW LETTER NUN
+    0x0091: 0x05e1,     #  HEBREW LETTER SAMEKH
+    0x0092: 0x05e2,     #  HEBREW LETTER AYIN
+    0x0093: 0x05e3,     #  HEBREW LETTER FINAL PE
+    0x0094: 0x05e4,     #  HEBREW LETTER PE
+    0x0095: 0x05e5,     #  HEBREW LETTER FINAL TSADI
+    0x0096: 0x05e6,     #  HEBREW LETTER TSADI
+    0x0097: 0x05e7,     #  HEBREW LETTER QOF
+    0x0098: 0x05e8,     #  HEBREW LETTER RESH
+    0x0099: 0x05e9,     #  HEBREW LETTER SHIN
+    0x009a: 0x05ea,     #  HEBREW LETTER TAV
+    0x009b: 0x00a2,     #  CENT SIGN
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00a5,     #  YEN SIGN
+    0x009e: 0x20a7,     #  PESETA SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x2310,     #  REVERSED NOT SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S (GERMAN)
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u05d0'   #  0x0080 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x0081 -> HEBREW LETTER BET
+    '\u05d2'   #  0x0082 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x0083 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x0084 -> HEBREW LETTER HE
+    '\u05d5'   #  0x0085 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x0086 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x0087 -> HEBREW LETTER HET
+    '\u05d8'   #  0x0088 -> HEBREW LETTER TET
+    '\u05d9'   #  0x0089 -> HEBREW LETTER YOD
+    '\u05da'   #  0x008a -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x008b -> HEBREW LETTER KAF
+    '\u05dc'   #  0x008c -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x008d -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x008e -> HEBREW LETTER MEM
+    '\u05df'   #  0x008f -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x0090 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x0091 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0x0092 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x0093 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x0094 -> HEBREW LETTER PE
+    '\u05e5'   #  0x0095 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x0096 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x0097 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x0098 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x0099 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0x009a -> HEBREW LETTER TAV
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xa5'     #  0x009d -> YEN SIGN
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a2: 0x009b,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a5: 0x009d,     #  YEN SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S (GERMAN)
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x05d0: 0x0080,     #  HEBREW LETTER ALEF
+    0x05d1: 0x0081,     #  HEBREW LETTER BET
+    0x05d2: 0x0082,     #  HEBREW LETTER GIMEL
+    0x05d3: 0x0083,     #  HEBREW LETTER DALET
+    0x05d4: 0x0084,     #  HEBREW LETTER HE
+    0x05d5: 0x0085,     #  HEBREW LETTER VAV
+    0x05d6: 0x0086,     #  HEBREW LETTER ZAYIN
+    0x05d7: 0x0087,     #  HEBREW LETTER HET
+    0x05d8: 0x0088,     #  HEBREW LETTER TET
+    0x05d9: 0x0089,     #  HEBREW LETTER YOD
+    0x05da: 0x008a,     #  HEBREW LETTER FINAL KAF
+    0x05db: 0x008b,     #  HEBREW LETTER KAF
+    0x05dc: 0x008c,     #  HEBREW LETTER LAMED
+    0x05dd: 0x008d,     #  HEBREW LETTER FINAL MEM
+    0x05de: 0x008e,     #  HEBREW LETTER MEM
+    0x05df: 0x008f,     #  HEBREW LETTER FINAL NUN
+    0x05e0: 0x0090,     #  HEBREW LETTER NUN
+    0x05e1: 0x0091,     #  HEBREW LETTER SAMEKH
+    0x05e2: 0x0092,     #  HEBREW LETTER AYIN
+    0x05e3: 0x0093,     #  HEBREW LETTER FINAL PE
+    0x05e4: 0x0094,     #  HEBREW LETTER PE
+    0x05e5: 0x0095,     #  HEBREW LETTER FINAL TSADI
+    0x05e6: 0x0096,     #  HEBREW LETTER TSADI
+    0x05e7: 0x0097,     #  HEBREW LETTER QOF
+    0x05e8: 0x0098,     #  HEBREW LETTER RESH
+    0x05e9: 0x0099,     #  HEBREW LETTER SHIN
+    0x05ea: 0x009a,     #  HEBREW LETTER TAV
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x20a7: 0x009e,     #  PESETA SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2310: 0x00a9,     #  REVERSED NOT SIGN
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp863.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp863.py
new file mode 100644
index 0000000..764180b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp863.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP863.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp863',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00c2,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00b6,     #  PILCROW SIGN
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x2017,     #  DOUBLE LOW LINE
+    0x008e: 0x00c0,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x008f: 0x00a7,     #  SECTION SIGN
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00c8,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x0092: 0x00ca,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00cb,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x0095: 0x00cf,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00a4,     #  CURRENCY SIGN
+    0x0099: 0x00d4,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00a2,     #  CENT SIGN
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d9,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x009e: 0x00db,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00a6,     #  BROKEN BAR
+    0x00a1: 0x00b4,     #  ACUTE ACCENT
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00a8,     #  DIAERESIS
+    0x00a5: 0x00b8,     #  CEDILLA
+    0x00a6: 0x00b3,     #  SUPERSCRIPT THREE
+    0x00a7: 0x00af,     #  MACRON
+    0x00a8: 0x00ce,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00a9: 0x2310,     #  REVERSED NOT SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00be,     #  VULGAR FRACTION THREE QUARTERS
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xc2'     #  0x0084 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xb6'     #  0x0086 -> PILCROW SIGN
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u2017'   #  0x008d -> DOUBLE LOW LINE
+    '\xc0'     #  0x008e -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa7'     #  0x008f -> SECTION SIGN
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xc8'     #  0x0091 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xca'     #  0x0092 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xcb'     #  0x0094 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcf'     #  0x0095 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xa4'     #  0x0098 -> CURRENCY SIGN
+    '\xd4'     #  0x0099 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xdb'     #  0x009e -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xa6'     #  0x00a0 -> BROKEN BAR
+    '\xb4'     #  0x00a1 -> ACUTE ACCENT
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xa8'     #  0x00a4 -> DIAERESIS
+    '\xb8'     #  0x00a5 -> CEDILLA
+    '\xb3'     #  0x00a6 -> SUPERSCRIPT THREE
+    '\xaf'     #  0x00a7 -> MACRON
+    '\xce'     #  0x00a8 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xbe'     #  0x00ad -> VULGAR FRACTION THREE QUARTERS
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a2: 0x009b,     #  CENT SIGN
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x0098,     #  CURRENCY SIGN
+    0x00a6: 0x00a0,     #  BROKEN BAR
+    0x00a7: 0x008f,     #  SECTION SIGN
+    0x00a8: 0x00a4,     #  DIAERESIS
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00af: 0x00a7,     #  MACRON
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b3: 0x00a6,     #  SUPERSCRIPT THREE
+    0x00b4: 0x00a1,     #  ACUTE ACCENT
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b6: 0x0086,     #  PILCROW SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00b8: 0x00a5,     #  CEDILLA
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00be: 0x00ad,     #  VULGAR FRACTION THREE QUARTERS
+    0x00c0: 0x008e,     #  LATIN CAPITAL LETTER A WITH GRAVE
+    0x00c2: 0x0084,     #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c8: 0x0091,     #  LATIN CAPITAL LETTER E WITH GRAVE
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00ca: 0x0092,     #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    0x00cb: 0x0094,     #  LATIN CAPITAL LETTER E WITH DIAERESIS
+    0x00ce: 0x00a8,     #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    0x00cf: 0x0095,     #  LATIN CAPITAL LETTER I WITH DIAERESIS
+    0x00d4: 0x0099,     #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    0x00d9: 0x009d,     #  LATIN CAPITAL LETTER U WITH GRAVE
+    0x00db: 0x009e,     #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x2017: 0x008d,     #  DOUBLE LOW LINE
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2310: 0x00a9,     #  REVERSED NOT SIGN
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp864.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp864.py
new file mode 100644
index 0000000..53df482
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp864.py
@@ -0,0 +1,690 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP864.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp864',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0025: 0x066a,     #  ARABIC PERCENT SIGN
+    0x0080: 0x00b0,     #  DEGREE SIGN
+    0x0081: 0x00b7,     #  MIDDLE DOT
+    0x0082: 0x2219,     #  BULLET OPERATOR
+    0x0083: 0x221a,     #  SQUARE ROOT
+    0x0084: 0x2592,     #  MEDIUM SHADE
+    0x0085: 0x2500,     #  FORMS LIGHT HORIZONTAL
+    0x0086: 0x2502,     #  FORMS LIGHT VERTICAL
+    0x0087: 0x253c,     #  FORMS LIGHT VERTICAL AND HORIZONTAL
+    0x0088: 0x2524,     #  FORMS LIGHT VERTICAL AND LEFT
+    0x0089: 0x252c,     #  FORMS LIGHT DOWN AND HORIZONTAL
+    0x008a: 0x251c,     #  FORMS LIGHT VERTICAL AND RIGHT
+    0x008b: 0x2534,     #  FORMS LIGHT UP AND HORIZONTAL
+    0x008c: 0x2510,     #  FORMS LIGHT DOWN AND LEFT
+    0x008d: 0x250c,     #  FORMS LIGHT DOWN AND RIGHT
+    0x008e: 0x2514,     #  FORMS LIGHT UP AND RIGHT
+    0x008f: 0x2518,     #  FORMS LIGHT UP AND LEFT
+    0x0090: 0x03b2,     #  GREEK SMALL BETA
+    0x0091: 0x221e,     #  INFINITY
+    0x0092: 0x03c6,     #  GREEK SMALL PHI
+    0x0093: 0x00b1,     #  PLUS-OR-MINUS SIGN
+    0x0094: 0x00bd,     #  FRACTION 1/2
+    0x0095: 0x00bc,     #  FRACTION 1/4
+    0x0096: 0x2248,     #  ALMOST EQUAL TO
+    0x0097: 0x00ab,     #  LEFT POINTING GUILLEMET
+    0x0098: 0x00bb,     #  RIGHT POINTING GUILLEMET
+    0x0099: 0xfef7,     #  ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+    0x009a: 0xfef8,     #  ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+    0x009b: None,       #  UNDEFINED
+    0x009c: None,       #  UNDEFINED
+    0x009d: 0xfefb,     #  ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+    0x009e: 0xfefc,     #  ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+    0x009f: None,       #  UNDEFINED
+    0x00a1: 0x00ad,     #  SOFT HYPHEN
+    0x00a2: 0xfe82,     #  ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+    0x00a5: 0xfe84,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+    0x00a6: None,       #  UNDEFINED
+    0x00a7: None,       #  UNDEFINED
+    0x00a8: 0xfe8e,     #  ARABIC LETTER ALEF FINAL FORM
+    0x00a9: 0xfe8f,     #  ARABIC LETTER BEH ISOLATED FORM
+    0x00aa: 0xfe95,     #  ARABIC LETTER TEH ISOLATED FORM
+    0x00ab: 0xfe99,     #  ARABIC LETTER THEH ISOLATED FORM
+    0x00ac: 0x060c,     #  ARABIC COMMA
+    0x00ad: 0xfe9d,     #  ARABIC LETTER JEEM ISOLATED FORM
+    0x00ae: 0xfea1,     #  ARABIC LETTER HAH ISOLATED FORM
+    0x00af: 0xfea5,     #  ARABIC LETTER KHAH ISOLATED FORM
+    0x00b0: 0x0660,     #  ARABIC-INDIC DIGIT ZERO
+    0x00b1: 0x0661,     #  ARABIC-INDIC DIGIT ONE
+    0x00b2: 0x0662,     #  ARABIC-INDIC DIGIT TWO
+    0x00b3: 0x0663,     #  ARABIC-INDIC DIGIT THREE
+    0x00b4: 0x0664,     #  ARABIC-INDIC DIGIT FOUR
+    0x00b5: 0x0665,     #  ARABIC-INDIC DIGIT FIVE
+    0x00b6: 0x0666,     #  ARABIC-INDIC DIGIT SIX
+    0x00b7: 0x0667,     #  ARABIC-INDIC DIGIT SEVEN
+    0x00b8: 0x0668,     #  ARABIC-INDIC DIGIT EIGHT
+    0x00b9: 0x0669,     #  ARABIC-INDIC DIGIT NINE
+    0x00ba: 0xfed1,     #  ARABIC LETTER FEH ISOLATED FORM
+    0x00bb: 0x061b,     #  ARABIC SEMICOLON
+    0x00bc: 0xfeb1,     #  ARABIC LETTER SEEN ISOLATED FORM
+    0x00bd: 0xfeb5,     #  ARABIC LETTER SHEEN ISOLATED FORM
+    0x00be: 0xfeb9,     #  ARABIC LETTER SAD ISOLATED FORM
+    0x00bf: 0x061f,     #  ARABIC QUESTION MARK
+    0x00c0: 0x00a2,     #  CENT SIGN
+    0x00c1: 0xfe80,     #  ARABIC LETTER HAMZA ISOLATED FORM
+    0x00c2: 0xfe81,     #  ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    0x00c3: 0xfe83,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+    0x00c4: 0xfe85,     #  ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    0x00c5: 0xfeca,     #  ARABIC LETTER AIN FINAL FORM
+    0x00c6: 0xfe8b,     #  ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    0x00c7: 0xfe8d,     #  ARABIC LETTER ALEF ISOLATED FORM
+    0x00c8: 0xfe91,     #  ARABIC LETTER BEH INITIAL FORM
+    0x00c9: 0xfe93,     #  ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    0x00ca: 0xfe97,     #  ARABIC LETTER TEH INITIAL FORM
+    0x00cb: 0xfe9b,     #  ARABIC LETTER THEH INITIAL FORM
+    0x00cc: 0xfe9f,     #  ARABIC LETTER JEEM INITIAL FORM
+    0x00cd: 0xfea3,     #  ARABIC LETTER HAH INITIAL FORM
+    0x00ce: 0xfea7,     #  ARABIC LETTER KHAH INITIAL FORM
+    0x00cf: 0xfea9,     #  ARABIC LETTER DAL ISOLATED FORM
+    0x00d0: 0xfeab,     #  ARABIC LETTER THAL ISOLATED FORM
+    0x00d1: 0xfead,     #  ARABIC LETTER REH ISOLATED FORM
+    0x00d2: 0xfeaf,     #  ARABIC LETTER ZAIN ISOLATED FORM
+    0x00d3: 0xfeb3,     #  ARABIC LETTER SEEN INITIAL FORM
+    0x00d4: 0xfeb7,     #  ARABIC LETTER SHEEN INITIAL FORM
+    0x00d5: 0xfebb,     #  ARABIC LETTER SAD INITIAL FORM
+    0x00d6: 0xfebf,     #  ARABIC LETTER DAD INITIAL FORM
+    0x00d7: 0xfec1,     #  ARABIC LETTER TAH ISOLATED FORM
+    0x00d8: 0xfec5,     #  ARABIC LETTER ZAH ISOLATED FORM
+    0x00d9: 0xfecb,     #  ARABIC LETTER AIN INITIAL FORM
+    0x00da: 0xfecf,     #  ARABIC LETTER GHAIN INITIAL FORM
+    0x00db: 0x00a6,     #  BROKEN VERTICAL BAR
+    0x00dc: 0x00ac,     #  NOT SIGN
+    0x00dd: 0x00f7,     #  DIVISION SIGN
+    0x00de: 0x00d7,     #  MULTIPLICATION SIGN
+    0x00df: 0xfec9,     #  ARABIC LETTER AIN ISOLATED FORM
+    0x00e0: 0x0640,     #  ARABIC TATWEEL
+    0x00e1: 0xfed3,     #  ARABIC LETTER FEH INITIAL FORM
+    0x00e2: 0xfed7,     #  ARABIC LETTER QAF INITIAL FORM
+    0x00e3: 0xfedb,     #  ARABIC LETTER KAF INITIAL FORM
+    0x00e4: 0xfedf,     #  ARABIC LETTER LAM INITIAL FORM
+    0x00e5: 0xfee3,     #  ARABIC LETTER MEEM INITIAL FORM
+    0x00e6: 0xfee7,     #  ARABIC LETTER NOON INITIAL FORM
+    0x00e7: 0xfeeb,     #  ARABIC LETTER HEH INITIAL FORM
+    0x00e8: 0xfeed,     #  ARABIC LETTER WAW ISOLATED FORM
+    0x00e9: 0xfeef,     #  ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+    0x00ea: 0xfef3,     #  ARABIC LETTER YEH INITIAL FORM
+    0x00eb: 0xfebd,     #  ARABIC LETTER DAD ISOLATED FORM
+    0x00ec: 0xfecc,     #  ARABIC LETTER AIN MEDIAL FORM
+    0x00ed: 0xfece,     #  ARABIC LETTER GHAIN FINAL FORM
+    0x00ee: 0xfecd,     #  ARABIC LETTER GHAIN ISOLATED FORM
+    0x00ef: 0xfee1,     #  ARABIC LETTER MEEM ISOLATED FORM
+    0x00f0: 0xfe7d,     #  ARABIC SHADDA MEDIAL FORM
+    0x00f1: 0x0651,     #  ARABIC SHADDAH
+    0x00f2: 0xfee5,     #  ARABIC LETTER NOON ISOLATED FORM
+    0x00f3: 0xfee9,     #  ARABIC LETTER HEH ISOLATED FORM
+    0x00f4: 0xfeec,     #  ARABIC LETTER HEH MEDIAL FORM
+    0x00f5: 0xfef0,     #  ARABIC LETTER ALEF MAKSURA FINAL FORM
+    0x00f6: 0xfef2,     #  ARABIC LETTER YEH FINAL FORM
+    0x00f7: 0xfed0,     #  ARABIC LETTER GHAIN MEDIAL FORM
+    0x00f8: 0xfed5,     #  ARABIC LETTER QAF ISOLATED FORM
+    0x00f9: 0xfef5,     #  ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+    0x00fa: 0xfef6,     #  ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+    0x00fb: 0xfedd,     #  ARABIC LETTER LAM ISOLATED FORM
+    0x00fc: 0xfed9,     #  ARABIC LETTER KAF ISOLATED FORM
+    0x00fd: 0xfef1,     #  ARABIC LETTER YEH ISOLATED FORM
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: None,       #  UNDEFINED
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '\u066a'   #  0x0025 -> ARABIC PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xb0'     #  0x0080 -> DEGREE SIGN
+    '\xb7'     #  0x0081 -> MIDDLE DOT
+    '\u2219'   #  0x0082 -> BULLET OPERATOR
+    '\u221a'   #  0x0083 -> SQUARE ROOT
+    '\u2592'   #  0x0084 -> MEDIUM SHADE
+    '\u2500'   #  0x0085 -> FORMS LIGHT HORIZONTAL
+    '\u2502'   #  0x0086 -> FORMS LIGHT VERTICAL
+    '\u253c'   #  0x0087 -> FORMS LIGHT VERTICAL AND HORIZONTAL
+    '\u2524'   #  0x0088 -> FORMS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x0089 -> FORMS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x008a -> FORMS LIGHT VERTICAL AND RIGHT
+    '\u2534'   #  0x008b -> FORMS LIGHT UP AND HORIZONTAL
+    '\u2510'   #  0x008c -> FORMS LIGHT DOWN AND LEFT
+    '\u250c'   #  0x008d -> FORMS LIGHT DOWN AND RIGHT
+    '\u2514'   #  0x008e -> FORMS LIGHT UP AND RIGHT
+    '\u2518'   #  0x008f -> FORMS LIGHT UP AND LEFT
+    '\u03b2'   #  0x0090 -> GREEK SMALL BETA
+    '\u221e'   #  0x0091 -> INFINITY
+    '\u03c6'   #  0x0092 -> GREEK SMALL PHI
+    '\xb1'     #  0x0093 -> PLUS-OR-MINUS SIGN
+    '\xbd'     #  0x0094 -> FRACTION 1/2
+    '\xbc'     #  0x0095 -> FRACTION 1/4
+    '\u2248'   #  0x0096 -> ALMOST EQUAL TO
+    '\xab'     #  0x0097 -> LEFT POINTING GUILLEMET
+    '\xbb'     #  0x0098 -> RIGHT POINTING GUILLEMET
+    '\ufef7'   #  0x0099 -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+    '\ufef8'   #  0x009a -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+    '\ufffe'   #  0x009b -> UNDEFINED
+    '\ufffe'   #  0x009c -> UNDEFINED
+    '\ufefb'   #  0x009d -> ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+    '\ufefc'   #  0x009e -> ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+    '\ufffe'   #  0x009f -> UNDEFINED
+    '\xa0'     #  0x00a0 -> NON-BREAKING SPACE
+    '\xad'     #  0x00a1 -> SOFT HYPHEN
+    '\ufe82'   #  0x00a2 -> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+    '\xa3'     #  0x00a3 -> POUND SIGN
+    '\xa4'     #  0x00a4 -> CURRENCY SIGN
+    '\ufe84'   #  0x00a5 -> ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+    '\ufffe'   #  0x00a6 -> UNDEFINED
+    '\ufffe'   #  0x00a7 -> UNDEFINED
+    '\ufe8e'   #  0x00a8 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8f'   #  0x00a9 -> ARABIC LETTER BEH ISOLATED FORM
+    '\ufe95'   #  0x00aa -> ARABIC LETTER TEH ISOLATED FORM
+    '\ufe99'   #  0x00ab -> ARABIC LETTER THEH ISOLATED FORM
+    '\u060c'   #  0x00ac -> ARABIC COMMA
+    '\ufe9d'   #  0x00ad -> ARABIC LETTER JEEM ISOLATED FORM
+    '\ufea1'   #  0x00ae -> ARABIC LETTER HAH ISOLATED FORM
+    '\ufea5'   #  0x00af -> ARABIC LETTER KHAH ISOLATED FORM
+    '\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO
+    '\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE
+    '\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO
+    '\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE
+    '\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR
+    '\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE
+    '\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX
+    '\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN
+    '\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT
+    '\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE
+    '\ufed1'   #  0x00ba -> ARABIC LETTER FEH ISOLATED FORM
+    '\u061b'   #  0x00bb -> ARABIC SEMICOLON
+    '\ufeb1'   #  0x00bc -> ARABIC LETTER SEEN ISOLATED FORM
+    '\ufeb5'   #  0x00bd -> ARABIC LETTER SHEEN ISOLATED FORM
+    '\ufeb9'   #  0x00be -> ARABIC LETTER SAD ISOLATED FORM
+    '\u061f'   #  0x00bf -> ARABIC QUESTION MARK
+    '\xa2'     #  0x00c0 -> CENT SIGN
+    '\ufe80'   #  0x00c1 -> ARABIC LETTER HAMZA ISOLATED FORM
+    '\ufe81'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufe83'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+    '\ufe85'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    '\ufeca'   #  0x00c5 -> ARABIC LETTER AIN FINAL FORM
+    '\ufe8b'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    '\ufe8d'   #  0x00c7 -> ARABIC LETTER ALEF ISOLATED FORM
+    '\ufe91'   #  0x00c8 -> ARABIC LETTER BEH INITIAL FORM
+    '\ufe93'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    '\ufe97'   #  0x00ca -> ARABIC LETTER TEH INITIAL FORM
+    '\ufe9b'   #  0x00cb -> ARABIC LETTER THEH INITIAL FORM
+    '\ufe9f'   #  0x00cc -> ARABIC LETTER JEEM INITIAL FORM
+    '\ufea3'   #  0x00cd -> ARABIC LETTER HAH INITIAL FORM
+    '\ufea7'   #  0x00ce -> ARABIC LETTER KHAH INITIAL FORM
+    '\ufea9'   #  0x00cf -> ARABIC LETTER DAL ISOLATED FORM
+    '\ufeab'   #  0x00d0 -> ARABIC LETTER THAL ISOLATED FORM
+    '\ufead'   #  0x00d1 -> ARABIC LETTER REH ISOLATED FORM
+    '\ufeaf'   #  0x00d2 -> ARABIC LETTER ZAIN ISOLATED FORM
+    '\ufeb3'   #  0x00d3 -> ARABIC LETTER SEEN INITIAL FORM
+    '\ufeb7'   #  0x00d4 -> ARABIC LETTER SHEEN INITIAL FORM
+    '\ufebb'   #  0x00d5 -> ARABIC LETTER SAD INITIAL FORM
+    '\ufebf'   #  0x00d6 -> ARABIC LETTER DAD INITIAL FORM
+    '\ufec1'   #  0x00d7 -> ARABIC LETTER TAH ISOLATED FORM
+    '\ufec5'   #  0x00d8 -> ARABIC LETTER ZAH ISOLATED FORM
+    '\ufecb'   #  0x00d9 -> ARABIC LETTER AIN INITIAL FORM
+    '\ufecf'   #  0x00da -> ARABIC LETTER GHAIN INITIAL FORM
+    '\xa6'     #  0x00db -> BROKEN VERTICAL BAR
+    '\xac'     #  0x00dc -> NOT SIGN
+    '\xf7'     #  0x00dd -> DIVISION SIGN
+    '\xd7'     #  0x00de -> MULTIPLICATION SIGN
+    '\ufec9'   #  0x00df -> ARABIC LETTER AIN ISOLATED FORM
+    '\u0640'   #  0x00e0 -> ARABIC TATWEEL
+    '\ufed3'   #  0x00e1 -> ARABIC LETTER FEH INITIAL FORM
+    '\ufed7'   #  0x00e2 -> ARABIC LETTER QAF INITIAL FORM
+    '\ufedb'   #  0x00e3 -> ARABIC LETTER KAF INITIAL FORM
+    '\ufedf'   #  0x00e4 -> ARABIC LETTER LAM INITIAL FORM
+    '\ufee3'   #  0x00e5 -> ARABIC LETTER MEEM INITIAL FORM
+    '\ufee7'   #  0x00e6 -> ARABIC LETTER NOON INITIAL FORM
+    '\ufeeb'   #  0x00e7 -> ARABIC LETTER HEH INITIAL FORM
+    '\ufeed'   #  0x00e8 -> ARABIC LETTER WAW ISOLATED FORM
+    '\ufeef'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+    '\ufef3'   #  0x00ea -> ARABIC LETTER YEH INITIAL FORM
+    '\ufebd'   #  0x00eb -> ARABIC LETTER DAD ISOLATED FORM
+    '\ufecc'   #  0x00ec -> ARABIC LETTER AIN MEDIAL FORM
+    '\ufece'   #  0x00ed -> ARABIC LETTER GHAIN FINAL FORM
+    '\ufecd'   #  0x00ee -> ARABIC LETTER GHAIN ISOLATED FORM
+    '\ufee1'   #  0x00ef -> ARABIC LETTER MEEM ISOLATED FORM
+    '\ufe7d'   #  0x00f0 -> ARABIC SHADDA MEDIAL FORM
+    '\u0651'   #  0x00f1 -> ARABIC SHADDAH
+    '\ufee5'   #  0x00f2 -> ARABIC LETTER NOON ISOLATED FORM
+    '\ufee9'   #  0x00f3 -> ARABIC LETTER HEH ISOLATED FORM
+    '\ufeec'   #  0x00f4 -> ARABIC LETTER HEH MEDIAL FORM
+    '\ufef0'   #  0x00f5 -> ARABIC LETTER ALEF MAKSURA FINAL FORM
+    '\ufef2'   #  0x00f6 -> ARABIC LETTER YEH FINAL FORM
+    '\ufed0'   #  0x00f7 -> ARABIC LETTER GHAIN MEDIAL FORM
+    '\ufed5'   #  0x00f8 -> ARABIC LETTER QAF ISOLATED FORM
+    '\ufef5'   #  0x00f9 -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufef6'   #  0x00fa -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+    '\ufedd'   #  0x00fb -> ARABIC LETTER LAM ISOLATED FORM
+    '\ufed9'   #  0x00fc -> ARABIC LETTER KAF ISOLATED FORM
+    '\ufef1'   #  0x00fd -> ARABIC LETTER YEH ISOLATED FORM
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\ufffe'   #  0x00ff -> UNDEFINED
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00a0,     #  NON-BREAKING SPACE
+    0x00a2: 0x00c0,     #  CENT SIGN
+    0x00a3: 0x00a3,     #  POUND SIGN
+    0x00a4: 0x00a4,     #  CURRENCY SIGN
+    0x00a6: 0x00db,     #  BROKEN VERTICAL BAR
+    0x00ab: 0x0097,     #  LEFT POINTING GUILLEMET
+    0x00ac: 0x00dc,     #  NOT SIGN
+    0x00ad: 0x00a1,     #  SOFT HYPHEN
+    0x00b0: 0x0080,     #  DEGREE SIGN
+    0x00b1: 0x0093,     #  PLUS-OR-MINUS SIGN
+    0x00b7: 0x0081,     #  MIDDLE DOT
+    0x00bb: 0x0098,     #  RIGHT POINTING GUILLEMET
+    0x00bc: 0x0095,     #  FRACTION 1/4
+    0x00bd: 0x0094,     #  FRACTION 1/2
+    0x00d7: 0x00de,     #  MULTIPLICATION SIGN
+    0x00f7: 0x00dd,     #  DIVISION SIGN
+    0x03b2: 0x0090,     #  GREEK SMALL BETA
+    0x03c6: 0x0092,     #  GREEK SMALL PHI
+    0x060c: 0x00ac,     #  ARABIC COMMA
+    0x061b: 0x00bb,     #  ARABIC SEMICOLON
+    0x061f: 0x00bf,     #  ARABIC QUESTION MARK
+    0x0640: 0x00e0,     #  ARABIC TATWEEL
+    0x0651: 0x00f1,     #  ARABIC SHADDAH
+    0x0660: 0x00b0,     #  ARABIC-INDIC DIGIT ZERO
+    0x0661: 0x00b1,     #  ARABIC-INDIC DIGIT ONE
+    0x0662: 0x00b2,     #  ARABIC-INDIC DIGIT TWO
+    0x0663: 0x00b3,     #  ARABIC-INDIC DIGIT THREE
+    0x0664: 0x00b4,     #  ARABIC-INDIC DIGIT FOUR
+    0x0665: 0x00b5,     #  ARABIC-INDIC DIGIT FIVE
+    0x0666: 0x00b6,     #  ARABIC-INDIC DIGIT SIX
+    0x0667: 0x00b7,     #  ARABIC-INDIC DIGIT SEVEN
+    0x0668: 0x00b8,     #  ARABIC-INDIC DIGIT EIGHT
+    0x0669: 0x00b9,     #  ARABIC-INDIC DIGIT NINE
+    0x066a: 0x0025,     #  ARABIC PERCENT SIGN
+    0x2219: 0x0082,     #  BULLET OPERATOR
+    0x221a: 0x0083,     #  SQUARE ROOT
+    0x221e: 0x0091,     #  INFINITY
+    0x2248: 0x0096,     #  ALMOST EQUAL TO
+    0x2500: 0x0085,     #  FORMS LIGHT HORIZONTAL
+    0x2502: 0x0086,     #  FORMS LIGHT VERTICAL
+    0x250c: 0x008d,     #  FORMS LIGHT DOWN AND RIGHT
+    0x2510: 0x008c,     #  FORMS LIGHT DOWN AND LEFT
+    0x2514: 0x008e,     #  FORMS LIGHT UP AND RIGHT
+    0x2518: 0x008f,     #  FORMS LIGHT UP AND LEFT
+    0x251c: 0x008a,     #  FORMS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x0088,     #  FORMS LIGHT VERTICAL AND LEFT
+    0x252c: 0x0089,     #  FORMS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x008b,     #  FORMS LIGHT UP AND HORIZONTAL
+    0x253c: 0x0087,     #  FORMS LIGHT VERTICAL AND HORIZONTAL
+    0x2592: 0x0084,     #  MEDIUM SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+    0xfe7d: 0x00f0,     #  ARABIC SHADDA MEDIAL FORM
+    0xfe80: 0x00c1,     #  ARABIC LETTER HAMZA ISOLATED FORM
+    0xfe81: 0x00c2,     #  ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    0xfe82: 0x00a2,     #  ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+    0xfe83: 0x00c3,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+    0xfe84: 0x00a5,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+    0xfe85: 0x00c4,     #  ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    0xfe8b: 0x00c6,     #  ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    0xfe8d: 0x00c7,     #  ARABIC LETTER ALEF ISOLATED FORM
+    0xfe8e: 0x00a8,     #  ARABIC LETTER ALEF FINAL FORM
+    0xfe8f: 0x00a9,     #  ARABIC LETTER BEH ISOLATED FORM
+    0xfe91: 0x00c8,     #  ARABIC LETTER BEH INITIAL FORM
+    0xfe93: 0x00c9,     #  ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    0xfe95: 0x00aa,     #  ARABIC LETTER TEH ISOLATED FORM
+    0xfe97: 0x00ca,     #  ARABIC LETTER TEH INITIAL FORM
+    0xfe99: 0x00ab,     #  ARABIC LETTER THEH ISOLATED FORM
+    0xfe9b: 0x00cb,     #  ARABIC LETTER THEH INITIAL FORM
+    0xfe9d: 0x00ad,     #  ARABIC LETTER JEEM ISOLATED FORM
+    0xfe9f: 0x00cc,     #  ARABIC LETTER JEEM INITIAL FORM
+    0xfea1: 0x00ae,     #  ARABIC LETTER HAH ISOLATED FORM
+    0xfea3: 0x00cd,     #  ARABIC LETTER HAH INITIAL FORM
+    0xfea5: 0x00af,     #  ARABIC LETTER KHAH ISOLATED FORM
+    0xfea7: 0x00ce,     #  ARABIC LETTER KHAH INITIAL FORM
+    0xfea9: 0x00cf,     #  ARABIC LETTER DAL ISOLATED FORM
+    0xfeab: 0x00d0,     #  ARABIC LETTER THAL ISOLATED FORM
+    0xfead: 0x00d1,     #  ARABIC LETTER REH ISOLATED FORM
+    0xfeaf: 0x00d2,     #  ARABIC LETTER ZAIN ISOLATED FORM
+    0xfeb1: 0x00bc,     #  ARABIC LETTER SEEN ISOLATED FORM
+    0xfeb3: 0x00d3,     #  ARABIC LETTER SEEN INITIAL FORM
+    0xfeb5: 0x00bd,     #  ARABIC LETTER SHEEN ISOLATED FORM
+    0xfeb7: 0x00d4,     #  ARABIC LETTER SHEEN INITIAL FORM
+    0xfeb9: 0x00be,     #  ARABIC LETTER SAD ISOLATED FORM
+    0xfebb: 0x00d5,     #  ARABIC LETTER SAD INITIAL FORM
+    0xfebd: 0x00eb,     #  ARABIC LETTER DAD ISOLATED FORM
+    0xfebf: 0x00d6,     #  ARABIC LETTER DAD INITIAL FORM
+    0xfec1: 0x00d7,     #  ARABIC LETTER TAH ISOLATED FORM
+    0xfec5: 0x00d8,     #  ARABIC LETTER ZAH ISOLATED FORM
+    0xfec9: 0x00df,     #  ARABIC LETTER AIN ISOLATED FORM
+    0xfeca: 0x00c5,     #  ARABIC LETTER AIN FINAL FORM
+    0xfecb: 0x00d9,     #  ARABIC LETTER AIN INITIAL FORM
+    0xfecc: 0x00ec,     #  ARABIC LETTER AIN MEDIAL FORM
+    0xfecd: 0x00ee,     #  ARABIC LETTER GHAIN ISOLATED FORM
+    0xfece: 0x00ed,     #  ARABIC LETTER GHAIN FINAL FORM
+    0xfecf: 0x00da,     #  ARABIC LETTER GHAIN INITIAL FORM
+    0xfed0: 0x00f7,     #  ARABIC LETTER GHAIN MEDIAL FORM
+    0xfed1: 0x00ba,     #  ARABIC LETTER FEH ISOLATED FORM
+    0xfed3: 0x00e1,     #  ARABIC LETTER FEH INITIAL FORM
+    0xfed5: 0x00f8,     #  ARABIC LETTER QAF ISOLATED FORM
+    0xfed7: 0x00e2,     #  ARABIC LETTER QAF INITIAL FORM
+    0xfed9: 0x00fc,     #  ARABIC LETTER KAF ISOLATED FORM
+    0xfedb: 0x00e3,     #  ARABIC LETTER KAF INITIAL FORM
+    0xfedd: 0x00fb,     #  ARABIC LETTER LAM ISOLATED FORM
+    0xfedf: 0x00e4,     #  ARABIC LETTER LAM INITIAL FORM
+    0xfee1: 0x00ef,     #  ARABIC LETTER MEEM ISOLATED FORM
+    0xfee3: 0x00e5,     #  ARABIC LETTER MEEM INITIAL FORM
+    0xfee5: 0x00f2,     #  ARABIC LETTER NOON ISOLATED FORM
+    0xfee7: 0x00e6,     #  ARABIC LETTER NOON INITIAL FORM
+    0xfee9: 0x00f3,     #  ARABIC LETTER HEH ISOLATED FORM
+    0xfeeb: 0x00e7,     #  ARABIC LETTER HEH INITIAL FORM
+    0xfeec: 0x00f4,     #  ARABIC LETTER HEH MEDIAL FORM
+    0xfeed: 0x00e8,     #  ARABIC LETTER WAW ISOLATED FORM
+    0xfeef: 0x00e9,     #  ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+    0xfef0: 0x00f5,     #  ARABIC LETTER ALEF MAKSURA FINAL FORM
+    0xfef1: 0x00fd,     #  ARABIC LETTER YEH ISOLATED FORM
+    0xfef2: 0x00f6,     #  ARABIC LETTER YEH FINAL FORM
+    0xfef3: 0x00ea,     #  ARABIC LETTER YEH INITIAL FORM
+    0xfef5: 0x00f9,     #  ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+    0xfef6: 0x00fa,     #  ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+    0xfef7: 0x0099,     #  ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+    0xfef8: 0x009a,     #  ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+    0xfefb: 0x009d,     #  ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+    0xfefc: 0x009e,     #  ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp865.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp865.py
new file mode 100644
index 0000000..6726cf3
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp865.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP865.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp865',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0081: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x0082: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x0083: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x0084: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x0085: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0086: 0x00e5,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x0087: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x0088: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0089: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x008a: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x008b: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x008c: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x008d: 0x00ec,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x008e: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x008f: 0x00c5,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x0090: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0091: 0x00e6,     #  LATIN SMALL LIGATURE AE
+    0x0092: 0x00c6,     #  LATIN CAPITAL LIGATURE AE
+    0x0093: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x0094: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x0095: 0x00f2,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x0096: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x0097: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x0098: 0x00ff,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0099: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x009a: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x009b: 0x00f8,     #  LATIN SMALL LETTER O WITH STROKE
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x00d8,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x009e: 0x20a7,     #  PESETA SIGN
+    0x009f: 0x0192,     #  LATIN SMALL LETTER F WITH HOOK
+    0x00a0: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00a1: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00a2: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00a3: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00a4: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00a5: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00a6: 0x00aa,     #  FEMININE ORDINAL INDICATOR
+    0x00a7: 0x00ba,     #  MASCULINE ORDINAL INDICATOR
+    0x00a8: 0x00bf,     #  INVERTED QUESTION MARK
+    0x00a9: 0x2310,     #  REVERSED NOT SIGN
+    0x00aa: 0x00ac,     #  NOT SIGN
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x00bc,     #  VULGAR FRACTION ONE QUARTER
+    0x00ad: 0x00a1,     #  INVERTED EXCLAMATION MARK
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00a4,     #  CURRENCY SIGN
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00e1: 0x00df,     #  LATIN SMALL LETTER SHARP S
+    0x00e2: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00e3: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00e4: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00e5: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00e6: 0x00b5,     #  MICRO SIGN
+    0x00e7: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00e8: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00e9: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ea: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00eb: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00ec: 0x221e,     #  INFINITY
+    0x00ed: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00ee: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00ef: 0x2229,     #  INTERSECTION
+    0x00f0: 0x2261,     #  IDENTICAL TO
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x2265,     #  GREATER-THAN OR EQUAL TO
+    0x00f3: 0x2264,     #  LESS-THAN OR EQUAL TO
+    0x00f4: 0x2320,     #  TOP HALF INTEGRAL
+    0x00f5: 0x2321,     #  BOTTOM HALF INTEGRAL
+    0x00f6: 0x00f7,     #  DIVISION SIGN
+    0x00f7: 0x2248,     #  ALMOST EQUAL TO
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x207f,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x00fd: 0x00b2,     #  SUPERSCRIPT TWO
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xa4'     #  0x00af -> CURRENCY SIGN
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a1: 0x00ad,     #  INVERTED EXCLAMATION MARK
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a4: 0x00af,     #  CURRENCY SIGN
+    0x00aa: 0x00a6,     #  FEMININE ORDINAL INDICATOR
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x00aa,     #  NOT SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x00fd,     #  SUPERSCRIPT TWO
+    0x00b5: 0x00e6,     #  MICRO SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x00ba: 0x00a7,     #  MASCULINE ORDINAL INDICATOR
+    0x00bc: 0x00ac,     #  VULGAR FRACTION ONE QUARTER
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x00bf: 0x00a8,     #  INVERTED QUESTION MARK
+    0x00c4: 0x008e,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c5: 0x008f,     #  LATIN CAPITAL LETTER A WITH RING ABOVE
+    0x00c6: 0x0092,     #  LATIN CAPITAL LIGATURE AE
+    0x00c7: 0x0080,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c9: 0x0090,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00d1: 0x00a5,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d6: 0x0099,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00d8: 0x009d,     #  LATIN CAPITAL LETTER O WITH STROKE
+    0x00dc: 0x009a,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00df: 0x00e1,     #  LATIN SMALL LETTER SHARP S
+    0x00e0: 0x0085,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x00a0,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0083,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e4: 0x0084,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e5: 0x0086,     #  LATIN SMALL LETTER A WITH RING ABOVE
+    0x00e6: 0x0091,     #  LATIN SMALL LIGATURE AE
+    0x00e7: 0x0087,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008a,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x0082,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0088,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0089,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ec: 0x008d,     #  LATIN SMALL LETTER I WITH GRAVE
+    0x00ed: 0x00a1,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x008c,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x008b,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f1: 0x00a4,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f2: 0x0095,     #  LATIN SMALL LETTER O WITH GRAVE
+    0x00f3: 0x00a2,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0093,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f6: 0x0094,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x00f6,     #  DIVISION SIGN
+    0x00f8: 0x009b,     #  LATIN SMALL LETTER O WITH STROKE
+    0x00f9: 0x0097,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x00a3,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x0096,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x0081,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00ff: 0x0098,     #  LATIN SMALL LETTER Y WITH DIAERESIS
+    0x0192: 0x009f,     #  LATIN SMALL LETTER F WITH HOOK
+    0x0393: 0x00e2,     #  GREEK CAPITAL LETTER GAMMA
+    0x0398: 0x00e9,     #  GREEK CAPITAL LETTER THETA
+    0x03a3: 0x00e4,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a6: 0x00e8,     #  GREEK CAPITAL LETTER PHI
+    0x03a9: 0x00ea,     #  GREEK CAPITAL LETTER OMEGA
+    0x03b1: 0x00e0,     #  GREEK SMALL LETTER ALPHA
+    0x03b4: 0x00eb,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00ee,     #  GREEK SMALL LETTER EPSILON
+    0x03c0: 0x00e3,     #  GREEK SMALL LETTER PI
+    0x03c3: 0x00e5,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00e7,     #  GREEK SMALL LETTER TAU
+    0x03c6: 0x00ed,     #  GREEK SMALL LETTER PHI
+    0x207f: 0x00fc,     #  SUPERSCRIPT LATIN SMALL LETTER N
+    0x20a7: 0x009e,     #  PESETA SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x221e: 0x00ec,     #  INFINITY
+    0x2229: 0x00ef,     #  INTERSECTION
+    0x2248: 0x00f7,     #  ALMOST EQUAL TO
+    0x2261: 0x00f0,     #  IDENTICAL TO
+    0x2264: 0x00f3,     #  LESS-THAN OR EQUAL TO
+    0x2265: 0x00f2,     #  GREATER-THAN OR EQUAL TO
+    0x2310: 0x00a9,     #  REVERSED NOT SIGN
+    0x2320: 0x00f4,     #  TOP HALF INTEGRAL
+    0x2321: 0x00f5,     #  BOTTOM HALF INTEGRAL
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp866.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp866.py
new file mode 100644
index 0000000..bec7ae3
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp866.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP866.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp866',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x0410,     #  CYRILLIC CAPITAL LETTER A
+    0x0081: 0x0411,     #  CYRILLIC CAPITAL LETTER BE
+    0x0082: 0x0412,     #  CYRILLIC CAPITAL LETTER VE
+    0x0083: 0x0413,     #  CYRILLIC CAPITAL LETTER GHE
+    0x0084: 0x0414,     #  CYRILLIC CAPITAL LETTER DE
+    0x0085: 0x0415,     #  CYRILLIC CAPITAL LETTER IE
+    0x0086: 0x0416,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x0087: 0x0417,     #  CYRILLIC CAPITAL LETTER ZE
+    0x0088: 0x0418,     #  CYRILLIC CAPITAL LETTER I
+    0x0089: 0x0419,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x008a: 0x041a,     #  CYRILLIC CAPITAL LETTER KA
+    0x008b: 0x041b,     #  CYRILLIC CAPITAL LETTER EL
+    0x008c: 0x041c,     #  CYRILLIC CAPITAL LETTER EM
+    0x008d: 0x041d,     #  CYRILLIC CAPITAL LETTER EN
+    0x008e: 0x041e,     #  CYRILLIC CAPITAL LETTER O
+    0x008f: 0x041f,     #  CYRILLIC CAPITAL LETTER PE
+    0x0090: 0x0420,     #  CYRILLIC CAPITAL LETTER ER
+    0x0091: 0x0421,     #  CYRILLIC CAPITAL LETTER ES
+    0x0092: 0x0422,     #  CYRILLIC CAPITAL LETTER TE
+    0x0093: 0x0423,     #  CYRILLIC CAPITAL LETTER U
+    0x0094: 0x0424,     #  CYRILLIC CAPITAL LETTER EF
+    0x0095: 0x0425,     #  CYRILLIC CAPITAL LETTER HA
+    0x0096: 0x0426,     #  CYRILLIC CAPITAL LETTER TSE
+    0x0097: 0x0427,     #  CYRILLIC CAPITAL LETTER CHE
+    0x0098: 0x0428,     #  CYRILLIC CAPITAL LETTER SHA
+    0x0099: 0x0429,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x009a: 0x042a,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x009b: 0x042b,     #  CYRILLIC CAPITAL LETTER YERU
+    0x009c: 0x042c,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x009d: 0x042d,     #  CYRILLIC CAPITAL LETTER E
+    0x009e: 0x042e,     #  CYRILLIC CAPITAL LETTER YU
+    0x009f: 0x042f,     #  CYRILLIC CAPITAL LETTER YA
+    0x00a0: 0x0430,     #  CYRILLIC SMALL LETTER A
+    0x00a1: 0x0431,     #  CYRILLIC SMALL LETTER BE
+    0x00a2: 0x0432,     #  CYRILLIC SMALL LETTER VE
+    0x00a3: 0x0433,     #  CYRILLIC SMALL LETTER GHE
+    0x00a4: 0x0434,     #  CYRILLIC SMALL LETTER DE
+    0x00a5: 0x0435,     #  CYRILLIC SMALL LETTER IE
+    0x00a6: 0x0436,     #  CYRILLIC SMALL LETTER ZHE
+    0x00a7: 0x0437,     #  CYRILLIC SMALL LETTER ZE
+    0x00a8: 0x0438,     #  CYRILLIC SMALL LETTER I
+    0x00a9: 0x0439,     #  CYRILLIC SMALL LETTER SHORT I
+    0x00aa: 0x043a,     #  CYRILLIC SMALL LETTER KA
+    0x00ab: 0x043b,     #  CYRILLIC SMALL LETTER EL
+    0x00ac: 0x043c,     #  CYRILLIC SMALL LETTER EM
+    0x00ad: 0x043d,     #  CYRILLIC SMALL LETTER EN
+    0x00ae: 0x043e,     #  CYRILLIC SMALL LETTER O
+    0x00af: 0x043f,     #  CYRILLIC SMALL LETTER PE
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x2561,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x00b6: 0x2562,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x00b7: 0x2556,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x00b8: 0x2555,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x255c,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x00be: 0x255b,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x255e,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x00c7: 0x255f,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x2567,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x00d0: 0x2568,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x00d1: 0x2564,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x00d2: 0x2565,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x00d3: 0x2559,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x00d4: 0x2558,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x00d5: 0x2552,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x00d6: 0x2553,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x00d7: 0x256b,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x00d8: 0x256a,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x258c,     #  LEFT HALF BLOCK
+    0x00de: 0x2590,     #  RIGHT HALF BLOCK
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x0440,     #  CYRILLIC SMALL LETTER ER
+    0x00e1: 0x0441,     #  CYRILLIC SMALL LETTER ES
+    0x00e2: 0x0442,     #  CYRILLIC SMALL LETTER TE
+    0x00e3: 0x0443,     #  CYRILLIC SMALL LETTER U
+    0x00e4: 0x0444,     #  CYRILLIC SMALL LETTER EF
+    0x00e5: 0x0445,     #  CYRILLIC SMALL LETTER HA
+    0x00e6: 0x0446,     #  CYRILLIC SMALL LETTER TSE
+    0x00e7: 0x0447,     #  CYRILLIC SMALL LETTER CHE
+    0x00e8: 0x0448,     #  CYRILLIC SMALL LETTER SHA
+    0x00e9: 0x0449,     #  CYRILLIC SMALL LETTER SHCHA
+    0x00ea: 0x044a,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x00eb: 0x044b,     #  CYRILLIC SMALL LETTER YERU
+    0x00ec: 0x044c,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x00ed: 0x044d,     #  CYRILLIC SMALL LETTER E
+    0x00ee: 0x044e,     #  CYRILLIC SMALL LETTER YU
+    0x00ef: 0x044f,     #  CYRILLIC SMALL LETTER YA
+    0x00f0: 0x0401,     #  CYRILLIC CAPITAL LETTER IO
+    0x00f1: 0x0451,     #  CYRILLIC SMALL LETTER IO
+    0x00f2: 0x0404,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x00f3: 0x0454,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x00f4: 0x0407,     #  CYRILLIC CAPITAL LETTER YI
+    0x00f5: 0x0457,     #  CYRILLIC SMALL LETTER YI
+    0x00f6: 0x040e,     #  CYRILLIC CAPITAL LETTER SHORT U
+    0x00f7: 0x045e,     #  CYRILLIC SMALL LETTER SHORT U
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x2219,     #  BULLET OPERATOR
+    0x00fa: 0x00b7,     #  MIDDLE DOT
+    0x00fb: 0x221a,     #  SQUARE ROOT
+    0x00fc: 0x2116,     #  NUMERO SIGN
+    0x00fd: 0x00a4,     #  CURRENCY SIGN
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0410'   #  0x0080 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0x0081 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0x0082 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0x0083 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0x0084 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0x0085 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0x0086 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0x0087 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0x0088 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0x008a -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0x008b -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0x008c -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0x008d -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0x008e -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0x008f -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0x0090 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0x0091 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0x0092 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0x0093 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0x0094 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0x0095 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0x0096 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0x0097 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0x0098 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0x009b -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0x009d -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0x009e -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0x009f -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0x00a1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0x00a2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0x00a3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0x00a4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0x00a5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0x00a6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0x00a7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0x00a8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0x00a9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0x00aa -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0x00ab -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0x00ac -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0x00ad -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0x00ae -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0x00af -> CYRILLIC SMALL LETTER PE
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u0440'   #  0x00e0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0x00e1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0x00e2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0x00e3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0x00e4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0x00e5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0x00e6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0x00e7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0x00e8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0x00e9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0x00eb -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0x00ed -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0x00ee -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0x00ef -> CYRILLIC SMALL LETTER YA
+    '\u0401'   #  0x00f0 -> CYRILLIC CAPITAL LETTER IO
+    '\u0451'   #  0x00f1 -> CYRILLIC SMALL LETTER IO
+    '\u0404'   #  0x00f2 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0454'   #  0x00f3 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0407'   #  0x00f4 -> CYRILLIC CAPITAL LETTER YI
+    '\u0457'   #  0x00f5 -> CYRILLIC SMALL LETTER YI
+    '\u040e'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0x00f7 -> CYRILLIC SMALL LETTER SHORT U
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u2116'   #  0x00fc -> NUMERO SIGN
+    '\xa4'     #  0x00fd -> CURRENCY SIGN
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a4: 0x00fd,     #  CURRENCY SIGN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b7: 0x00fa,     #  MIDDLE DOT
+    0x0401: 0x00f0,     #  CYRILLIC CAPITAL LETTER IO
+    0x0404: 0x00f2,     #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    0x0407: 0x00f4,     #  CYRILLIC CAPITAL LETTER YI
+    0x040e: 0x00f6,     #  CYRILLIC CAPITAL LETTER SHORT U
+    0x0410: 0x0080,     #  CYRILLIC CAPITAL LETTER A
+    0x0411: 0x0081,     #  CYRILLIC CAPITAL LETTER BE
+    0x0412: 0x0082,     #  CYRILLIC CAPITAL LETTER VE
+    0x0413: 0x0083,     #  CYRILLIC CAPITAL LETTER GHE
+    0x0414: 0x0084,     #  CYRILLIC CAPITAL LETTER DE
+    0x0415: 0x0085,     #  CYRILLIC CAPITAL LETTER IE
+    0x0416: 0x0086,     #  CYRILLIC CAPITAL LETTER ZHE
+    0x0417: 0x0087,     #  CYRILLIC CAPITAL LETTER ZE
+    0x0418: 0x0088,     #  CYRILLIC CAPITAL LETTER I
+    0x0419: 0x0089,     #  CYRILLIC CAPITAL LETTER SHORT I
+    0x041a: 0x008a,     #  CYRILLIC CAPITAL LETTER KA
+    0x041b: 0x008b,     #  CYRILLIC CAPITAL LETTER EL
+    0x041c: 0x008c,     #  CYRILLIC CAPITAL LETTER EM
+    0x041d: 0x008d,     #  CYRILLIC CAPITAL LETTER EN
+    0x041e: 0x008e,     #  CYRILLIC CAPITAL LETTER O
+    0x041f: 0x008f,     #  CYRILLIC CAPITAL LETTER PE
+    0x0420: 0x0090,     #  CYRILLIC CAPITAL LETTER ER
+    0x0421: 0x0091,     #  CYRILLIC CAPITAL LETTER ES
+    0x0422: 0x0092,     #  CYRILLIC CAPITAL LETTER TE
+    0x0423: 0x0093,     #  CYRILLIC CAPITAL LETTER U
+    0x0424: 0x0094,     #  CYRILLIC CAPITAL LETTER EF
+    0x0425: 0x0095,     #  CYRILLIC CAPITAL LETTER HA
+    0x0426: 0x0096,     #  CYRILLIC CAPITAL LETTER TSE
+    0x0427: 0x0097,     #  CYRILLIC CAPITAL LETTER CHE
+    0x0428: 0x0098,     #  CYRILLIC CAPITAL LETTER SHA
+    0x0429: 0x0099,     #  CYRILLIC CAPITAL LETTER SHCHA
+    0x042a: 0x009a,     #  CYRILLIC CAPITAL LETTER HARD SIGN
+    0x042b: 0x009b,     #  CYRILLIC CAPITAL LETTER YERU
+    0x042c: 0x009c,     #  CYRILLIC CAPITAL LETTER SOFT SIGN
+    0x042d: 0x009d,     #  CYRILLIC CAPITAL LETTER E
+    0x042e: 0x009e,     #  CYRILLIC CAPITAL LETTER YU
+    0x042f: 0x009f,     #  CYRILLIC CAPITAL LETTER YA
+    0x0430: 0x00a0,     #  CYRILLIC SMALL LETTER A
+    0x0431: 0x00a1,     #  CYRILLIC SMALL LETTER BE
+    0x0432: 0x00a2,     #  CYRILLIC SMALL LETTER VE
+    0x0433: 0x00a3,     #  CYRILLIC SMALL LETTER GHE
+    0x0434: 0x00a4,     #  CYRILLIC SMALL LETTER DE
+    0x0435: 0x00a5,     #  CYRILLIC SMALL LETTER IE
+    0x0436: 0x00a6,     #  CYRILLIC SMALL LETTER ZHE
+    0x0437: 0x00a7,     #  CYRILLIC SMALL LETTER ZE
+    0x0438: 0x00a8,     #  CYRILLIC SMALL LETTER I
+    0x0439: 0x00a9,     #  CYRILLIC SMALL LETTER SHORT I
+    0x043a: 0x00aa,     #  CYRILLIC SMALL LETTER KA
+    0x043b: 0x00ab,     #  CYRILLIC SMALL LETTER EL
+    0x043c: 0x00ac,     #  CYRILLIC SMALL LETTER EM
+    0x043d: 0x00ad,     #  CYRILLIC SMALL LETTER EN
+    0x043e: 0x00ae,     #  CYRILLIC SMALL LETTER O
+    0x043f: 0x00af,     #  CYRILLIC SMALL LETTER PE
+    0x0440: 0x00e0,     #  CYRILLIC SMALL LETTER ER
+    0x0441: 0x00e1,     #  CYRILLIC SMALL LETTER ES
+    0x0442: 0x00e2,     #  CYRILLIC SMALL LETTER TE
+    0x0443: 0x00e3,     #  CYRILLIC SMALL LETTER U
+    0x0444: 0x00e4,     #  CYRILLIC SMALL LETTER EF
+    0x0445: 0x00e5,     #  CYRILLIC SMALL LETTER HA
+    0x0446: 0x00e6,     #  CYRILLIC SMALL LETTER TSE
+    0x0447: 0x00e7,     #  CYRILLIC SMALL LETTER CHE
+    0x0448: 0x00e8,     #  CYRILLIC SMALL LETTER SHA
+    0x0449: 0x00e9,     #  CYRILLIC SMALL LETTER SHCHA
+    0x044a: 0x00ea,     #  CYRILLIC SMALL LETTER HARD SIGN
+    0x044b: 0x00eb,     #  CYRILLIC SMALL LETTER YERU
+    0x044c: 0x00ec,     #  CYRILLIC SMALL LETTER SOFT SIGN
+    0x044d: 0x00ed,     #  CYRILLIC SMALL LETTER E
+    0x044e: 0x00ee,     #  CYRILLIC SMALL LETTER YU
+    0x044f: 0x00ef,     #  CYRILLIC SMALL LETTER YA
+    0x0451: 0x00f1,     #  CYRILLIC SMALL LETTER IO
+    0x0454: 0x00f3,     #  CYRILLIC SMALL LETTER UKRAINIAN IE
+    0x0457: 0x00f5,     #  CYRILLIC SMALL LETTER YI
+    0x045e: 0x00f7,     #  CYRILLIC SMALL LETTER SHORT U
+    0x2116: 0x00fc,     #  NUMERO SIGN
+    0x2219: 0x00f9,     #  BULLET OPERATOR
+    0x221a: 0x00fb,     #  SQUARE ROOT
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2552: 0x00d5,     #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    0x2553: 0x00d6,     #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2555: 0x00b8,     #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    0x2556: 0x00b7,     #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x2558: 0x00d4,     #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    0x2559: 0x00d3,     #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255b: 0x00be,     #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    0x255c: 0x00bd,     #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x255e: 0x00c6,     #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    0x255f: 0x00c7,     #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2561: 0x00b5,     #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    0x2562: 0x00b6,     #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2564: 0x00d1,     #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    0x2565: 0x00d2,     #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2567: 0x00cf,     #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    0x2568: 0x00d0,     #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256a: 0x00d8,     #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    0x256b: 0x00d7,     #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x258c: 0x00dd,     #  LEFT HALF BLOCK
+    0x2590: 0x00de,     #  RIGHT HALF BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp869.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp869.py
new file mode 100644
index 0000000..8d8a29b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp869.py
@@ -0,0 +1,689 @@
+""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP869.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp869',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: None,       #  UNDEFINED
+    0x0081: None,       #  UNDEFINED
+    0x0082: None,       #  UNDEFINED
+    0x0083: None,       #  UNDEFINED
+    0x0084: None,       #  UNDEFINED
+    0x0085: None,       #  UNDEFINED
+    0x0086: 0x0386,     #  GREEK CAPITAL LETTER ALPHA WITH TONOS
+    0x0087: None,       #  UNDEFINED
+    0x0088: 0x00b7,     #  MIDDLE DOT
+    0x0089: 0x00ac,     #  NOT SIGN
+    0x008a: 0x00a6,     #  BROKEN BAR
+    0x008b: 0x2018,     #  LEFT SINGLE QUOTATION MARK
+    0x008c: 0x2019,     #  RIGHT SINGLE QUOTATION MARK
+    0x008d: 0x0388,     #  GREEK CAPITAL LETTER EPSILON WITH TONOS
+    0x008e: 0x2015,     #  HORIZONTAL BAR
+    0x008f: 0x0389,     #  GREEK CAPITAL LETTER ETA WITH TONOS
+    0x0090: 0x038a,     #  GREEK CAPITAL LETTER IOTA WITH TONOS
+    0x0091: 0x03aa,     #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    0x0092: 0x038c,     #  GREEK CAPITAL LETTER OMICRON WITH TONOS
+    0x0093: None,       #  UNDEFINED
+    0x0094: None,       #  UNDEFINED
+    0x0095: 0x038e,     #  GREEK CAPITAL LETTER UPSILON WITH TONOS
+    0x0096: 0x03ab,     #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    0x0097: 0x00a9,     #  COPYRIGHT SIGN
+    0x0098: 0x038f,     #  GREEK CAPITAL LETTER OMEGA WITH TONOS
+    0x0099: 0x00b2,     #  SUPERSCRIPT TWO
+    0x009a: 0x00b3,     #  SUPERSCRIPT THREE
+    0x009b: 0x03ac,     #  GREEK SMALL LETTER ALPHA WITH TONOS
+    0x009c: 0x00a3,     #  POUND SIGN
+    0x009d: 0x03ad,     #  GREEK SMALL LETTER EPSILON WITH TONOS
+    0x009e: 0x03ae,     #  GREEK SMALL LETTER ETA WITH TONOS
+    0x009f: 0x03af,     #  GREEK SMALL LETTER IOTA WITH TONOS
+    0x00a0: 0x03ca,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    0x00a1: 0x0390,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    0x00a2: 0x03cc,     #  GREEK SMALL LETTER OMICRON WITH TONOS
+    0x00a3: 0x03cd,     #  GREEK SMALL LETTER UPSILON WITH TONOS
+    0x00a4: 0x0391,     #  GREEK CAPITAL LETTER ALPHA
+    0x00a5: 0x0392,     #  GREEK CAPITAL LETTER BETA
+    0x00a6: 0x0393,     #  GREEK CAPITAL LETTER GAMMA
+    0x00a7: 0x0394,     #  GREEK CAPITAL LETTER DELTA
+    0x00a8: 0x0395,     #  GREEK CAPITAL LETTER EPSILON
+    0x00a9: 0x0396,     #  GREEK CAPITAL LETTER ZETA
+    0x00aa: 0x0397,     #  GREEK CAPITAL LETTER ETA
+    0x00ab: 0x00bd,     #  VULGAR FRACTION ONE HALF
+    0x00ac: 0x0398,     #  GREEK CAPITAL LETTER THETA
+    0x00ad: 0x0399,     #  GREEK CAPITAL LETTER IOTA
+    0x00ae: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00af: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00b0: 0x2591,     #  LIGHT SHADE
+    0x00b1: 0x2592,     #  MEDIUM SHADE
+    0x00b2: 0x2593,     #  DARK SHADE
+    0x00b3: 0x2502,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x00b4: 0x2524,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x00b5: 0x039a,     #  GREEK CAPITAL LETTER KAPPA
+    0x00b6: 0x039b,     #  GREEK CAPITAL LETTER LAMDA
+    0x00b7: 0x039c,     #  GREEK CAPITAL LETTER MU
+    0x00b8: 0x039d,     #  GREEK CAPITAL LETTER NU
+    0x00b9: 0x2563,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x00ba: 0x2551,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x00bb: 0x2557,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x00bc: 0x255d,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x00bd: 0x039e,     #  GREEK CAPITAL LETTER XI
+    0x00be: 0x039f,     #  GREEK CAPITAL LETTER OMICRON
+    0x00bf: 0x2510,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x00c0: 0x2514,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x00c1: 0x2534,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x00c2: 0x252c,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x00c3: 0x251c,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x00c4: 0x2500,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x00c5: 0x253c,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x00c6: 0x03a0,     #  GREEK CAPITAL LETTER PI
+    0x00c7: 0x03a1,     #  GREEK CAPITAL LETTER RHO
+    0x00c8: 0x255a,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x00c9: 0x2554,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x00ca: 0x2569,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x00cb: 0x2566,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x00cc: 0x2560,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x00cd: 0x2550,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x00ce: 0x256c,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x00cf: 0x03a3,     #  GREEK CAPITAL LETTER SIGMA
+    0x00d0: 0x03a4,     #  GREEK CAPITAL LETTER TAU
+    0x00d1: 0x03a5,     #  GREEK CAPITAL LETTER UPSILON
+    0x00d2: 0x03a6,     #  GREEK CAPITAL LETTER PHI
+    0x00d3: 0x03a7,     #  GREEK CAPITAL LETTER CHI
+    0x00d4: 0x03a8,     #  GREEK CAPITAL LETTER PSI
+    0x00d5: 0x03a9,     #  GREEK CAPITAL LETTER OMEGA
+    0x00d6: 0x03b1,     #  GREEK SMALL LETTER ALPHA
+    0x00d7: 0x03b2,     #  GREEK SMALL LETTER BETA
+    0x00d8: 0x03b3,     #  GREEK SMALL LETTER GAMMA
+    0x00d9: 0x2518,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x00da: 0x250c,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x00db: 0x2588,     #  FULL BLOCK
+    0x00dc: 0x2584,     #  LOWER HALF BLOCK
+    0x00dd: 0x03b4,     #  GREEK SMALL LETTER DELTA
+    0x00de: 0x03b5,     #  GREEK SMALL LETTER EPSILON
+    0x00df: 0x2580,     #  UPPER HALF BLOCK
+    0x00e0: 0x03b6,     #  GREEK SMALL LETTER ZETA
+    0x00e1: 0x03b7,     #  GREEK SMALL LETTER ETA
+    0x00e2: 0x03b8,     #  GREEK SMALL LETTER THETA
+    0x00e3: 0x03b9,     #  GREEK SMALL LETTER IOTA
+    0x00e4: 0x03ba,     #  GREEK SMALL LETTER KAPPA
+    0x00e5: 0x03bb,     #  GREEK SMALL LETTER LAMDA
+    0x00e6: 0x03bc,     #  GREEK SMALL LETTER MU
+    0x00e7: 0x03bd,     #  GREEK SMALL LETTER NU
+    0x00e8: 0x03be,     #  GREEK SMALL LETTER XI
+    0x00e9: 0x03bf,     #  GREEK SMALL LETTER OMICRON
+    0x00ea: 0x03c0,     #  GREEK SMALL LETTER PI
+    0x00eb: 0x03c1,     #  GREEK SMALL LETTER RHO
+    0x00ec: 0x03c3,     #  GREEK SMALL LETTER SIGMA
+    0x00ed: 0x03c2,     #  GREEK SMALL LETTER FINAL SIGMA
+    0x00ee: 0x03c4,     #  GREEK SMALL LETTER TAU
+    0x00ef: 0x0384,     #  GREEK TONOS
+    0x00f0: 0x00ad,     #  SOFT HYPHEN
+    0x00f1: 0x00b1,     #  PLUS-MINUS SIGN
+    0x00f2: 0x03c5,     #  GREEK SMALL LETTER UPSILON
+    0x00f3: 0x03c6,     #  GREEK SMALL LETTER PHI
+    0x00f4: 0x03c7,     #  GREEK SMALL LETTER CHI
+    0x00f5: 0x00a7,     #  SECTION SIGN
+    0x00f6: 0x03c8,     #  GREEK SMALL LETTER PSI
+    0x00f7: 0x0385,     #  GREEK DIALYTIKA TONOS
+    0x00f8: 0x00b0,     #  DEGREE SIGN
+    0x00f9: 0x00a8,     #  DIAERESIS
+    0x00fa: 0x03c9,     #  GREEK SMALL LETTER OMEGA
+    0x00fb: 0x03cb,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    0x00fc: 0x03b0,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    0x00fd: 0x03ce,     #  GREEK SMALL LETTER OMEGA WITH TONOS
+    0x00fe: 0x25a0,     #  BLACK SQUARE
+    0x00ff: 0x00a0,     #  NO-BREAK SPACE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\ufffe'   #  0x0080 -> UNDEFINED
+    '\ufffe'   #  0x0081 -> UNDEFINED
+    '\ufffe'   #  0x0082 -> UNDEFINED
+    '\ufffe'   #  0x0083 -> UNDEFINED
+    '\ufffe'   #  0x0084 -> UNDEFINED
+    '\ufffe'   #  0x0085 -> UNDEFINED
+    '\u0386'   #  0x0086 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\ufffe'   #  0x0087 -> UNDEFINED
+    '\xb7'     #  0x0088 -> MIDDLE DOT
+    '\xac'     #  0x0089 -> NOT SIGN
+    '\xa6'     #  0x008a -> BROKEN BAR
+    '\u2018'   #  0x008b -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x008c -> RIGHT SINGLE QUOTATION MARK
+    '\u0388'   #  0x008d -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u2015'   #  0x008e -> HORIZONTAL BAR
+    '\u0389'   #  0x008f -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0x0090 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u03aa'   #  0x0091 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u038c'   #  0x0092 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\ufffe'   #  0x0093 -> UNDEFINED
+    '\ufffe'   #  0x0094 -> UNDEFINED
+    '\u038e'   #  0x0095 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u03ab'   #  0x0096 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\xa9'     #  0x0097 -> COPYRIGHT SIGN
+    '\u038f'   #  0x0098 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\xb2'     #  0x0099 -> SUPERSCRIPT TWO
+    '\xb3'     #  0x009a -> SUPERSCRIPT THREE
+    '\u03ac'   #  0x009b -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\u03ad'   #  0x009d -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0x009e -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0x009f -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03ca'   #  0x00a0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u0390'   #  0x00a1 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03cc'   #  0x00a2 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0x00a3 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u0391'   #  0x00a4 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x00a5 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x00a6 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x00a7 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x00a8 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x00a9 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x00aa -> GREEK CAPITAL LETTER ETA
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\u0398'   #  0x00ac -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x00ad -> GREEK CAPITAL LETTER IOTA
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u039a'   #  0x00b5 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x00b6 -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x00b7 -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x00b8 -> GREEK CAPITAL LETTER NU
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u039e'   #  0x00bd -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x00be -> GREEK CAPITAL LETTER OMICRON
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u03a0'   #  0x00c6 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x00c7 -> GREEK CAPITAL LETTER RHO
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u03a3'   #  0x00cf -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0x00d0 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x00d1 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x00d2 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x00d3 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x00d4 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x00d5 -> GREEK CAPITAL LETTER OMEGA
+    '\u03b1'   #  0x00d6 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x00d7 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x00d8 -> GREEK SMALL LETTER GAMMA
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u03b4'   #  0x00dd -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x00de -> GREEK SMALL LETTER EPSILON
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b6'   #  0x00e0 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0x00e1 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x00e2 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x00e3 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x00e4 -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x00e5 -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x00e6 -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0x00e7 -> GREEK SMALL LETTER NU
+    '\u03be'   #  0x00e8 -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0x00e9 -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0x00ea -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0x00eb -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0x00ec -> GREEK SMALL LETTER SIGMA
+    '\u03c2'   #  0x00ed -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0x00ee -> GREEK SMALL LETTER TAU
+    '\u0384'   #  0x00ef -> GREEK TONOS
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u03c5'   #  0x00f2 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0x00f3 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0x00f4 -> GREEK SMALL LETTER CHI
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\u03c8'   #  0x00f6 -> GREEK SMALL LETTER PSI
+    '\u0385'   #  0x00f7 -> GREEK DIALYTIKA TONOS
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\u03c9'   #  0x00fa -> GREEK SMALL LETTER OMEGA
+    '\u03cb'   #  0x00fb -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03b0'   #  0x00fc -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03ce'   #  0x00fd -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  NULL
+    0x0001: 0x0001,     #  START OF HEADING
+    0x0002: 0x0002,     #  START OF TEXT
+    0x0003: 0x0003,     #  END OF TEXT
+    0x0004: 0x0004,     #  END OF TRANSMISSION
+    0x0005: 0x0005,     #  ENQUIRY
+    0x0006: 0x0006,     #  ACKNOWLEDGE
+    0x0007: 0x0007,     #  BELL
+    0x0008: 0x0008,     #  BACKSPACE
+    0x0009: 0x0009,     #  HORIZONTAL TABULATION
+    0x000a: 0x000a,     #  LINE FEED
+    0x000b: 0x000b,     #  VERTICAL TABULATION
+    0x000c: 0x000c,     #  FORM FEED
+    0x000d: 0x000d,     #  CARRIAGE RETURN
+    0x000e: 0x000e,     #  SHIFT OUT
+    0x000f: 0x000f,     #  SHIFT IN
+    0x0010: 0x0010,     #  DATA LINK ESCAPE
+    0x0011: 0x0011,     #  DEVICE CONTROL ONE
+    0x0012: 0x0012,     #  DEVICE CONTROL TWO
+    0x0013: 0x0013,     #  DEVICE CONTROL THREE
+    0x0014: 0x0014,     #  DEVICE CONTROL FOUR
+    0x0015: 0x0015,     #  NEGATIVE ACKNOWLEDGE
+    0x0016: 0x0016,     #  SYNCHRONOUS IDLE
+    0x0017: 0x0017,     #  END OF TRANSMISSION BLOCK
+    0x0018: 0x0018,     #  CANCEL
+    0x0019: 0x0019,     #  END OF MEDIUM
+    0x001a: 0x001a,     #  SUBSTITUTE
+    0x001b: 0x001b,     #  ESCAPE
+    0x001c: 0x001c,     #  FILE SEPARATOR
+    0x001d: 0x001d,     #  GROUP SEPARATOR
+    0x001e: 0x001e,     #  RECORD SEPARATOR
+    0x001f: 0x001f,     #  UNIT SEPARATOR
+    0x0020: 0x0020,     #  SPACE
+    0x0021: 0x0021,     #  EXCLAMATION MARK
+    0x0022: 0x0022,     #  QUOTATION MARK
+    0x0023: 0x0023,     #  NUMBER SIGN
+    0x0024: 0x0024,     #  DOLLAR SIGN
+    0x0025: 0x0025,     #  PERCENT SIGN
+    0x0026: 0x0026,     #  AMPERSAND
+    0x0027: 0x0027,     #  APOSTROPHE
+    0x0028: 0x0028,     #  LEFT PARENTHESIS
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS
+    0x002a: 0x002a,     #  ASTERISK
+    0x002b: 0x002b,     #  PLUS SIGN
+    0x002c: 0x002c,     #  COMMA
+    0x002d: 0x002d,     #  HYPHEN-MINUS
+    0x002e: 0x002e,     #  FULL STOP
+    0x002f: 0x002f,     #  SOLIDUS
+    0x0030: 0x0030,     #  DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE
+    0x003a: 0x003a,     #  COLON
+    0x003b: 0x003b,     #  SEMICOLON
+    0x003c: 0x003c,     #  LESS-THAN SIGN
+    0x003d: 0x003d,     #  EQUALS SIGN
+    0x003e: 0x003e,     #  GREATER-THAN SIGN
+    0x003f: 0x003f,     #  QUESTION MARK
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET
+    0x005c: 0x005c,     #  REVERSE SOLIDUS
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT
+    0x005f: 0x005f,     #  LOW LINE
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET
+    0x007c: 0x007c,     #  VERTICAL LINE
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  DELETE
+    0x00a0: 0x00ff,     #  NO-BREAK SPACE
+    0x00a3: 0x009c,     #  POUND SIGN
+    0x00a6: 0x008a,     #  BROKEN BAR
+    0x00a7: 0x00f5,     #  SECTION SIGN
+    0x00a8: 0x00f9,     #  DIAERESIS
+    0x00a9: 0x0097,     #  COPYRIGHT SIGN
+    0x00ab: 0x00ae,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00ac: 0x0089,     #  NOT SIGN
+    0x00ad: 0x00f0,     #  SOFT HYPHEN
+    0x00b0: 0x00f8,     #  DEGREE SIGN
+    0x00b1: 0x00f1,     #  PLUS-MINUS SIGN
+    0x00b2: 0x0099,     #  SUPERSCRIPT TWO
+    0x00b3: 0x009a,     #  SUPERSCRIPT THREE
+    0x00b7: 0x0088,     #  MIDDLE DOT
+    0x00bb: 0x00af,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    0x00bd: 0x00ab,     #  VULGAR FRACTION ONE HALF
+    0x0384: 0x00ef,     #  GREEK TONOS
+    0x0385: 0x00f7,     #  GREEK DIALYTIKA TONOS
+    0x0386: 0x0086,     #  GREEK CAPITAL LETTER ALPHA WITH TONOS
+    0x0388: 0x008d,     #  GREEK CAPITAL LETTER EPSILON WITH TONOS
+    0x0389: 0x008f,     #  GREEK CAPITAL LETTER ETA WITH TONOS
+    0x038a: 0x0090,     #  GREEK CAPITAL LETTER IOTA WITH TONOS
+    0x038c: 0x0092,     #  GREEK CAPITAL LETTER OMICRON WITH TONOS
+    0x038e: 0x0095,     #  GREEK CAPITAL LETTER UPSILON WITH TONOS
+    0x038f: 0x0098,     #  GREEK CAPITAL LETTER OMEGA WITH TONOS
+    0x0390: 0x00a1,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    0x0391: 0x00a4,     #  GREEK CAPITAL LETTER ALPHA
+    0x0392: 0x00a5,     #  GREEK CAPITAL LETTER BETA
+    0x0393: 0x00a6,     #  GREEK CAPITAL LETTER GAMMA
+    0x0394: 0x00a7,     #  GREEK CAPITAL LETTER DELTA
+    0x0395: 0x00a8,     #  GREEK CAPITAL LETTER EPSILON
+    0x0396: 0x00a9,     #  GREEK CAPITAL LETTER ZETA
+    0x0397: 0x00aa,     #  GREEK CAPITAL LETTER ETA
+    0x0398: 0x00ac,     #  GREEK CAPITAL LETTER THETA
+    0x0399: 0x00ad,     #  GREEK CAPITAL LETTER IOTA
+    0x039a: 0x00b5,     #  GREEK CAPITAL LETTER KAPPA
+    0x039b: 0x00b6,     #  GREEK CAPITAL LETTER LAMDA
+    0x039c: 0x00b7,     #  GREEK CAPITAL LETTER MU
+    0x039d: 0x00b8,     #  GREEK CAPITAL LETTER NU
+    0x039e: 0x00bd,     #  GREEK CAPITAL LETTER XI
+    0x039f: 0x00be,     #  GREEK CAPITAL LETTER OMICRON
+    0x03a0: 0x00c6,     #  GREEK CAPITAL LETTER PI
+    0x03a1: 0x00c7,     #  GREEK CAPITAL LETTER RHO
+    0x03a3: 0x00cf,     #  GREEK CAPITAL LETTER SIGMA
+    0x03a4: 0x00d0,     #  GREEK CAPITAL LETTER TAU
+    0x03a5: 0x00d1,     #  GREEK CAPITAL LETTER UPSILON
+    0x03a6: 0x00d2,     #  GREEK CAPITAL LETTER PHI
+    0x03a7: 0x00d3,     #  GREEK CAPITAL LETTER CHI
+    0x03a8: 0x00d4,     #  GREEK CAPITAL LETTER PSI
+    0x03a9: 0x00d5,     #  GREEK CAPITAL LETTER OMEGA
+    0x03aa: 0x0091,     #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    0x03ab: 0x0096,     #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    0x03ac: 0x009b,     #  GREEK SMALL LETTER ALPHA WITH TONOS
+    0x03ad: 0x009d,     #  GREEK SMALL LETTER EPSILON WITH TONOS
+    0x03ae: 0x009e,     #  GREEK SMALL LETTER ETA WITH TONOS
+    0x03af: 0x009f,     #  GREEK SMALL LETTER IOTA WITH TONOS
+    0x03b0: 0x00fc,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    0x03b1: 0x00d6,     #  GREEK SMALL LETTER ALPHA
+    0x03b2: 0x00d7,     #  GREEK SMALL LETTER BETA
+    0x03b3: 0x00d8,     #  GREEK SMALL LETTER GAMMA
+    0x03b4: 0x00dd,     #  GREEK SMALL LETTER DELTA
+    0x03b5: 0x00de,     #  GREEK SMALL LETTER EPSILON
+    0x03b6: 0x00e0,     #  GREEK SMALL LETTER ZETA
+    0x03b7: 0x00e1,     #  GREEK SMALL LETTER ETA
+    0x03b8: 0x00e2,     #  GREEK SMALL LETTER THETA
+    0x03b9: 0x00e3,     #  GREEK SMALL LETTER IOTA
+    0x03ba: 0x00e4,     #  GREEK SMALL LETTER KAPPA
+    0x03bb: 0x00e5,     #  GREEK SMALL LETTER LAMDA
+    0x03bc: 0x00e6,     #  GREEK SMALL LETTER MU
+    0x03bd: 0x00e7,     #  GREEK SMALL LETTER NU
+    0x03be: 0x00e8,     #  GREEK SMALL LETTER XI
+    0x03bf: 0x00e9,     #  GREEK SMALL LETTER OMICRON
+    0x03c0: 0x00ea,     #  GREEK SMALL LETTER PI
+    0x03c1: 0x00eb,     #  GREEK SMALL LETTER RHO
+    0x03c2: 0x00ed,     #  GREEK SMALL LETTER FINAL SIGMA
+    0x03c3: 0x00ec,     #  GREEK SMALL LETTER SIGMA
+    0x03c4: 0x00ee,     #  GREEK SMALL LETTER TAU
+    0x03c5: 0x00f2,     #  GREEK SMALL LETTER UPSILON
+    0x03c6: 0x00f3,     #  GREEK SMALL LETTER PHI
+    0x03c7: 0x00f4,     #  GREEK SMALL LETTER CHI
+    0x03c8: 0x00f6,     #  GREEK SMALL LETTER PSI
+    0x03c9: 0x00fa,     #  GREEK SMALL LETTER OMEGA
+    0x03ca: 0x00a0,     #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    0x03cb: 0x00fb,     #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    0x03cc: 0x00a2,     #  GREEK SMALL LETTER OMICRON WITH TONOS
+    0x03cd: 0x00a3,     #  GREEK SMALL LETTER UPSILON WITH TONOS
+    0x03ce: 0x00fd,     #  GREEK SMALL LETTER OMEGA WITH TONOS
+    0x2015: 0x008e,     #  HORIZONTAL BAR
+    0x2018: 0x008b,     #  LEFT SINGLE QUOTATION MARK
+    0x2019: 0x008c,     #  RIGHT SINGLE QUOTATION MARK
+    0x2500: 0x00c4,     #  BOX DRAWINGS LIGHT HORIZONTAL
+    0x2502: 0x00b3,     #  BOX DRAWINGS LIGHT VERTICAL
+    0x250c: 0x00da,     #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+    0x2510: 0x00bf,     #  BOX DRAWINGS LIGHT DOWN AND LEFT
+    0x2514: 0x00c0,     #  BOX DRAWINGS LIGHT UP AND RIGHT
+    0x2518: 0x00d9,     #  BOX DRAWINGS LIGHT UP AND LEFT
+    0x251c: 0x00c3,     #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    0x2524: 0x00b4,     #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    0x252c: 0x00c2,     #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    0x2534: 0x00c1,     #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    0x253c: 0x00c5,     #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    0x2550: 0x00cd,     #  BOX DRAWINGS DOUBLE HORIZONTAL
+    0x2551: 0x00ba,     #  BOX DRAWINGS DOUBLE VERTICAL
+    0x2554: 0x00c9,     #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    0x2557: 0x00bb,     #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+    0x255a: 0x00c8,     #  BOX DRAWINGS DOUBLE UP AND RIGHT
+    0x255d: 0x00bc,     #  BOX DRAWINGS DOUBLE UP AND LEFT
+    0x2560: 0x00cc,     #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    0x2563: 0x00b9,     #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    0x2566: 0x00cb,     #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    0x2569: 0x00ca,     #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    0x256c: 0x00ce,     #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    0x2580: 0x00df,     #  UPPER HALF BLOCK
+    0x2584: 0x00dc,     #  LOWER HALF BLOCK
+    0x2588: 0x00db,     #  FULL BLOCK
+    0x2591: 0x00b0,     #  LIGHT SHADE
+    0x2592: 0x00b1,     #  MEDIUM SHADE
+    0x2593: 0x00b2,     #  DARK SHADE
+    0x25a0: 0x00fe,     #  BLACK SQUARE
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp874.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp874.py
new file mode 100644
index 0000000..59bfcbc
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp874.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp874 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP874.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp874',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\ufffe'   #  0x82 -> UNDEFINED
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\ufffe'   #  0x84 -> UNDEFINED
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\ufffe'   #  0x86 -> UNDEFINED
+    '\ufffe'   #  0x87 -> UNDEFINED
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\ufffe'   #  0x89 -> UNDEFINED
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\ufffe'   #  0x8B -> UNDEFINED
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\ufffe'   #  0x99 -> UNDEFINED
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\ufffe'   #  0xFD -> UNDEFINED
+    '\ufffe'   #  0xFE -> UNDEFINED
+    '\ufffe'   #  0xFF -> UNDEFINED
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp875.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp875.py
new file mode 100644
index 0000000..c25a5a4
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp875.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec cp875 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp875',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\u0391'   #  0x41 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x42 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x43 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x44 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x45 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x46 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x47 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0x48 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x49 -> GREEK CAPITAL LETTER IOTA
+    '['        #  0x4A -> LEFT SQUARE BRACKET
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\u039a'   #  0x51 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x52 -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x53 -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x54 -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0x55 -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x56 -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0x57 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x58 -> GREEK CAPITAL LETTER RHO
+    '\u03a3'   #  0x59 -> GREEK CAPITAL LETTER SIGMA
+    ']'        #  0x5A -> RIGHT SQUARE BRACKET
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\u03a4'   #  0x62 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x63 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x64 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x65 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x66 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x67 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0x68 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0x69 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '|'        #  0x6A -> VERTICAL LINE
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xa8'     #  0x70 -> DIAERESIS
+    '\u0386'   #  0x71 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0x72 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0x73 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\xa0'     #  0x74 -> NO-BREAK SPACE
+    '\u038a'   #  0x75 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0x76 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0x77 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0x78 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\u0385'   #  0x80 -> GREEK DIALYTIKA TONOS
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\u03b1'   #  0x8A -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x8B -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x8C -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0x8D -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x8E -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0x8F -> GREEK SMALL LETTER ZETA
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\u03b7'   #  0x9A -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x9B -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x9C -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x9D -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x9E -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x9F -> GREEK SMALL LETTER MU
+    '\xb4'     #  0xA0 -> ACUTE ACCENT
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\u03bd'   #  0xAA -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xAB -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xAC -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xAD -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xAE -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0xAF -> GREEK SMALL LETTER SIGMA
+    '\xa3'     #  0xB0 -> POUND SIGN
+    '\u03ac'   #  0xB1 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xB2 -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xB3 -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03ca'   #  0xB4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03af'   #  0xB5 -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0xB6 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xB7 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03cb'   #  0xB8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03ce'   #  0xB9 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u03c2'   #  0xBA -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0xBB -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xBC -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xBD -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xBE -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xBF -> GREEK SMALL LETTER PSI
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\u03c9'   #  0xCB -> GREEK SMALL LETTER OMEGA
+    '\u0390'   #  0xCC -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03b0'   #  0xCD -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u2018'   #  0xCE -> LEFT SINGLE QUOTATION MARK
+    '\u2015'   #  0xCF -> HORIZONTAL BAR
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb1'     #  0xDA -> PLUS-MINUS SIGN
+    '\xbd'     #  0xDB -> VULGAR FRACTION ONE HALF
+    '\x1a'     #  0xDC -> SUBSTITUTE
+    '\u0387'   #  0xDD -> GREEK ANO TELEIA
+    '\u2019'   #  0xDE -> RIGHT SINGLE QUOTATION MARK
+    '\xa6'     #  0xDF -> BROKEN BAR
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\x1a'     #  0xE1 -> SUBSTITUTE
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xa7'     #  0xEB -> SECTION SIGN
+    '\x1a'     #  0xEC -> SUBSTITUTE
+    '\x1a'     #  0xED -> SUBSTITUTE
+    '\xab'     #  0xEE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xEF -> NOT SIGN
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xa9'     #  0xFB -> COPYRIGHT SIGN
+    '\x1a'     #  0xFC -> SUBSTITUTE
+    '\x1a'     #  0xFD -> SUBSTITUTE
+    '\xbb'     #  0xFE -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\x9f'     #  0xFF -> CONTROL
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp932.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp932.py
new file mode 100644
index 0000000..e01f59b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp932.py
@@ -0,0 +1,39 @@
+#
+# cp932.py: Python Unicode Codec for CP932
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('cp932')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp932',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp949.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp949.py
new file mode 100644
index 0000000..627c871
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp949.py
@@ -0,0 +1,39 @@
+#
+# cp949.py: Python Unicode Codec for CP949
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_kr, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_kr.getcodec('cp949')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp949',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/cp950.py b/linux-x64/clang/python3/lib/python3.9/encodings/cp950.py
new file mode 100644
index 0000000..39eec5e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/cp950.py
@@ -0,0 +1,39 @@
+#
+# cp950.py: Python Unicode Codec for CP950
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_tw, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_tw.getcodec('cp950')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='cp950',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/euc_jis_2004.py b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jis_2004.py
new file mode 100644
index 0000000..72b87ae
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jis_2004.py
@@ -0,0 +1,39 @@
+#
+# euc_jis_2004.py: Python Unicode Codec for EUC_JIS_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('euc_jis_2004')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='euc_jis_2004',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/euc_jisx0213.py b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jisx0213.py
new file mode 100644
index 0000000..cc47d04
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jisx0213.py
@@ -0,0 +1,39 @@
+#
+# euc_jisx0213.py: Python Unicode Codec for EUC_JISX0213
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('euc_jisx0213')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='euc_jisx0213',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/euc_jp.py b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jp.py
new file mode 100644
index 0000000..7bcbe41
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/euc_jp.py
@@ -0,0 +1,39 @@
+#
+# euc_jp.py: Python Unicode Codec for EUC_JP
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('euc_jp')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='euc_jp',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/euc_kr.py b/linux-x64/clang/python3/lib/python3.9/encodings/euc_kr.py
new file mode 100644
index 0000000..c1fb126
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/euc_kr.py
@@ -0,0 +1,39 @@
+#
+# euc_kr.py: Python Unicode Codec for EUC_KR
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_kr, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_kr.getcodec('euc_kr')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='euc_kr',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/gb18030.py b/linux-x64/clang/python3/lib/python3.9/encodings/gb18030.py
new file mode 100644
index 0000000..34fb6c3
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/gb18030.py
@@ -0,0 +1,39 @@
+#
+# gb18030.py: Python Unicode Codec for GB18030
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_cn, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_cn.getcodec('gb18030')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='gb18030',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/gb2312.py b/linux-x64/clang/python3/lib/python3.9/encodings/gb2312.py
new file mode 100644
index 0000000..3c3b837
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/gb2312.py
@@ -0,0 +1,39 @@
+#
+# gb2312.py: Python Unicode Codec for GB2312
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_cn, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_cn.getcodec('gb2312')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='gb2312',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/gbk.py b/linux-x64/clang/python3/lib/python3.9/encodings/gbk.py
new file mode 100644
index 0000000..1b45db8
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/gbk.py
@@ -0,0 +1,39 @@
+#
+# gbk.py: Python Unicode Codec for GBK
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_cn, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_cn.getcodec('gbk')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='gbk',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/hex_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/hex_codec.py
new file mode 100644
index 0000000..9fb1072
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/hex_codec.py
@@ -0,0 +1,55 @@
+"""Python 'hex_codec' Codec - 2-digit hex content transfer encoding.
+
+This codec de/encodes from bytes to bytes.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+"""
+
+import codecs
+import binascii
+
+### Codec APIs
+
+def hex_encode(input, errors='strict'):
+    assert errors == 'strict'
+    return (binascii.b2a_hex(input), len(input))
+
+def hex_decode(input, errors='strict'):
+    assert errors == 'strict'
+    return (binascii.a2b_hex(input), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return hex_encode(input, errors)
+    def decode(self, input, errors='strict'):
+        return hex_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        assert self.errors == 'strict'
+        return binascii.b2a_hex(input)
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        assert self.errors == 'strict'
+        return binascii.a2b_hex(input)
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='hex',
+        encode=hex_encode,
+        decode=hex_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+        _is_text_encoding=False,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/hp_roman8.py b/linux-x64/clang/python3/lib/python3.9/encodings/hp_roman8.py
new file mode 100644
index 0000000..58de103
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/hp_roman8.py
@@ -0,0 +1,314 @@
+""" Python Character Mapping Codec generated from 'hp_roman8.txt' with gencodec.py.
+
+    Based on data from ftp://dkuug.dk/i18n/charmaps/HP-ROMAN8 (Keld Simonsen)
+
+    Original source: LaserJet IIP Printer User's Manual HP part no
+    33471-90901, Hewlet-Packard, June 1989.
+
+    (Used with permission)
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='hp-roman8',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xc0'     #  0xA1 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc2'     #  0xA2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc8'     #  0xA3 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xca'     #  0xA4 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xA5 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xce'     #  0xA6 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xA7 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xb4'     #  0xA8 -> ACUTE ACCENT
+    '\u02cb'   #  0xA9 -> MODIFIER LETTER GRAVE ACCENT (MANDARIN CHINESE FOURTH TONE)
+    '\u02c6'   #  0xAA -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\xa8'     #  0xAB -> DIAERESIS
+    '\u02dc'   #  0xAC -> SMALL TILDE
+    '\xd9'     #  0xAD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xdb'     #  0xAE -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\u20a4'   #  0xAF -> LIRA SIGN
+    '\xaf'     #  0xB0 -> MACRON
+    '\xdd'     #  0xB1 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xfd'     #  0xB2 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xb0'     #  0xB3 -> DEGREE SIGN
+    '\xc7'     #  0xB4 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xe7'     #  0xB5 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xd1'     #  0xB6 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xf1'     #  0xB7 -> LATIN SMALL LETTER N WITH TILDE
+    '\xa1'     #  0xB8 -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xB9 -> INVERTED QUESTION MARK
+    '\xa4'     #  0xBA -> CURRENCY SIGN
+    '\xa3'     #  0xBB -> POUND SIGN
+    '\xa5'     #  0xBC -> YEN SIGN
+    '\xa7'     #  0xBD -> SECTION SIGN
+    '\u0192'   #  0xBE -> LATIN SMALL LETTER F WITH HOOK
+    '\xa2'     #  0xBF -> CENT SIGN
+    '\xe2'     #  0xC0 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xea'     #  0xC1 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xf4'     #  0xC2 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xfb'     #  0xC3 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xe1'     #  0xC4 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe9'     #  0xC5 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xf3'     #  0xC6 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0xC7 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xe0'     #  0xC8 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe8'     #  0xC9 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xf2'     #  0xCA -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf9'     #  0xCB -> LATIN SMALL LETTER U WITH GRAVE
+    '\xe4'     #  0xCC -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xeb'     #  0xCD -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xf6'     #  0xCE -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xfc'     #  0xCF -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xc5'     #  0xD0 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xee'     #  0xD1 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xd8'     #  0xD2 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xc6'     #  0xD3 -> LATIN CAPITAL LETTER AE
+    '\xe5'     #  0xD4 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xed'     #  0xD5 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf8'     #  0xD6 -> LATIN SMALL LETTER O WITH STROKE
+    '\xe6'     #  0xD7 -> LATIN SMALL LETTER AE
+    '\xc4'     #  0xD8 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xec'     #  0xD9 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xd6'     #  0xDA -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0xDB -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xc9'     #  0xDC -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xef'     #  0xDD -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xdf'     #  0xDE -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\xd4'     #  0xDF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xc1'     #  0xE0 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0xE1 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xe3'     #  0xE2 -> LATIN SMALL LETTER A WITH TILDE
+    '\xd0'     #  0xE3 -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xf0'     #  0xE4 -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xcd'     #  0xE5 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xcc'     #  0xE6 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xE7 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd2'     #  0xE8 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd5'     #  0xE9 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xf5'     #  0xEA -> LATIN SMALL LETTER O WITH TILDE
+    '\u0160'   #  0xEB -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0161'   #  0xEC -> LATIN SMALL LETTER S WITH CARON
+    '\xda'     #  0xED -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0178'   #  0xEE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xff'     #  0xEF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xde'     #  0xF0 -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xfe'     #  0xF1 -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb7'     #  0xF2 -> MIDDLE DOT
+    '\xb5'     #  0xF3 -> MICRO SIGN
+    '\xb6'     #  0xF4 -> PILCROW SIGN
+    '\xbe'     #  0xF5 -> VULGAR FRACTION THREE QUARTERS
+    '\u2014'   #  0xF6 -> EM DASH
+    '\xbc'     #  0xF7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xF8 -> VULGAR FRACTION ONE HALF
+    '\xaa'     #  0xF9 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xFA -> MASCULINE ORDINAL INDICATOR
+    '\xab'     #  0xFB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u25a0'   #  0xFC -> BLACK SQUARE
+    '\xbb'     #  0xFD -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xb1'     #  0xFE -> PLUS-MINUS SIGN
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/hz.py b/linux-x64/clang/python3/lib/python3.9/encodings/hz.py
new file mode 100644
index 0000000..383442a
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/hz.py
@@ -0,0 +1,39 @@
+#
+# hz.py: Python Unicode Codec for HZ
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_cn, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_cn.getcodec('hz')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='hz',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/idna.py b/linux-x64/clang/python3/lib/python3.9/encodings/idna.py
new file mode 100644
index 0000000..ea40585
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/idna.py
@@ -0,0 +1,309 @@
+# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
+
+import stringprep, re, codecs
+from unicodedata import ucd_3_2_0 as unicodedata
+
+# IDNA section 3.1
+dots = re.compile("[\u002E\u3002\uFF0E\uFF61]")
+
+# IDNA section 5
+ace_prefix = b"xn--"
+sace_prefix = "xn--"
+
+# This assumes query strings, so AllowUnassigned is true
+def nameprep(label):
+    # Map
+    newlabel = []
+    for c in label:
+        if stringprep.in_table_b1(c):
+            # Map to nothing
+            continue
+        newlabel.append(stringprep.map_table_b2(c))
+    label = "".join(newlabel)
+
+    # Normalize
+    label = unicodedata.normalize("NFKC", label)
+
+    # Prohibit
+    for c in label:
+        if stringprep.in_table_c12(c) or \
+           stringprep.in_table_c22(c) or \
+           stringprep.in_table_c3(c) or \
+           stringprep.in_table_c4(c) or \
+           stringprep.in_table_c5(c) or \
+           stringprep.in_table_c6(c) or \
+           stringprep.in_table_c7(c) or \
+           stringprep.in_table_c8(c) or \
+           stringprep.in_table_c9(c):
+            raise UnicodeError("Invalid character %r" % c)
+
+    # Check bidi
+    RandAL = [stringprep.in_table_d1(x) for x in label]
+    for c in RandAL:
+        if c:
+            # There is a RandAL char in the string. Must perform further
+            # tests:
+            # 1) The characters in section 5.8 MUST be prohibited.
+            # This is table C.8, which was already checked
+            # 2) If a string contains any RandALCat character, the string
+            # MUST NOT contain any LCat character.
+            if any(stringprep.in_table_d2(x) for x in label):
+                raise UnicodeError("Violation of BIDI requirement 2")
+
+            # 3) If a string contains any RandALCat character, a
+            # RandALCat character MUST be the first character of the
+            # string, and a RandALCat character MUST be the last
+            # character of the string.
+            if not RandAL[0] or not RandAL[-1]:
+                raise UnicodeError("Violation of BIDI requirement 3")
+
+    return label
+
+def ToASCII(label):
+    try:
+        # Step 1: try ASCII
+        label = label.encode("ascii")
+    except UnicodeError:
+        pass
+    else:
+        # Skip to step 3: UseSTD3ASCIIRules is false, so
+        # Skip to step 8.
+        if 0 < len(label) < 64:
+            return label
+        raise UnicodeError("label empty or too long")
+
+    # Step 2: nameprep
+    label = nameprep(label)
+
+    # Step 3: UseSTD3ASCIIRules is false
+    # Step 4: try ASCII
+    try:
+        label = label.encode("ascii")
+    except UnicodeError:
+        pass
+    else:
+        # Skip to step 8.
+        if 0 < len(label) < 64:
+            return label
+        raise UnicodeError("label empty or too long")
+
+    # Step 5: Check ACE prefix
+    if label.startswith(sace_prefix):
+        raise UnicodeError("Label starts with ACE prefix")
+
+    # Step 6: Encode with PUNYCODE
+    label = label.encode("punycode")
+
+    # Step 7: Prepend ACE prefix
+    label = ace_prefix + label
+
+    # Step 8: Check size
+    if 0 < len(label) < 64:
+        return label
+    raise UnicodeError("label empty or too long")
+
+def ToUnicode(label):
+    # Step 1: Check for ASCII
+    if isinstance(label, bytes):
+        pure_ascii = True
+    else:
+        try:
+            label = label.encode("ascii")
+            pure_ascii = True
+        except UnicodeError:
+            pure_ascii = False
+    if not pure_ascii:
+        # Step 2: Perform nameprep
+        label = nameprep(label)
+        # It doesn't say this, but apparently, it should be ASCII now
+        try:
+            label = label.encode("ascii")
+        except UnicodeError:
+            raise UnicodeError("Invalid character in IDN label")
+    # Step 3: Check for ACE prefix
+    if not label.startswith(ace_prefix):
+        return str(label, "ascii")
+
+    # Step 4: Remove ACE prefix
+    label1 = label[len(ace_prefix):]
+
+    # Step 5: Decode using PUNYCODE
+    result = label1.decode("punycode")
+
+    # Step 6: Apply ToASCII
+    label2 = ToASCII(result)
+
+    # Step 7: Compare the result of step 6 with the one of step 3
+    # label2 will already be in lower case.
+    if str(label, "ascii").lower() != str(label2, "ascii"):
+        raise UnicodeError("IDNA does not round-trip", label, label2)
+
+    # Step 8: return the result of step 5
+    return result
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+
+        if errors != 'strict':
+            # IDNA is quite clear that implementations must be strict
+            raise UnicodeError("unsupported error handling "+errors)
+
+        if not input:
+            return b'', 0
+
+        try:
+            result = input.encode('ascii')
+        except UnicodeEncodeError:
+            pass
+        else:
+            # ASCII name: fast path
+            labels = result.split(b'.')
+            for label in labels[:-1]:
+                if not (0 < len(label) < 64):
+                    raise UnicodeError("label empty or too long")
+            if len(labels[-1]) >= 64:
+                raise UnicodeError("label too long")
+            return result, len(input)
+
+        result = bytearray()
+        labels = dots.split(input)
+        if labels and not labels[-1]:
+            trailing_dot = b'.'
+            del labels[-1]
+        else:
+            trailing_dot = b''
+        for label in labels:
+            if result:
+                # Join with U+002E
+                result.extend(b'.')
+            result.extend(ToASCII(label))
+        return bytes(result+trailing_dot), len(input)
+
+    def decode(self, input, errors='strict'):
+
+        if errors != 'strict':
+            raise UnicodeError("Unsupported error handling "+errors)
+
+        if not input:
+            return "", 0
+
+        # IDNA allows decoding to operate on Unicode strings, too.
+        if not isinstance(input, bytes):
+            # XXX obviously wrong, see #3232
+            input = bytes(input)
+
+        if ace_prefix not in input:
+            # Fast path
+            try:
+                return input.decode('ascii'), len(input)
+            except UnicodeDecodeError:
+                pass
+
+        labels = input.split(b".")
+
+        if labels and len(labels[-1]) == 0:
+            trailing_dot = '.'
+            del labels[-1]
+        else:
+            trailing_dot = ''
+
+        result = []
+        for label in labels:
+            result.append(ToUnicode(label))
+
+        return ".".join(result)+trailing_dot, len(input)
+
+class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
+    def _buffer_encode(self, input, errors, final):
+        if errors != 'strict':
+            # IDNA is quite clear that implementations must be strict
+            raise UnicodeError("unsupported error handling "+errors)
+
+        if not input:
+            return (b'', 0)
+
+        labels = dots.split(input)
+        trailing_dot = b''
+        if labels:
+            if not labels[-1]:
+                trailing_dot = b'.'
+                del labels[-1]
+            elif not final:
+                # Keep potentially unfinished label until the next call
+                del labels[-1]
+                if labels:
+                    trailing_dot = b'.'
+
+        result = bytearray()
+        size = 0
+        for label in labels:
+            if size:
+                # Join with U+002E
+                result.extend(b'.')
+                size += 1
+            result.extend(ToASCII(label))
+            size += len(label)
+
+        result += trailing_dot
+        size += len(trailing_dot)
+        return (bytes(result), size)
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def _buffer_decode(self, input, errors, final):
+        if errors != 'strict':
+            raise UnicodeError("Unsupported error handling "+errors)
+
+        if not input:
+            return ("", 0)
+
+        # IDNA allows decoding to operate on Unicode strings, too.
+        if isinstance(input, str):
+            labels = dots.split(input)
+        else:
+            # Must be ASCII string
+            input = str(input, "ascii")
+            labels = input.split(".")
+
+        trailing_dot = ''
+        if labels:
+            if not labels[-1]:
+                trailing_dot = '.'
+                del labels[-1]
+            elif not final:
+                # Keep potentially unfinished label until the next call
+                del labels[-1]
+                if labels:
+                    trailing_dot = '.'
+
+        result = []
+        size = 0
+        for label in labels:
+            result.append(ToUnicode(label))
+            if size:
+                size += 1
+            size += len(label)
+
+        result = ".".join(result) + trailing_dot
+        size += len(trailing_dot)
+        return (result, size)
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='idna',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp.py
new file mode 100644
index 0000000..ab04060
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp.py: Python Unicode Codec for ISO2022_JP
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_1.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_1.py
new file mode 100644
index 0000000..997044d
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_1.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp_1.py: Python Unicode Codec for ISO2022_JP_1
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_1')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp_1',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2.py
new file mode 100644
index 0000000..9106bf7
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp_2.py: Python Unicode Codec for ISO2022_JP_2
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_2')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp_2',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2004.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2004.py
new file mode 100644
index 0000000..40198bf
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_2004.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp_2004.py: Python Unicode Codec for ISO2022_JP_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_2004')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp_2004',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_3.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_3.py
new file mode 100644
index 0000000..346e08b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_3.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp_3.py: Python Unicode Codec for ISO2022_JP_3
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_3')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp_3',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_ext.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_ext.py
new file mode 100644
index 0000000..752bab9
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_jp_ext.py
@@ -0,0 +1,39 @@
+#
+# iso2022_jp_ext.py: Python Unicode Codec for ISO2022_JP_EXT
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_ext')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_jp_ext',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_kr.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_kr.py
new file mode 100644
index 0000000..bf70187
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso2022_kr.py
@@ -0,0 +1,39 @@
+#
+# iso2022_kr.py: Python Unicode Codec for ISO2022_KR
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_iso2022, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_iso2022.getcodec('iso2022_kr')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso2022_kr',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_1.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_1.py
new file mode 100644
index 0000000..8cfc01f
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_1.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_1 generated from 'MAPPINGS/ISO8859/8859-1.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-1',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_10.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_10.py
new file mode 100644
index 0000000..b4fb041
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_10.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_10 generated from 'MAPPINGS/ISO8859/8859-10.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-10',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0112'   #  0xA2 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0122'   #  0xA3 -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u012a'   #  0xA4 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
+    '\u0136'   #  0xA6 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u013b'   #  0xA8 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0110'   #  0xA9 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0160'   #  0xAA -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0166'   #  0xAB -> LATIN CAPITAL LETTER T WITH STROKE
+    '\u017d'   #  0xAC -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u016a'   #  0xAE -> LATIN CAPITAL LETTER U WITH MACRON
+    '\u014a'   #  0xAF -> LATIN CAPITAL LETTER ENG
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u0113'   #  0xB2 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0123'   #  0xB3 -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
+    '\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
+    '\u0137'   #  0xB6 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u013c'   #  0xB8 -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0111'   #  0xB9 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0161'   #  0xBA -> LATIN SMALL LETTER S WITH CARON
+    '\u0167'   #  0xBB -> LATIN SMALL LETTER T WITH STROKE
+    '\u017e'   #  0xBC -> LATIN SMALL LETTER Z WITH CARON
+    '\u2015'   #  0xBD -> HORIZONTAL BAR
+    '\u016b'   #  0xBE -> LATIN SMALL LETTER U WITH MACRON
+    '\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
+    '\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u0168'   #  0xD7 -> LATIN CAPITAL LETTER U WITH TILDE
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
+    '\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u0169'   #  0xF7 -> LATIN SMALL LETTER U WITH TILDE
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
+    '\u0138'   #  0xFF -> LATIN SMALL LETTER KRA
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_11.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_11.py
new file mode 100644
index 0000000..c7258ec
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_11.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_11 generated from 'MAPPINGS/ISO8859/8859-11.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-11',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_13.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_13.py
new file mode 100644
index 0000000..6f8eab2
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_13.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_13 generated from 'MAPPINGS/ISO8859/8859-13.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-13',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u201d'   #  0xA1 -> RIGHT DOUBLE QUOTATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u201c'   #  0xB4 -> LEFT DOUBLE QUOTATION MARK
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xe6'     #  0xBF -> LATIN SMALL LETTER AE
+    '\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
+    '\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
+    '\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
+    '\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
+    '\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
+    '\u2019'   #  0xFF -> RIGHT SINGLE QUOTATION MARK
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_14.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_14.py
new file mode 100644
index 0000000..7568d4e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_14.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_14 generated from 'MAPPINGS/ISO8859/8859-14.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-14',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u1e02'   #  0xA1 -> LATIN CAPITAL LETTER B WITH DOT ABOVE
+    '\u1e03'   #  0xA2 -> LATIN SMALL LETTER B WITH DOT ABOVE
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u010a'   #  0xA4 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
+    '\u010b'   #  0xA5 -> LATIN SMALL LETTER C WITH DOT ABOVE
+    '\u1e0a'   #  0xA6 -> LATIN CAPITAL LETTER D WITH DOT ABOVE
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u1e80'   #  0xA8 -> LATIN CAPITAL LETTER W WITH GRAVE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u1e82'   #  0xAA -> LATIN CAPITAL LETTER W WITH ACUTE
+    '\u1e0b'   #  0xAB -> LATIN SMALL LETTER D WITH DOT ABOVE
+    '\u1ef2'   #  0xAC -> LATIN CAPITAL LETTER Y WITH GRAVE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u0178'   #  0xAF -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u1e1e'   #  0xB0 -> LATIN CAPITAL LETTER F WITH DOT ABOVE
+    '\u1e1f'   #  0xB1 -> LATIN SMALL LETTER F WITH DOT ABOVE
+    '\u0120'   #  0xB2 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
+    '\u0121'   #  0xB3 -> LATIN SMALL LETTER G WITH DOT ABOVE
+    '\u1e40'   #  0xB4 -> LATIN CAPITAL LETTER M WITH DOT ABOVE
+    '\u1e41'   #  0xB5 -> LATIN SMALL LETTER M WITH DOT ABOVE
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\u1e56'   #  0xB7 -> LATIN CAPITAL LETTER P WITH DOT ABOVE
+    '\u1e81'   #  0xB8 -> LATIN SMALL LETTER W WITH GRAVE
+    '\u1e57'   #  0xB9 -> LATIN SMALL LETTER P WITH DOT ABOVE
+    '\u1e83'   #  0xBA -> LATIN SMALL LETTER W WITH ACUTE
+    '\u1e60'   #  0xBB -> LATIN CAPITAL LETTER S WITH DOT ABOVE
+    '\u1ef3'   #  0xBC -> LATIN SMALL LETTER Y WITH GRAVE
+    '\u1e84'   #  0xBD -> LATIN CAPITAL LETTER W WITH DIAERESIS
+    '\u1e85'   #  0xBE -> LATIN SMALL LETTER W WITH DIAERESIS
+    '\u1e61'   #  0xBF -> LATIN SMALL LETTER S WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0174'   #  0xD0 -> LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u1e6a'   #  0xD7 -> LATIN CAPITAL LETTER T WITH DOT ABOVE
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0176'   #  0xDE -> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0175'   #  0xF0 -> LATIN SMALL LETTER W WITH CIRCUMFLEX
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u1e6b'   #  0xF7 -> LATIN SMALL LETTER T WITH DOT ABOVE
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0177'   #  0xFE -> LATIN SMALL LETTER Y WITH CIRCUMFLEX
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_15.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_15.py
new file mode 100644
index 0000000..43bdecd
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_15.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_15 generated from 'MAPPINGS/ISO8859/8859-15.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-15',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
+    '\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_16.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_16.py
new file mode 100644
index 0000000..e70c96e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_16.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_16 generated from 'MAPPINGS/ISO8859/8859-16.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-16',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0105'   #  0xA2 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0218'   #  0xAA -> LATIN CAPITAL LETTER S WITH COMMA BELOW
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017a'   #  0xAE -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u010c'   #  0xB2 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u201d'   #  0xB5 -> RIGHT DOUBLE QUOTATION MARK
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
+    '\u010d'   #  0xB9 -> LATIN SMALL LETTER C WITH CARON
+    '\u0219'   #  0xBA -> LATIN SMALL LETTER S WITH COMMA BELOW
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
+    '\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0106'   #  0xC5 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u015a'   #  0xD7 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u0170'   #  0xD8 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0118'   #  0xDD -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0107'   #  0xE5 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u015b'   #  0xF7 -> LATIN SMALL LETTER S WITH ACUTE
+    '\u0171'   #  0xF8 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0119'   #  0xFD -> LATIN SMALL LETTER E WITH OGONEK
+    '\u021b'   #  0xFE -> LATIN SMALL LETTER T WITH COMMA BELOW
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_2.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_2.py
new file mode 100644
index 0000000..3698747
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_2.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_2 generated from 'MAPPINGS/ISO8859/8859-2.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-2',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u02d8'   #  0xA2 -> BREVE
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u013d'   #  0xA5 -> LATIN CAPITAL LETTER L WITH CARON
+    '\u015a'   #  0xA6 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u0164'   #  0xAB -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\u013e'   #  0xB5 -> LATIN SMALL LETTER L WITH CARON
+    '\u015b'   #  0xB6 -> LATIN SMALL LETTER S WITH ACUTE
+    '\u02c7'   #  0xB7 -> CARON
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u0165'   #  0xBB -> LATIN SMALL LETTER T WITH CARON
+    '\u017a'   #  0xBC -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
+    '\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
+    '\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
+    '\u02d9'   #  0xFF -> DOT ABOVE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_3.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_3.py
new file mode 100644
index 0000000..96d3063
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_3.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_3 generated from 'MAPPINGS/ISO8859/8859-3.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-3',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0126'   #  0xA1 -> LATIN CAPITAL LETTER H WITH STROKE
+    '\u02d8'   #  0xA2 -> BREVE
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'
+    '\u0124'   #  0xA6 -> LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0130'   #  0xA9 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u011e'   #  0xAB -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u0134'   #  0xAC -> LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0127'   #  0xB1 -> LATIN SMALL LETTER H WITH STROKE
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u0125'   #  0xB6 -> LATIN SMALL LETTER H WITH CIRCUMFLEX
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0131'   #  0xB9 -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u011f'   #  0xBB -> LATIN SMALL LETTER G WITH BREVE
+    '\u0135'   #  0xBC -> LATIN SMALL LETTER J WITH CIRCUMFLEX
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\ufffe'
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\ufffe'
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u010a'   #  0xC5 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
+    '\u0108'   #  0xC6 -> LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\ufffe'
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0120'   #  0xD5 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u011c'   #  0xD8 -> LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u016c'   #  0xDD -> LATIN CAPITAL LETTER U WITH BREVE
+    '\u015c'   #  0xDE -> LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\ufffe'
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u010b'   #  0xE5 -> LATIN SMALL LETTER C WITH DOT ABOVE
+    '\u0109'   #  0xE6 -> LATIN SMALL LETTER C WITH CIRCUMFLEX
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\ufffe'
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0121'   #  0xF5 -> LATIN SMALL LETTER G WITH DOT ABOVE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u011d'   #  0xF8 -> LATIN SMALL LETTER G WITH CIRCUMFLEX
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u016d'   #  0xFD -> LATIN SMALL LETTER U WITH BREVE
+    '\u015d'   #  0xFE -> LATIN SMALL LETTER S WITH CIRCUMFLEX
+    '\u02d9'   #  0xFF -> DOT ABOVE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_4.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_4.py
new file mode 100644
index 0000000..65c1e00
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_4.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_4 generated from 'MAPPINGS/ISO8859/8859-4.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-4',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0138'   #  0xA2 -> LATIN SMALL LETTER KRA
+    '\u0156'   #  0xA3 -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
+    '\u013b'   #  0xA6 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0112'   #  0xAA -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0122'   #  0xAB -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0166'   #  0xAC -> LATIN CAPITAL LETTER T WITH STROKE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0157'   #  0xB3 -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
+    '\u013c'   #  0xB6 -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u02c7'   #  0xB7 -> CARON
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u0113'   #  0xBA -> LATIN SMALL LETTER E WITH MACRON
+    '\u0123'   #  0xBB -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0167'   #  0xBC -> LATIN SMALL LETTER T WITH STROKE
+    '\u014a'   #  0xBD -> LATIN CAPITAL LETTER ENG
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
+    '\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u012a'   #  0xCF -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u0136'   #  0xD3 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0168'   #  0xDD -> LATIN CAPITAL LETTER U WITH TILDE
+    '\u016a'   #  0xDE -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u012b'   #  0xEF -> LATIN SMALL LETTER I WITH MACRON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
+    '\u0137'   #  0xF3 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0169'   #  0xFD -> LATIN SMALL LETTER U WITH TILDE
+    '\u016b'   #  0xFE -> LATIN SMALL LETTER U WITH MACRON
+    '\u02d9'   #  0xFF -> DOT ABOVE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_5.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_5.py
new file mode 100644
index 0000000..a3c868a
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_5.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_5 generated from 'MAPPINGS/ISO8859/8859-5.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-5',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0401'   #  0xA1 -> CYRILLIC CAPITAL LETTER IO
+    '\u0402'   #  0xA2 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0403'   #  0xA3 -> CYRILLIC CAPITAL LETTER GJE
+    '\u0404'   #  0xA4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0405'   #  0xA5 -> CYRILLIC CAPITAL LETTER DZE
+    '\u0406'   #  0xA6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0407'   #  0xA7 -> CYRILLIC CAPITAL LETTER YI
+    '\u0408'   #  0xA8 -> CYRILLIC CAPITAL LETTER JE
+    '\u0409'   #  0xA9 -> CYRILLIC CAPITAL LETTER LJE
+    '\u040a'   #  0xAA -> CYRILLIC CAPITAL LETTER NJE
+    '\u040b'   #  0xAB -> CYRILLIC CAPITAL LETTER TSHE
+    '\u040c'   #  0xAC -> CYRILLIC CAPITAL LETTER KJE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u040e'   #  0xAE -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u040f'   #  0xAF -> CYRILLIC CAPITAL LETTER DZHE
+    '\u0410'   #  0xB0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xB1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0xB2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0xB3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0xB4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xB5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0xB6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0xB7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0xB8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xB9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xBA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xBB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xBC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xBD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xBE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xBF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0xC0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xC1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xC2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xC3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0xC4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0xC5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0xC6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0xC7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0xC8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0xCA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0xCB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0xCC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0xCD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0xCE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0xCF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0xD0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xD1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xD2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xD3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xD4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xD5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xD7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xD8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xDA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xDB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xDC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xDD -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xDE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xDF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xE0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xE1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xE2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xE3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xE4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xE5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xE6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xE7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xE8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xE9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xEA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xEB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xEC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xED -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xEE -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0xEF -> CYRILLIC SMALL LETTER YA
+    '\u2116'   #  0xF0 -> NUMERO SIGN
+    '\u0451'   #  0xF1 -> CYRILLIC SMALL LETTER IO
+    '\u0452'   #  0xF2 -> CYRILLIC SMALL LETTER DJE
+    '\u0453'   #  0xF3 -> CYRILLIC SMALL LETTER GJE
+    '\u0454'   #  0xF4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0455'   #  0xF5 -> CYRILLIC SMALL LETTER DZE
+    '\u0456'   #  0xF6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0xF7 -> CYRILLIC SMALL LETTER YI
+    '\u0458'   #  0xF8 -> CYRILLIC SMALL LETTER JE
+    '\u0459'   #  0xF9 -> CYRILLIC SMALL LETTER LJE
+    '\u045a'   #  0xFA -> CYRILLIC SMALL LETTER NJE
+    '\u045b'   #  0xFB -> CYRILLIC SMALL LETTER TSHE
+    '\u045c'   #  0xFC -> CYRILLIC SMALL LETTER KJE
+    '\xa7'     #  0xFD -> SECTION SIGN
+    '\u045e'   #  0xFE -> CYRILLIC SMALL LETTER SHORT U
+    '\u045f'   #  0xFF -> CYRILLIC SMALL LETTER DZHE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_6.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_6.py
new file mode 100644
index 0000000..b02ade6
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_6.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_6 generated from 'MAPPINGS/ISO8859/8859-6.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-6',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u060c'   #  0xAC -> ARABIC COMMA
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u061b'   #  0xBB -> ARABIC SEMICOLON
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\ufffe'
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\u0637'   #  0xD7 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xD9 -> ARABIC LETTER AIN
+    '\u063a'   #  0xDA -> ARABIC LETTER GHAIN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0640'   #  0xE0 -> ARABIC TATWEEL
+    '\u0641'   #  0xE1 -> ARABIC LETTER FEH
+    '\u0642'   #  0xE2 -> ARABIC LETTER QAF
+    '\u0643'   #  0xE3 -> ARABIC LETTER KAF
+    '\u0644'   #  0xE4 -> ARABIC LETTER LAM
+    '\u0645'   #  0xE5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE6 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE7 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE8 -> ARABIC LETTER WAW
+    '\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xEA -> ARABIC LETTER YEH
+    '\u064b'   #  0xEB -> ARABIC FATHATAN
+    '\u064c'   #  0xEC -> ARABIC DAMMATAN
+    '\u064d'   #  0xED -> ARABIC KASRATAN
+    '\u064e'   #  0xEE -> ARABIC FATHA
+    '\u064f'   #  0xEF -> ARABIC DAMMA
+    '\u0650'   #  0xF0 -> ARABIC KASRA
+    '\u0651'   #  0xF1 -> ARABIC SHADDA
+    '\u0652'   #  0xF2 -> ARABIC SUKUN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_7.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_7.py
new file mode 100644
index 0000000..d7b39cb
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_7.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_7 generated from 'MAPPINGS/ISO8859/8859-7.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-7',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u2018'   #  0xA1 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xA2 -> RIGHT SINGLE QUOTATION MARK
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\u20af'   #  0xA5 -> DRACHMA SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u037a'   #  0xAA -> GREEK YPOGEGRAMMENI
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\u2015'   #  0xAF -> HORIZONTAL BAR
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u0384'   #  0xB4 -> GREEK TONOS
+    '\u0385'   #  0xB5 -> GREEK DIALYTIKA TONOS
+    '\u0386'   #  0xB6 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
+    '\ufffe'
+    '\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xED -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xEE -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
+    '\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
+    '\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
+    '\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_8.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_8.py
new file mode 100644
index 0000000..8184902
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_8.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_8 generated from 'MAPPINGS/ISO8859/8859-8.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-8',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xd7'     #  0xAA -> MULTIPLICATION SIGN
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xf7'     #  0xBA -> DIVISION SIGN
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u2017'   #  0xDF -> DOUBLE LOW LINE
+    '\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0xE1 -> HEBREW LETTER BET
+    '\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0xE3 -> HEBREW LETTER DALET
+    '\u05d4'   #  0xE4 -> HEBREW LETTER HE
+    '\u05d5'   #  0xE5 -> HEBREW LETTER VAV
+    '\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0xE7 -> HEBREW LETTER HET
+    '\u05d8'   #  0xE8 -> HEBREW LETTER TET
+    '\u05d9'   #  0xE9 -> HEBREW LETTER YOD
+    '\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0xEB -> HEBREW LETTER KAF
+    '\u05dc'   #  0xEC -> HEBREW LETTER LAMED
+    '\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0xEE -> HEBREW LETTER MEM
+    '\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0xF0 -> HEBREW LETTER NUN
+    '\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0xF4 -> HEBREW LETTER PE
+    '\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0xF7 -> HEBREW LETTER QOF
+    '\u05e8'   #  0xF8 -> HEBREW LETTER RESH
+    '\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0xFA -> HEBREW LETTER TAV
+    '\ufffe'
+    '\ufffe'
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_9.py b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_9.py
new file mode 100644
index 0000000..e539fdd
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/iso8859_9.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec iso8859_9 generated from 'MAPPINGS/ISO8859/8859-9.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-9',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/johab.py b/linux-x64/clang/python3/lib/python3.9/encodings/johab.py
new file mode 100644
index 0000000..512aeeb
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/johab.py
@@ -0,0 +1,39 @@
+#
+# johab.py: Python Unicode Codec for JOHAB
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_kr, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_kr.getcodec('johab')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='johab',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/koi8_r.py b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_r.py
new file mode 100644
index 0000000..41ddde8
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_r.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec koi8_r generated from 'MAPPINGS/VENDORS/MISC/KOI8-R.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='koi8-r',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u2580'   #  0x8B -> UPPER HALF BLOCK
+    '\u2584'   #  0x8C -> LOWER HALF BLOCK
+    '\u2588'   #  0x8D -> FULL BLOCK
+    '\u258c'   #  0x8E -> LEFT HALF BLOCK
+    '\u2590'   #  0x8F -> RIGHT HALF BLOCK
+    '\u2591'   #  0x90 -> LIGHT SHADE
+    '\u2592'   #  0x91 -> MEDIUM SHADE
+    '\u2593'   #  0x92 -> DARK SHADE
+    '\u2320'   #  0x93 -> TOP HALF INTEGRAL
+    '\u25a0'   #  0x94 -> BLACK SQUARE
+    '\u2219'   #  0x95 -> BULLET OPERATOR
+    '\u221a'   #  0x96 -> SQUARE ROOT
+    '\u2248'   #  0x97 -> ALMOST EQUAL TO
+    '\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
+    '\xa0'     #  0x9A -> NO-BREAK SPACE
+    '\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
+    '\xb0'     #  0x9C -> DEGREE SIGN
+    '\xb2'     #  0x9D -> SUPERSCRIPT TWO
+    '\xb7'     #  0x9E -> MIDDLE DOT
+    '\xf7'     #  0x9F -> DIVISION SIGN
+    '\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
+    '\u2553'   #  0xA4 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2555'   #  0xA6 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2556'   #  0xA7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u255c'   #  0xAD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
+    '\u2562'   #  0xB4 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2564'   #  0xB6 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0xB7 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u256b'   #  0xBD -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa9'     #  0xBF -> COPYRIGHT SIGN
+    '\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
+    '\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
+    '\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
+    '\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
+    '\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
+    '\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
+    '\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
+    '\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
+    '\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
+    '\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
+    '\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
+    '\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
+    '\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
+    '\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
+    '\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
+    '\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
+    '\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
+    '\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
+    '\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
+    '\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
+    '\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
+    '\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
+    '\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
+    '\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
+    '\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
+    '\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
+    '\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
+    '\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
+    '\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/koi8_t.py b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_t.py
new file mode 100644
index 0000000..b5415ba
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_t.py
@@ -0,0 +1,308 @@
+""" Python Character Mapping Codec koi8_t
+"""
+# http://ru.wikipedia.org/wiki/КОИ-8
+# http://www.opensource.apple.com/source/libiconv/libiconv-4/libiconv/tests/KOI8-T.TXT
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='koi8-t',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u049b'   #  0x80 -> CYRILLIC SMALL LETTER KA WITH DESCENDER
+    '\u0493'   #  0x81 -> CYRILLIC SMALL LETTER GHE WITH STROKE
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0492'   #  0x83 -> CYRILLIC CAPITAL LETTER GHE WITH STROKE
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u04b3'   #  0x8A -> CYRILLIC SMALL LETTER HA WITH DESCENDER
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u04b2'   #  0x8C -> CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+    '\u04b7'   #  0x8D -> CYRILLIC SMALL LETTER CHE WITH DESCENDER
+    '\u04b6'   #  0x8E -> CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\u049a'   #  0x90 -> CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\ufffe'   #  0xA0 -> UNDEFINED
+    '\u04ef'   #  0xA1 -> CYRILLIC SMALL LETTER U WITH MACRON
+    '\u04ee'   #  0xA2 -> CYRILLIC CAPITAL LETTER U WITH MACRON
+    '\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u04e3'   #  0xA5 -> CYRILLIC SMALL LETTER I WITH MACRON
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\ufffe'   #  0xA8 -> UNDEFINED
+    '\ufffe'   #  0xA9 -> UNDEFINED
+    '\ufffe'   #  0xAA -> UNDEFINED
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\ufffe'   #  0xAF -> UNDEFINED
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
+    '\ufffe'   #  0xB4 -> UNDEFINED
+    '\u04e2'   #  0xB5 -> CYRILLIC CAPITAL LETTER I WITH MACRON
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\ufffe'   #  0xB8 -> UNDEFINED
+    '\u2116'   #  0xB9 -> NUMERO SIGN
+    '\ufffe'   #  0xBA -> UNDEFINED
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\ufffe'   #  0xBC -> UNDEFINED
+    '\ufffe'   #  0xBD -> UNDEFINED
+    '\ufffe'   #  0xBE -> UNDEFINED
+    '\xa9'     #  0xBF -> COPYRIGHT SIGN
+    '\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
+    '\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
+    '\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
+    '\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
+    '\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
+    '\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
+    '\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
+    '\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
+    '\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
+    '\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
+    '\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
+    '\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
+    '\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
+    '\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
+    '\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
+    '\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
+    '\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
+    '\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
+    '\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
+    '\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
+    '\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
+    '\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
+    '\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
+    '\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
+    '\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
+    '\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
+    '\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
+    '\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
+    '\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/koi8_u.py b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_u.py
new file mode 100644
index 0000000..f9e3fae
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/koi8_u.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec koi8_u generated from 'python-mappings/KOI8-U.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='koi8-u',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u2580'   #  0x8B -> UPPER HALF BLOCK
+    '\u2584'   #  0x8C -> LOWER HALF BLOCK
+    '\u2588'   #  0x8D -> FULL BLOCK
+    '\u258c'   #  0x8E -> LEFT HALF BLOCK
+    '\u2590'   #  0x8F -> RIGHT HALF BLOCK
+    '\u2591'   #  0x90 -> LIGHT SHADE
+    '\u2592'   #  0x91 -> MEDIUM SHADE
+    '\u2593'   #  0x92 -> DARK SHADE
+    '\u2320'   #  0x93 -> TOP HALF INTEGRAL
+    '\u25a0'   #  0x94 -> BLACK SQUARE
+    '\u2219'   #  0x95 -> BULLET OPERATOR
+    '\u221a'   #  0x96 -> SQUARE ROOT
+    '\u2248'   #  0x97 -> ALMOST EQUAL TO
+    '\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
+    '\xa0'     #  0x9A -> NO-BREAK SPACE
+    '\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
+    '\xb0'     #  0x9C -> DEGREE SIGN
+    '\xb2'     #  0x9D -> SUPERSCRIPT TWO
+    '\xb7'     #  0x9E -> MIDDLE DOT
+    '\xf7'     #  0x9F -> DIVISION SIGN
+    '\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
+    '\u0454'   #  0xA4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u0456'   #  0xA6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0xA7 -> CYRILLIC SMALL LETTER YI (UKRAINIAN)
+    '\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u0491'   #  0xAD -> CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN
+    '\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
+    '\u0404'   #  0xB4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u0406'   #  0xB6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0407'   #  0xB7 -> CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
+    '\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u0490'   #  0xBD -> CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN
+    '\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa9'     #  0xBF -> COPYRIGHT SIGN
+    '\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
+    '\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
+    '\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
+    '\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
+    '\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
+    '\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
+    '\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
+    '\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
+    '\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
+    '\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
+    '\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
+    '\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
+    '\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
+    '\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
+    '\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
+    '\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
+    '\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
+    '\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
+    '\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
+    '\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
+    '\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
+    '\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
+    '\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
+    '\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
+    '\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
+    '\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
+    '\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
+    '\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
+    '\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/kz1048.py b/linux-x64/clang/python3/lib/python3.9/encodings/kz1048.py
new file mode 100644
index 0000000..712aee6
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/kz1048.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec kz1048 generated from 'MAPPINGS/VENDORS/MISC/KZ1048.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self, input, errors='strict'):
+        return codecs.charmap_encode(input, errors, encoding_table)
+
+    def decode(self, input, errors='strict'):
+        return codecs.charmap_decode(input, errors, decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input, self.errors, encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input, self.errors, decoding_table)[0]
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec, codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='kz1048',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'      #  0x00 -> NULL
+    '\x01'      #  0x01 -> START OF HEADING
+    '\x02'      #  0x02 -> START OF TEXT
+    '\x03'      #  0x03 -> END OF TEXT
+    '\x04'      #  0x04 -> END OF TRANSMISSION
+    '\x05'      #  0x05 -> ENQUIRY
+    '\x06'      #  0x06 -> ACKNOWLEDGE
+    '\x07'      #  0x07 -> BELL
+    '\x08'      #  0x08 -> BACKSPACE
+    '\t'        #  0x09 -> HORIZONTAL TABULATION
+    '\n'        #  0x0A -> LINE FEED
+    '\x0b'      #  0x0B -> VERTICAL TABULATION
+    '\x0c'      #  0x0C -> FORM FEED
+    '\r'        #  0x0D -> CARRIAGE RETURN
+    '\x0e'      #  0x0E -> SHIFT OUT
+    '\x0f'      #  0x0F -> SHIFT IN
+    '\x10'      #  0x10 -> DATA LINK ESCAPE
+    '\x11'      #  0x11 -> DEVICE CONTROL ONE
+    '\x12'      #  0x12 -> DEVICE CONTROL TWO
+    '\x13'      #  0x13 -> DEVICE CONTROL THREE
+    '\x14'      #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'      #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'      #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'      #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'      #  0x18 -> CANCEL
+    '\x19'      #  0x19 -> END OF MEDIUM
+    '\x1a'      #  0x1A -> SUBSTITUTE
+    '\x1b'      #  0x1B -> ESCAPE
+    '\x1c'      #  0x1C -> FILE SEPARATOR
+    '\x1d'      #  0x1D -> GROUP SEPARATOR
+    '\x1e'      #  0x1E -> RECORD SEPARATOR
+    '\x1f'      #  0x1F -> UNIT SEPARATOR
+    ' '         #  0x20 -> SPACE
+    '!'         #  0x21 -> EXCLAMATION MARK
+    '"'         #  0x22 -> QUOTATION MARK
+    '#'         #  0x23 -> NUMBER SIGN
+    '$'         #  0x24 -> DOLLAR SIGN
+    '%'         #  0x25 -> PERCENT SIGN
+    '&'         #  0x26 -> AMPERSAND
+    "'"         #  0x27 -> APOSTROPHE
+    '('         #  0x28 -> LEFT PARENTHESIS
+    ')'         #  0x29 -> RIGHT PARENTHESIS
+    '*'         #  0x2A -> ASTERISK
+    '+'         #  0x2B -> PLUS SIGN
+    ','         #  0x2C -> COMMA
+    '-'         #  0x2D -> HYPHEN-MINUS
+    '.'         #  0x2E -> FULL STOP
+    '/'         #  0x2F -> SOLIDUS
+    '0'         #  0x30 -> DIGIT ZERO
+    '1'         #  0x31 -> DIGIT ONE
+    '2'         #  0x32 -> DIGIT TWO
+    '3'         #  0x33 -> DIGIT THREE
+    '4'         #  0x34 -> DIGIT FOUR
+    '5'         #  0x35 -> DIGIT FIVE
+    '6'         #  0x36 -> DIGIT SIX
+    '7'         #  0x37 -> DIGIT SEVEN
+    '8'         #  0x38 -> DIGIT EIGHT
+    '9'         #  0x39 -> DIGIT NINE
+    ':'         #  0x3A -> COLON
+    ';'         #  0x3B -> SEMICOLON
+    '<'         #  0x3C -> LESS-THAN SIGN
+    '='         #  0x3D -> EQUALS SIGN
+    '>'         #  0x3E -> GREATER-THAN SIGN
+    '?'         #  0x3F -> QUESTION MARK
+    '@'         #  0x40 -> COMMERCIAL AT
+    'A'         #  0x41 -> LATIN CAPITAL LETTER A
+    'B'         #  0x42 -> LATIN CAPITAL LETTER B
+    'C'         #  0x43 -> LATIN CAPITAL LETTER C
+    'D'         #  0x44 -> LATIN CAPITAL LETTER D
+    'E'         #  0x45 -> LATIN CAPITAL LETTER E
+    'F'         #  0x46 -> LATIN CAPITAL LETTER F
+    'G'         #  0x47 -> LATIN CAPITAL LETTER G
+    'H'         #  0x48 -> LATIN CAPITAL LETTER H
+    'I'         #  0x49 -> LATIN CAPITAL LETTER I
+    'J'         #  0x4A -> LATIN CAPITAL LETTER J
+    'K'         #  0x4B -> LATIN CAPITAL LETTER K
+    'L'         #  0x4C -> LATIN CAPITAL LETTER L
+    'M'         #  0x4D -> LATIN CAPITAL LETTER M
+    'N'         #  0x4E -> LATIN CAPITAL LETTER N
+    'O'         #  0x4F -> LATIN CAPITAL LETTER O
+    'P'         #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'         #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'         #  0x52 -> LATIN CAPITAL LETTER R
+    'S'         #  0x53 -> LATIN CAPITAL LETTER S
+    'T'         #  0x54 -> LATIN CAPITAL LETTER T
+    'U'         #  0x55 -> LATIN CAPITAL LETTER U
+    'V'         #  0x56 -> LATIN CAPITAL LETTER V
+    'W'         #  0x57 -> LATIN CAPITAL LETTER W
+    'X'         #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'         #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'         #  0x5A -> LATIN CAPITAL LETTER Z
+    '['         #  0x5B -> LEFT SQUARE BRACKET
+    '\\'        #  0x5C -> REVERSE SOLIDUS
+    ']'         #  0x5D -> RIGHT SQUARE BRACKET
+    '^'         #  0x5E -> CIRCUMFLEX ACCENT
+    '_'         #  0x5F -> LOW LINE
+    '`'         #  0x60 -> GRAVE ACCENT
+    'a'         #  0x61 -> LATIN SMALL LETTER A
+    'b'         #  0x62 -> LATIN SMALL LETTER B
+    'c'         #  0x63 -> LATIN SMALL LETTER C
+    'd'         #  0x64 -> LATIN SMALL LETTER D
+    'e'         #  0x65 -> LATIN SMALL LETTER E
+    'f'         #  0x66 -> LATIN SMALL LETTER F
+    'g'         #  0x67 -> LATIN SMALL LETTER G
+    'h'         #  0x68 -> LATIN SMALL LETTER H
+    'i'         #  0x69 -> LATIN SMALL LETTER I
+    'j'         #  0x6A -> LATIN SMALL LETTER J
+    'k'         #  0x6B -> LATIN SMALL LETTER K
+    'l'         #  0x6C -> LATIN SMALL LETTER L
+    'm'         #  0x6D -> LATIN SMALL LETTER M
+    'n'         #  0x6E -> LATIN SMALL LETTER N
+    'o'         #  0x6F -> LATIN SMALL LETTER O
+    'p'         #  0x70 -> LATIN SMALL LETTER P
+    'q'         #  0x71 -> LATIN SMALL LETTER Q
+    'r'         #  0x72 -> LATIN SMALL LETTER R
+    's'         #  0x73 -> LATIN SMALL LETTER S
+    't'         #  0x74 -> LATIN SMALL LETTER T
+    'u'         #  0x75 -> LATIN SMALL LETTER U
+    'v'         #  0x76 -> LATIN SMALL LETTER V
+    'w'         #  0x77 -> LATIN SMALL LETTER W
+    'x'         #  0x78 -> LATIN SMALL LETTER X
+    'y'         #  0x79 -> LATIN SMALL LETTER Y
+    'z'         #  0x7A -> LATIN SMALL LETTER Z
+    '{'         #  0x7B -> LEFT CURLY BRACKET
+    '|'         #  0x7C -> VERTICAL LINE
+    '}'         #  0x7D -> RIGHT CURLY BRACKET
+    '~'         #  0x7E -> TILDE
+    '\x7f'      #  0x7F -> DELETE
+    '\u0402'    #  0x80 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0403'    #  0x81 -> CYRILLIC CAPITAL LETTER GJE
+    '\u201a'    #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0453'    #  0x83 -> CYRILLIC SMALL LETTER GJE
+    '\u201e'    #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'    #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'    #  0x86 -> DAGGER
+    '\u2021'    #  0x87 -> DOUBLE DAGGER
+    '\u20ac'    #  0x88 -> EURO SIGN
+    '\u2030'    #  0x89 -> PER MILLE SIGN
+    '\u0409'    #  0x8A -> CYRILLIC CAPITAL LETTER LJE
+    '\u2039'    #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u040a'    #  0x8C -> CYRILLIC CAPITAL LETTER NJE
+    '\u049a'    #  0x8D -> CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+    '\u04ba'    #  0x8E -> CYRILLIC CAPITAL LETTER SHHA
+    '\u040f'    #  0x8F -> CYRILLIC CAPITAL LETTER DZHE
+    '\u0452'    #  0x90 -> CYRILLIC SMALL LETTER DJE
+    '\u2018'    #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'    #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'    #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'    #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'    #  0x95 -> BULLET
+    '\u2013'    #  0x96 -> EN DASH
+    '\u2014'    #  0x97 -> EM DASH
+    '\ufffe'    #  0x98 -> UNDEFINED
+    '\u2122'    #  0x99 -> TRADE MARK SIGN
+    '\u0459'    #  0x9A -> CYRILLIC SMALL LETTER LJE
+    '\u203a'    #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u045a'    #  0x9C -> CYRILLIC SMALL LETTER NJE
+    '\u049b'    #  0x9D -> CYRILLIC SMALL LETTER KA WITH DESCENDER
+    '\u04bb'    #  0x9E -> CYRILLIC SMALL LETTER SHHA
+    '\u045f'    #  0x9F -> CYRILLIC SMALL LETTER DZHE
+    '\xa0'      #  0xA0 -> NO-BREAK SPACE
+    '\u04b0'    #  0xA1 -> CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+    '\u04b1'    #  0xA2 -> CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+    '\u04d8'    #  0xA3 -> CYRILLIC CAPITAL LETTER SCHWA
+    '\xa4'      #  0xA4 -> CURRENCY SIGN
+    '\u04e8'    #  0xA5 -> CYRILLIC CAPITAL LETTER BARRED O
+    '\xa6'      #  0xA6 -> BROKEN BAR
+    '\xa7'      #  0xA7 -> SECTION SIGN
+    '\u0401'    #  0xA8 -> CYRILLIC CAPITAL LETTER IO
+    '\xa9'      #  0xA9 -> COPYRIGHT SIGN
+    '\u0492'    #  0xAA -> CYRILLIC CAPITAL LETTER GHE WITH STROKE
+    '\xab'      #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'      #  0xAC -> NOT SIGN
+    '\xad'      #  0xAD -> SOFT HYPHEN
+    '\xae'      #  0xAE -> REGISTERED SIGN
+    '\u04ae'    #  0xAF -> CYRILLIC CAPITAL LETTER STRAIGHT U
+    '\xb0'      #  0xB0 -> DEGREE SIGN
+    '\xb1'      #  0xB1 -> PLUS-MINUS SIGN
+    '\u0406'    #  0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0456'    #  0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u04e9'    #  0xB4 -> CYRILLIC SMALL LETTER BARRED O
+    '\xb5'      #  0xB5 -> MICRO SIGN
+    '\xb6'      #  0xB6 -> PILCROW SIGN
+    '\xb7'      #  0xB7 -> MIDDLE DOT
+    '\u0451'    #  0xB8 -> CYRILLIC SMALL LETTER IO
+    '\u2116'    #  0xB9 -> NUMERO SIGN
+    '\u0493'    #  0xBA -> CYRILLIC SMALL LETTER GHE WITH STROKE
+    '\xbb'      #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u04d9'    #  0xBC -> CYRILLIC SMALL LETTER SCHWA
+    '\u04a2'    #  0xBD -> CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+    '\u04a3'    #  0xBE -> CYRILLIC SMALL LETTER EN WITH DESCENDER
+    '\u04af'    #  0xBF -> CYRILLIC SMALL LETTER STRAIGHT U
+    '\u0410'    #  0xC0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'    #  0xC1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'    #  0xC2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'    #  0xC3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'    #  0xC4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'    #  0xC5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'    #  0xC6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'    #  0xC7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'    #  0xC8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'    #  0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'    #  0xCA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'    #  0xCB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'    #  0xCC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'    #  0xCD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'    #  0xCE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'    #  0xCF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'    #  0xD0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'    #  0xD1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'    #  0xD2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'    #  0xD3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'    #  0xD4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'    #  0xD5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'    #  0xD6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'    #  0xD7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'    #  0xD8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'    #  0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'    #  0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'    #  0xDB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'    #  0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'    #  0xDD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'    #  0xDE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'    #  0xDF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'    #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'    #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'    #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'    #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'    #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'    #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'    #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'    #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'    #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'    #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'    #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'    #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'    #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'    #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'    #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'    #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'    #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'    #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'    #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'    #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'    #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'    #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'    #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'    #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'    #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'    #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'    #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'    #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'    #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'    #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'    #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u044f'    #  0xFF -> CYRILLIC SMALL LETTER YA
+)
+
+### Encoding table
+encoding_table = codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/latin_1.py b/linux-x64/clang/python3/lib/python3.9/encodings/latin_1.py
new file mode 100644
index 0000000..370160c
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/latin_1.py
@@ -0,0 +1,50 @@
+""" Python 'latin-1' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    # Note: Binding these as C functions will result in the class not
+    # converting them to methods. This is intended.
+    encode = codecs.latin_1_encode
+    decode = codecs.latin_1_decode
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.latin_1_encode(input,self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.latin_1_decode(input,self.errors)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+class StreamConverter(StreamWriter,StreamReader):
+
+    encode = codecs.latin_1_decode
+    decode = codecs.latin_1_encode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='iso8859-1',
+        encode=Codec.encode,
+        decode=Codec.decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_arabic.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_arabic.py
new file mode 100644
index 0000000..72847e8
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_arabic.py
@@ -0,0 +1,698 @@
+""" Python Character Mapping Codec generated from 'VENDORS/APPLE/ARABIC.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_map)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-arabic',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+### Decoding Map
+
+decoding_map = codecs.make_identity_dict(range(256))
+decoding_map.update({
+    0x0080: 0x00c4,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x0081: 0x00a0,     #  NO-BREAK SPACE, right-left
+    0x0082: 0x00c7,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x0083: 0x00c9,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x0084: 0x00d1,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x0085: 0x00d6,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x0086: 0x00dc,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x0087: 0x00e1,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x0088: 0x00e0,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x0089: 0x00e2,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x008a: 0x00e4,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x008b: 0x06ba,     #  ARABIC LETTER NOON GHUNNA
+    0x008c: 0x00ab,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    0x008d: 0x00e7,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x008e: 0x00e9,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x008f: 0x00e8,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x0090: 0x00ea,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x0091: 0x00eb,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x0092: 0x00ed,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x0093: 0x2026,     #  HORIZONTAL ELLIPSIS, right-left
+    0x0094: 0x00ee,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x0095: 0x00ef,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x0096: 0x00f1,     #  LATIN SMALL LETTER N WITH TILDE
+    0x0097: 0x00f3,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x0098: 0x00bb,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    0x0099: 0x00f4,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x009a: 0x00f6,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x009b: 0x00f7,     #  DIVISION SIGN, right-left
+    0x009c: 0x00fa,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x009d: 0x00f9,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x009e: 0x00fb,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x009f: 0x00fc,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x00a0: 0x0020,     #  SPACE, right-left
+    0x00a1: 0x0021,     #  EXCLAMATION MARK, right-left
+    0x00a2: 0x0022,     #  QUOTATION MARK, right-left
+    0x00a3: 0x0023,     #  NUMBER SIGN, right-left
+    0x00a4: 0x0024,     #  DOLLAR SIGN, right-left
+    0x00a5: 0x066a,     #  ARABIC PERCENT SIGN
+    0x00a6: 0x0026,     #  AMPERSAND, right-left
+    0x00a7: 0x0027,     #  APOSTROPHE, right-left
+    0x00a8: 0x0028,     #  LEFT PARENTHESIS, right-left
+    0x00a9: 0x0029,     #  RIGHT PARENTHESIS, right-left
+    0x00aa: 0x002a,     #  ASTERISK, right-left
+    0x00ab: 0x002b,     #  PLUS SIGN, right-left
+    0x00ac: 0x060c,     #  ARABIC COMMA
+    0x00ad: 0x002d,     #  HYPHEN-MINUS, right-left
+    0x00ae: 0x002e,     #  FULL STOP, right-left
+    0x00af: 0x002f,     #  SOLIDUS, right-left
+    0x00b0: 0x0660,     #  ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    0x00b1: 0x0661,     #  ARABIC-INDIC DIGIT ONE, right-left (need override)
+    0x00b2: 0x0662,     #  ARABIC-INDIC DIGIT TWO, right-left (need override)
+    0x00b3: 0x0663,     #  ARABIC-INDIC DIGIT THREE, right-left (need override)
+    0x00b4: 0x0664,     #  ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    0x00b5: 0x0665,     #  ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    0x00b6: 0x0666,     #  ARABIC-INDIC DIGIT SIX, right-left (need override)
+    0x00b7: 0x0667,     #  ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    0x00b8: 0x0668,     #  ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    0x00b9: 0x0669,     #  ARABIC-INDIC DIGIT NINE, right-left (need override)
+    0x00ba: 0x003a,     #  COLON, right-left
+    0x00bb: 0x061b,     #  ARABIC SEMICOLON
+    0x00bc: 0x003c,     #  LESS-THAN SIGN, right-left
+    0x00bd: 0x003d,     #  EQUALS SIGN, right-left
+    0x00be: 0x003e,     #  GREATER-THAN SIGN, right-left
+    0x00bf: 0x061f,     #  ARABIC QUESTION MARK
+    0x00c0: 0x274a,     #  EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+    0x00c1: 0x0621,     #  ARABIC LETTER HAMZA
+    0x00c2: 0x0622,     #  ARABIC LETTER ALEF WITH MADDA ABOVE
+    0x00c3: 0x0623,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE
+    0x00c4: 0x0624,     #  ARABIC LETTER WAW WITH HAMZA ABOVE
+    0x00c5: 0x0625,     #  ARABIC LETTER ALEF WITH HAMZA BELOW
+    0x00c6: 0x0626,     #  ARABIC LETTER YEH WITH HAMZA ABOVE
+    0x00c7: 0x0627,     #  ARABIC LETTER ALEF
+    0x00c8: 0x0628,     #  ARABIC LETTER BEH
+    0x00c9: 0x0629,     #  ARABIC LETTER TEH MARBUTA
+    0x00ca: 0x062a,     #  ARABIC LETTER TEH
+    0x00cb: 0x062b,     #  ARABIC LETTER THEH
+    0x00cc: 0x062c,     #  ARABIC LETTER JEEM
+    0x00cd: 0x062d,     #  ARABIC LETTER HAH
+    0x00ce: 0x062e,     #  ARABIC LETTER KHAH
+    0x00cf: 0x062f,     #  ARABIC LETTER DAL
+    0x00d0: 0x0630,     #  ARABIC LETTER THAL
+    0x00d1: 0x0631,     #  ARABIC LETTER REH
+    0x00d2: 0x0632,     #  ARABIC LETTER ZAIN
+    0x00d3: 0x0633,     #  ARABIC LETTER SEEN
+    0x00d4: 0x0634,     #  ARABIC LETTER SHEEN
+    0x00d5: 0x0635,     #  ARABIC LETTER SAD
+    0x00d6: 0x0636,     #  ARABIC LETTER DAD
+    0x00d7: 0x0637,     #  ARABIC LETTER TAH
+    0x00d8: 0x0638,     #  ARABIC LETTER ZAH
+    0x00d9: 0x0639,     #  ARABIC LETTER AIN
+    0x00da: 0x063a,     #  ARABIC LETTER GHAIN
+    0x00db: 0x005b,     #  LEFT SQUARE BRACKET, right-left
+    0x00dc: 0x005c,     #  REVERSE SOLIDUS, right-left
+    0x00dd: 0x005d,     #  RIGHT SQUARE BRACKET, right-left
+    0x00de: 0x005e,     #  CIRCUMFLEX ACCENT, right-left
+    0x00df: 0x005f,     #  LOW LINE, right-left
+    0x00e0: 0x0640,     #  ARABIC TATWEEL
+    0x00e1: 0x0641,     #  ARABIC LETTER FEH
+    0x00e2: 0x0642,     #  ARABIC LETTER QAF
+    0x00e3: 0x0643,     #  ARABIC LETTER KAF
+    0x00e4: 0x0644,     #  ARABIC LETTER LAM
+    0x00e5: 0x0645,     #  ARABIC LETTER MEEM
+    0x00e6: 0x0646,     #  ARABIC LETTER NOON
+    0x00e7: 0x0647,     #  ARABIC LETTER HEH
+    0x00e8: 0x0648,     #  ARABIC LETTER WAW
+    0x00e9: 0x0649,     #  ARABIC LETTER ALEF MAKSURA
+    0x00ea: 0x064a,     #  ARABIC LETTER YEH
+    0x00eb: 0x064b,     #  ARABIC FATHATAN
+    0x00ec: 0x064c,     #  ARABIC DAMMATAN
+    0x00ed: 0x064d,     #  ARABIC KASRATAN
+    0x00ee: 0x064e,     #  ARABIC FATHA
+    0x00ef: 0x064f,     #  ARABIC DAMMA
+    0x00f0: 0x0650,     #  ARABIC KASRA
+    0x00f1: 0x0651,     #  ARABIC SHADDA
+    0x00f2: 0x0652,     #  ARABIC SUKUN
+    0x00f3: 0x067e,     #  ARABIC LETTER PEH
+    0x00f4: 0x0679,     #  ARABIC LETTER TTEH
+    0x00f5: 0x0686,     #  ARABIC LETTER TCHEH
+    0x00f6: 0x06d5,     #  ARABIC LETTER AE
+    0x00f7: 0x06a4,     #  ARABIC LETTER VEH
+    0x00f8: 0x06af,     #  ARABIC LETTER GAF
+    0x00f9: 0x0688,     #  ARABIC LETTER DDAL
+    0x00fa: 0x0691,     #  ARABIC LETTER RREH
+    0x00fb: 0x007b,     #  LEFT CURLY BRACKET, right-left
+    0x00fc: 0x007c,     #  VERTICAL LINE, right-left
+    0x00fd: 0x007d,     #  RIGHT CURLY BRACKET, right-left
+    0x00fe: 0x0698,     #  ARABIC LETTER JEH
+    0x00ff: 0x06d2,     #  ARABIC LETTER YEH BARREE
+})
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x0000 -> CONTROL CHARACTER
+    '\x01'     #  0x0001 -> CONTROL CHARACTER
+    '\x02'     #  0x0002 -> CONTROL CHARACTER
+    '\x03'     #  0x0003 -> CONTROL CHARACTER
+    '\x04'     #  0x0004 -> CONTROL CHARACTER
+    '\x05'     #  0x0005 -> CONTROL CHARACTER
+    '\x06'     #  0x0006 -> CONTROL CHARACTER
+    '\x07'     #  0x0007 -> CONTROL CHARACTER
+    '\x08'     #  0x0008 -> CONTROL CHARACTER
+    '\t'       #  0x0009 -> CONTROL CHARACTER
+    '\n'       #  0x000a -> CONTROL CHARACTER
+    '\x0b'     #  0x000b -> CONTROL CHARACTER
+    '\x0c'     #  0x000c -> CONTROL CHARACTER
+    '\r'       #  0x000d -> CONTROL CHARACTER
+    '\x0e'     #  0x000e -> CONTROL CHARACTER
+    '\x0f'     #  0x000f -> CONTROL CHARACTER
+    '\x10'     #  0x0010 -> CONTROL CHARACTER
+    '\x11'     #  0x0011 -> CONTROL CHARACTER
+    '\x12'     #  0x0012 -> CONTROL CHARACTER
+    '\x13'     #  0x0013 -> CONTROL CHARACTER
+    '\x14'     #  0x0014 -> CONTROL CHARACTER
+    '\x15'     #  0x0015 -> CONTROL CHARACTER
+    '\x16'     #  0x0016 -> CONTROL CHARACTER
+    '\x17'     #  0x0017 -> CONTROL CHARACTER
+    '\x18'     #  0x0018 -> CONTROL CHARACTER
+    '\x19'     #  0x0019 -> CONTROL CHARACTER
+    '\x1a'     #  0x001a -> CONTROL CHARACTER
+    '\x1b'     #  0x001b -> CONTROL CHARACTER
+    '\x1c'     #  0x001c -> CONTROL CHARACTER
+    '\x1d'     #  0x001d -> CONTROL CHARACTER
+    '\x1e'     #  0x001e -> CONTROL CHARACTER
+    '\x1f'     #  0x001f -> CONTROL CHARACTER
+    ' '        #  0x0020 -> SPACE, left-right
+    '!'        #  0x0021 -> EXCLAMATION MARK, left-right
+    '"'        #  0x0022 -> QUOTATION MARK, left-right
+    '#'        #  0x0023 -> NUMBER SIGN, left-right
+    '$'        #  0x0024 -> DOLLAR SIGN, left-right
+    '%'        #  0x0025 -> PERCENT SIGN, left-right
+    '&'        #  0x0026 -> AMPERSAND, left-right
+    "'"        #  0x0027 -> APOSTROPHE, left-right
+    '('        #  0x0028 -> LEFT PARENTHESIS, left-right
+    ')'        #  0x0029 -> RIGHT PARENTHESIS, left-right
+    '*'        #  0x002a -> ASTERISK, left-right
+    '+'        #  0x002b -> PLUS SIGN, left-right
+    ','        #  0x002c -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
+    '-'        #  0x002d -> HYPHEN-MINUS, left-right
+    '.'        #  0x002e -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
+    '/'        #  0x002f -> SOLIDUS, left-right
+    '0'        #  0x0030 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
+    ':'        #  0x003a -> COLON, left-right
+    ';'        #  0x003b -> SEMICOLON, left-right
+    '<'        #  0x003c -> LESS-THAN SIGN, left-right
+    '='        #  0x003d -> EQUALS SIGN, left-right
+    '>'        #  0x003e -> GREATER-THAN SIGN, left-right
+    '?'        #  0x003f -> QUESTION MARK, left-right
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET, left-right
+    '\\'       #  0x005c -> REVERSE SOLIDUS, left-right
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET, left-right
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT, left-right
+    '_'        #  0x005f -> LOW LINE, left-right
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET, left-right
+    '|'        #  0x007c -> VERTICAL LINE, left-right
+    '}'        #  0x007d -> RIGHT CURLY BRACKET, left-right
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> CONTROL CHARACTER
+    '\xc4'     #  0x0080 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xa0'     #  0x0081 -> NO-BREAK SPACE, right-left
+    '\xc7'     #  0x0082 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x0083 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x0084 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x0085 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x0086 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x0087 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x0088 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x0089 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x008a -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u06ba'   #  0x008b -> ARABIC LETTER NOON GHUNNA
+    '\xab'     #  0x008c -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xe7'     #  0x008d -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x008e -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x008f -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x0090 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0091 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x0092 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u2026'   #  0x0093 -> HORIZONTAL ELLIPSIS, right-left
+    '\xee'     #  0x0094 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x0095 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x0096 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x0097 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xbb'     #  0x0098 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xf4'     #  0x0099 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x009a -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0x009b -> DIVISION SIGN, right-left
+    '\xfa'     #  0x009c -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x009d -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x009e -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x009f -> LATIN SMALL LETTER U WITH DIAERESIS
+    ' '        #  0x00a0 -> SPACE, right-left
+    '!'        #  0x00a1 -> EXCLAMATION MARK, right-left
+    '"'        #  0x00a2 -> QUOTATION MARK, right-left
+    '#'        #  0x00a3 -> NUMBER SIGN, right-left
+    '$'        #  0x00a4 -> DOLLAR SIGN, right-left
+    '\u066a'   #  0x00a5 -> ARABIC PERCENT SIGN
+    '&'        #  0x00a6 -> AMPERSAND, right-left
+    "'"        #  0x00a7 -> APOSTROPHE, right-left
+    '('        #  0x00a8 -> LEFT PARENTHESIS, right-left
+    ')'        #  0x00a9 -> RIGHT PARENTHESIS, right-left
+    '*'        #  0x00aa -> ASTERISK, right-left
+    '+'        #  0x00ab -> PLUS SIGN, right-left
+    '\u060c'   #  0x00ac -> ARABIC COMMA
+    '-'        #  0x00ad -> HYPHEN-MINUS, right-left
+    '.'        #  0x00ae -> FULL STOP, right-left
+    '/'        #  0x00af -> SOLIDUS, right-left
+    '\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    '\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE, right-left (need override)
+    '\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO, right-left (need override)
+    '\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE, right-left (need override)
+    '\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    '\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    '\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX, right-left (need override)
+    '\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    '\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    '\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE, right-left (need override)
+    ':'        #  0x00ba -> COLON, right-left
+    '\u061b'   #  0x00bb -> ARABIC SEMICOLON
+    '<'        #  0x00bc -> LESS-THAN SIGN, right-left
+    '='        #  0x00bd -> EQUALS SIGN, right-left
+    '>'        #  0x00be -> GREATER-THAN SIGN, right-left
+    '\u061f'   #  0x00bf -> ARABIC QUESTION MARK
+    '\u274a'   #  0x00c0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+    '\u0621'   #  0x00c1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0x00c5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0x00c7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0x00c8 -> ARABIC LETTER BEH
+    '\u0629'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0x00ca -> ARABIC LETTER TEH
+    '\u062b'   #  0x00cb -> ARABIC LETTER THEH
+    '\u062c'   #  0x00cc -> ARABIC LETTER JEEM
+    '\u062d'   #  0x00cd -> ARABIC LETTER HAH
+    '\u062e'   #  0x00ce -> ARABIC LETTER KHAH
+    '\u062f'   #  0x00cf -> ARABIC LETTER DAL
+    '\u0630'   #  0x00d0 -> ARABIC LETTER THAL
+    '\u0631'   #  0x00d1 -> ARABIC LETTER REH
+    '\u0632'   #  0x00d2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0x00d3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0x00d4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0x00d5 -> ARABIC LETTER SAD
+    '\u0636'   #  0x00d6 -> ARABIC LETTER DAD
+    '\u0637'   #  0x00d7 -> ARABIC LETTER TAH
+    '\u0638'   #  0x00d8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0x00d9 -> ARABIC LETTER AIN
+    '\u063a'   #  0x00da -> ARABIC LETTER GHAIN
+    '['        #  0x00db -> LEFT SQUARE BRACKET, right-left
+    '\\'       #  0x00dc -> REVERSE SOLIDUS, right-left
+    ']'        #  0x00dd -> RIGHT SQUARE BRACKET, right-left
+    '^'        #  0x00de -> CIRCUMFLEX ACCENT, right-left
+    '_'        #  0x00df -> LOW LINE, right-left
+    '\u0640'   #  0x00e0 -> ARABIC TATWEEL
+    '\u0641'   #  0x00e1 -> ARABIC LETTER FEH
+    '\u0642'   #  0x00e2 -> ARABIC LETTER QAF
+    '\u0643'   #  0x00e3 -> ARABIC LETTER KAF
+    '\u0644'   #  0x00e4 -> ARABIC LETTER LAM
+    '\u0645'   #  0x00e5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0x00e6 -> ARABIC LETTER NOON
+    '\u0647'   #  0x00e7 -> ARABIC LETTER HEH
+    '\u0648'   #  0x00e8 -> ARABIC LETTER WAW
+    '\u0649'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0x00ea -> ARABIC LETTER YEH
+    '\u064b'   #  0x00eb -> ARABIC FATHATAN
+    '\u064c'   #  0x00ec -> ARABIC DAMMATAN
+    '\u064d'   #  0x00ed -> ARABIC KASRATAN
+    '\u064e'   #  0x00ee -> ARABIC FATHA
+    '\u064f'   #  0x00ef -> ARABIC DAMMA
+    '\u0650'   #  0x00f0 -> ARABIC KASRA
+    '\u0651'   #  0x00f1 -> ARABIC SHADDA
+    '\u0652'   #  0x00f2 -> ARABIC SUKUN
+    '\u067e'   #  0x00f3 -> ARABIC LETTER PEH
+    '\u0679'   #  0x00f4 -> ARABIC LETTER TTEH
+    '\u0686'   #  0x00f5 -> ARABIC LETTER TCHEH
+    '\u06d5'   #  0x00f6 -> ARABIC LETTER AE
+    '\u06a4'   #  0x00f7 -> ARABIC LETTER VEH
+    '\u06af'   #  0x00f8 -> ARABIC LETTER GAF
+    '\u0688'   #  0x00f9 -> ARABIC LETTER DDAL
+    '\u0691'   #  0x00fa -> ARABIC LETTER RREH
+    '{'        #  0x00fb -> LEFT CURLY BRACKET, right-left
+    '|'        #  0x00fc -> VERTICAL LINE, right-left
+    '}'        #  0x00fd -> RIGHT CURLY BRACKET, right-left
+    '\u0698'   #  0x00fe -> ARABIC LETTER JEH
+    '\u06d2'   #  0x00ff -> ARABIC LETTER YEH BARREE
+)
+
+### Encoding Map
+
+encoding_map = {
+    0x0000: 0x0000,     #  CONTROL CHARACTER
+    0x0001: 0x0001,     #  CONTROL CHARACTER
+    0x0002: 0x0002,     #  CONTROL CHARACTER
+    0x0003: 0x0003,     #  CONTROL CHARACTER
+    0x0004: 0x0004,     #  CONTROL CHARACTER
+    0x0005: 0x0005,     #  CONTROL CHARACTER
+    0x0006: 0x0006,     #  CONTROL CHARACTER
+    0x0007: 0x0007,     #  CONTROL CHARACTER
+    0x0008: 0x0008,     #  CONTROL CHARACTER
+    0x0009: 0x0009,     #  CONTROL CHARACTER
+    0x000a: 0x000a,     #  CONTROL CHARACTER
+    0x000b: 0x000b,     #  CONTROL CHARACTER
+    0x000c: 0x000c,     #  CONTROL CHARACTER
+    0x000d: 0x000d,     #  CONTROL CHARACTER
+    0x000e: 0x000e,     #  CONTROL CHARACTER
+    0x000f: 0x000f,     #  CONTROL CHARACTER
+    0x0010: 0x0010,     #  CONTROL CHARACTER
+    0x0011: 0x0011,     #  CONTROL CHARACTER
+    0x0012: 0x0012,     #  CONTROL CHARACTER
+    0x0013: 0x0013,     #  CONTROL CHARACTER
+    0x0014: 0x0014,     #  CONTROL CHARACTER
+    0x0015: 0x0015,     #  CONTROL CHARACTER
+    0x0016: 0x0016,     #  CONTROL CHARACTER
+    0x0017: 0x0017,     #  CONTROL CHARACTER
+    0x0018: 0x0018,     #  CONTROL CHARACTER
+    0x0019: 0x0019,     #  CONTROL CHARACTER
+    0x001a: 0x001a,     #  CONTROL CHARACTER
+    0x001b: 0x001b,     #  CONTROL CHARACTER
+    0x001c: 0x001c,     #  CONTROL CHARACTER
+    0x001d: 0x001d,     #  CONTROL CHARACTER
+    0x001e: 0x001e,     #  CONTROL CHARACTER
+    0x001f: 0x001f,     #  CONTROL CHARACTER
+    0x0020: 0x0020,     #  SPACE, left-right
+    0x0020: 0x00a0,     #  SPACE, right-left
+    0x0021: 0x0021,     #  EXCLAMATION MARK, left-right
+    0x0021: 0x00a1,     #  EXCLAMATION MARK, right-left
+    0x0022: 0x0022,     #  QUOTATION MARK, left-right
+    0x0022: 0x00a2,     #  QUOTATION MARK, right-left
+    0x0023: 0x0023,     #  NUMBER SIGN, left-right
+    0x0023: 0x00a3,     #  NUMBER SIGN, right-left
+    0x0024: 0x0024,     #  DOLLAR SIGN, left-right
+    0x0024: 0x00a4,     #  DOLLAR SIGN, right-left
+    0x0025: 0x0025,     #  PERCENT SIGN, left-right
+    0x0026: 0x0026,     #  AMPERSAND, left-right
+    0x0026: 0x00a6,     #  AMPERSAND, right-left
+    0x0027: 0x0027,     #  APOSTROPHE, left-right
+    0x0027: 0x00a7,     #  APOSTROPHE, right-left
+    0x0028: 0x0028,     #  LEFT PARENTHESIS, left-right
+    0x0028: 0x00a8,     #  LEFT PARENTHESIS, right-left
+    0x0029: 0x0029,     #  RIGHT PARENTHESIS, left-right
+    0x0029: 0x00a9,     #  RIGHT PARENTHESIS, right-left
+    0x002a: 0x002a,     #  ASTERISK, left-right
+    0x002a: 0x00aa,     #  ASTERISK, right-left
+    0x002b: 0x002b,     #  PLUS SIGN, left-right
+    0x002b: 0x00ab,     #  PLUS SIGN, right-left
+    0x002c: 0x002c,     #  COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
+    0x002d: 0x002d,     #  HYPHEN-MINUS, left-right
+    0x002d: 0x00ad,     #  HYPHEN-MINUS, right-left
+    0x002e: 0x002e,     #  FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
+    0x002e: 0x00ae,     #  FULL STOP, right-left
+    0x002f: 0x002f,     #  SOLIDUS, left-right
+    0x002f: 0x00af,     #  SOLIDUS, right-left
+    0x0030: 0x0030,     #  DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
+    0x0031: 0x0031,     #  DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
+    0x0032: 0x0032,     #  DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
+    0x0033: 0x0033,     #  DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
+    0x0034: 0x0034,     #  DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
+    0x0035: 0x0035,     #  DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
+    0x0036: 0x0036,     #  DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
+    0x0037: 0x0037,     #  DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
+    0x0038: 0x0038,     #  DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
+    0x0039: 0x0039,     #  DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
+    0x003a: 0x003a,     #  COLON, left-right
+    0x003a: 0x00ba,     #  COLON, right-left
+    0x003b: 0x003b,     #  SEMICOLON, left-right
+    0x003c: 0x003c,     #  LESS-THAN SIGN, left-right
+    0x003c: 0x00bc,     #  LESS-THAN SIGN, right-left
+    0x003d: 0x003d,     #  EQUALS SIGN, left-right
+    0x003d: 0x00bd,     #  EQUALS SIGN, right-left
+    0x003e: 0x003e,     #  GREATER-THAN SIGN, left-right
+    0x003e: 0x00be,     #  GREATER-THAN SIGN, right-left
+    0x003f: 0x003f,     #  QUESTION MARK, left-right
+    0x0040: 0x0040,     #  COMMERCIAL AT
+    0x0041: 0x0041,     #  LATIN CAPITAL LETTER A
+    0x0042: 0x0042,     #  LATIN CAPITAL LETTER B
+    0x0043: 0x0043,     #  LATIN CAPITAL LETTER C
+    0x0044: 0x0044,     #  LATIN CAPITAL LETTER D
+    0x0045: 0x0045,     #  LATIN CAPITAL LETTER E
+    0x0046: 0x0046,     #  LATIN CAPITAL LETTER F
+    0x0047: 0x0047,     #  LATIN CAPITAL LETTER G
+    0x0048: 0x0048,     #  LATIN CAPITAL LETTER H
+    0x0049: 0x0049,     #  LATIN CAPITAL LETTER I
+    0x004a: 0x004a,     #  LATIN CAPITAL LETTER J
+    0x004b: 0x004b,     #  LATIN CAPITAL LETTER K
+    0x004c: 0x004c,     #  LATIN CAPITAL LETTER L
+    0x004d: 0x004d,     #  LATIN CAPITAL LETTER M
+    0x004e: 0x004e,     #  LATIN CAPITAL LETTER N
+    0x004f: 0x004f,     #  LATIN CAPITAL LETTER O
+    0x0050: 0x0050,     #  LATIN CAPITAL LETTER P
+    0x0051: 0x0051,     #  LATIN CAPITAL LETTER Q
+    0x0052: 0x0052,     #  LATIN CAPITAL LETTER R
+    0x0053: 0x0053,     #  LATIN CAPITAL LETTER S
+    0x0054: 0x0054,     #  LATIN CAPITAL LETTER T
+    0x0055: 0x0055,     #  LATIN CAPITAL LETTER U
+    0x0056: 0x0056,     #  LATIN CAPITAL LETTER V
+    0x0057: 0x0057,     #  LATIN CAPITAL LETTER W
+    0x0058: 0x0058,     #  LATIN CAPITAL LETTER X
+    0x0059: 0x0059,     #  LATIN CAPITAL LETTER Y
+    0x005a: 0x005a,     #  LATIN CAPITAL LETTER Z
+    0x005b: 0x005b,     #  LEFT SQUARE BRACKET, left-right
+    0x005b: 0x00db,     #  LEFT SQUARE BRACKET, right-left
+    0x005c: 0x005c,     #  REVERSE SOLIDUS, left-right
+    0x005c: 0x00dc,     #  REVERSE SOLIDUS, right-left
+    0x005d: 0x005d,     #  RIGHT SQUARE BRACKET, left-right
+    0x005d: 0x00dd,     #  RIGHT SQUARE BRACKET, right-left
+    0x005e: 0x005e,     #  CIRCUMFLEX ACCENT, left-right
+    0x005e: 0x00de,     #  CIRCUMFLEX ACCENT, right-left
+    0x005f: 0x005f,     #  LOW LINE, left-right
+    0x005f: 0x00df,     #  LOW LINE, right-left
+    0x0060: 0x0060,     #  GRAVE ACCENT
+    0x0061: 0x0061,     #  LATIN SMALL LETTER A
+    0x0062: 0x0062,     #  LATIN SMALL LETTER B
+    0x0063: 0x0063,     #  LATIN SMALL LETTER C
+    0x0064: 0x0064,     #  LATIN SMALL LETTER D
+    0x0065: 0x0065,     #  LATIN SMALL LETTER E
+    0x0066: 0x0066,     #  LATIN SMALL LETTER F
+    0x0067: 0x0067,     #  LATIN SMALL LETTER G
+    0x0068: 0x0068,     #  LATIN SMALL LETTER H
+    0x0069: 0x0069,     #  LATIN SMALL LETTER I
+    0x006a: 0x006a,     #  LATIN SMALL LETTER J
+    0x006b: 0x006b,     #  LATIN SMALL LETTER K
+    0x006c: 0x006c,     #  LATIN SMALL LETTER L
+    0x006d: 0x006d,     #  LATIN SMALL LETTER M
+    0x006e: 0x006e,     #  LATIN SMALL LETTER N
+    0x006f: 0x006f,     #  LATIN SMALL LETTER O
+    0x0070: 0x0070,     #  LATIN SMALL LETTER P
+    0x0071: 0x0071,     #  LATIN SMALL LETTER Q
+    0x0072: 0x0072,     #  LATIN SMALL LETTER R
+    0x0073: 0x0073,     #  LATIN SMALL LETTER S
+    0x0074: 0x0074,     #  LATIN SMALL LETTER T
+    0x0075: 0x0075,     #  LATIN SMALL LETTER U
+    0x0076: 0x0076,     #  LATIN SMALL LETTER V
+    0x0077: 0x0077,     #  LATIN SMALL LETTER W
+    0x0078: 0x0078,     #  LATIN SMALL LETTER X
+    0x0079: 0x0079,     #  LATIN SMALL LETTER Y
+    0x007a: 0x007a,     #  LATIN SMALL LETTER Z
+    0x007b: 0x007b,     #  LEFT CURLY BRACKET, left-right
+    0x007b: 0x00fb,     #  LEFT CURLY BRACKET, right-left
+    0x007c: 0x007c,     #  VERTICAL LINE, left-right
+    0x007c: 0x00fc,     #  VERTICAL LINE, right-left
+    0x007d: 0x007d,     #  RIGHT CURLY BRACKET, left-right
+    0x007d: 0x00fd,     #  RIGHT CURLY BRACKET, right-left
+    0x007e: 0x007e,     #  TILDE
+    0x007f: 0x007f,     #  CONTROL CHARACTER
+    0x00a0: 0x0081,     #  NO-BREAK SPACE, right-left
+    0x00ab: 0x008c,     #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    0x00bb: 0x0098,     #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    0x00c4: 0x0080,     #  LATIN CAPITAL LETTER A WITH DIAERESIS
+    0x00c7: 0x0082,     #  LATIN CAPITAL LETTER C WITH CEDILLA
+    0x00c9: 0x0083,     #  LATIN CAPITAL LETTER E WITH ACUTE
+    0x00d1: 0x0084,     #  LATIN CAPITAL LETTER N WITH TILDE
+    0x00d6: 0x0085,     #  LATIN CAPITAL LETTER O WITH DIAERESIS
+    0x00dc: 0x0086,     #  LATIN CAPITAL LETTER U WITH DIAERESIS
+    0x00e0: 0x0088,     #  LATIN SMALL LETTER A WITH GRAVE
+    0x00e1: 0x0087,     #  LATIN SMALL LETTER A WITH ACUTE
+    0x00e2: 0x0089,     #  LATIN SMALL LETTER A WITH CIRCUMFLEX
+    0x00e4: 0x008a,     #  LATIN SMALL LETTER A WITH DIAERESIS
+    0x00e7: 0x008d,     #  LATIN SMALL LETTER C WITH CEDILLA
+    0x00e8: 0x008f,     #  LATIN SMALL LETTER E WITH GRAVE
+    0x00e9: 0x008e,     #  LATIN SMALL LETTER E WITH ACUTE
+    0x00ea: 0x0090,     #  LATIN SMALL LETTER E WITH CIRCUMFLEX
+    0x00eb: 0x0091,     #  LATIN SMALL LETTER E WITH DIAERESIS
+    0x00ed: 0x0092,     #  LATIN SMALL LETTER I WITH ACUTE
+    0x00ee: 0x0094,     #  LATIN SMALL LETTER I WITH CIRCUMFLEX
+    0x00ef: 0x0095,     #  LATIN SMALL LETTER I WITH DIAERESIS
+    0x00f1: 0x0096,     #  LATIN SMALL LETTER N WITH TILDE
+    0x00f3: 0x0097,     #  LATIN SMALL LETTER O WITH ACUTE
+    0x00f4: 0x0099,     #  LATIN SMALL LETTER O WITH CIRCUMFLEX
+    0x00f6: 0x009a,     #  LATIN SMALL LETTER O WITH DIAERESIS
+    0x00f7: 0x009b,     #  DIVISION SIGN, right-left
+    0x00f9: 0x009d,     #  LATIN SMALL LETTER U WITH GRAVE
+    0x00fa: 0x009c,     #  LATIN SMALL LETTER U WITH ACUTE
+    0x00fb: 0x009e,     #  LATIN SMALL LETTER U WITH CIRCUMFLEX
+    0x00fc: 0x009f,     #  LATIN SMALL LETTER U WITH DIAERESIS
+    0x060c: 0x00ac,     #  ARABIC COMMA
+    0x061b: 0x00bb,     #  ARABIC SEMICOLON
+    0x061f: 0x00bf,     #  ARABIC QUESTION MARK
+    0x0621: 0x00c1,     #  ARABIC LETTER HAMZA
+    0x0622: 0x00c2,     #  ARABIC LETTER ALEF WITH MADDA ABOVE
+    0x0623: 0x00c3,     #  ARABIC LETTER ALEF WITH HAMZA ABOVE
+    0x0624: 0x00c4,     #  ARABIC LETTER WAW WITH HAMZA ABOVE
+    0x0625: 0x00c5,     #  ARABIC LETTER ALEF WITH HAMZA BELOW
+    0x0626: 0x00c6,     #  ARABIC LETTER YEH WITH HAMZA ABOVE
+    0x0627: 0x00c7,     #  ARABIC LETTER ALEF
+    0x0628: 0x00c8,     #  ARABIC LETTER BEH
+    0x0629: 0x00c9,     #  ARABIC LETTER TEH MARBUTA
+    0x062a: 0x00ca,     #  ARABIC LETTER TEH
+    0x062b: 0x00cb,     #  ARABIC LETTER THEH
+    0x062c: 0x00cc,     #  ARABIC LETTER JEEM
+    0x062d: 0x00cd,     #  ARABIC LETTER HAH
+    0x062e: 0x00ce,     #  ARABIC LETTER KHAH
+    0x062f: 0x00cf,     #  ARABIC LETTER DAL
+    0x0630: 0x00d0,     #  ARABIC LETTER THAL
+    0x0631: 0x00d1,     #  ARABIC LETTER REH
+    0x0632: 0x00d2,     #  ARABIC LETTER ZAIN
+    0x0633: 0x00d3,     #  ARABIC LETTER SEEN
+    0x0634: 0x00d4,     #  ARABIC LETTER SHEEN
+    0x0635: 0x00d5,     #  ARABIC LETTER SAD
+    0x0636: 0x00d6,     #  ARABIC LETTER DAD
+    0x0637: 0x00d7,     #  ARABIC LETTER TAH
+    0x0638: 0x00d8,     #  ARABIC LETTER ZAH
+    0x0639: 0x00d9,     #  ARABIC LETTER AIN
+    0x063a: 0x00da,     #  ARABIC LETTER GHAIN
+    0x0640: 0x00e0,     #  ARABIC TATWEEL
+    0x0641: 0x00e1,     #  ARABIC LETTER FEH
+    0x0642: 0x00e2,     #  ARABIC LETTER QAF
+    0x0643: 0x00e3,     #  ARABIC LETTER KAF
+    0x0644: 0x00e4,     #  ARABIC LETTER LAM
+    0x0645: 0x00e5,     #  ARABIC LETTER MEEM
+    0x0646: 0x00e6,     #  ARABIC LETTER NOON
+    0x0647: 0x00e7,     #  ARABIC LETTER HEH
+    0x0648: 0x00e8,     #  ARABIC LETTER WAW
+    0x0649: 0x00e9,     #  ARABIC LETTER ALEF MAKSURA
+    0x064a: 0x00ea,     #  ARABIC LETTER YEH
+    0x064b: 0x00eb,     #  ARABIC FATHATAN
+    0x064c: 0x00ec,     #  ARABIC DAMMATAN
+    0x064d: 0x00ed,     #  ARABIC KASRATAN
+    0x064e: 0x00ee,     #  ARABIC FATHA
+    0x064f: 0x00ef,     #  ARABIC DAMMA
+    0x0650: 0x00f0,     #  ARABIC KASRA
+    0x0651: 0x00f1,     #  ARABIC SHADDA
+    0x0652: 0x00f2,     #  ARABIC SUKUN
+    0x0660: 0x00b0,     #  ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    0x0661: 0x00b1,     #  ARABIC-INDIC DIGIT ONE, right-left (need override)
+    0x0662: 0x00b2,     #  ARABIC-INDIC DIGIT TWO, right-left (need override)
+    0x0663: 0x00b3,     #  ARABIC-INDIC DIGIT THREE, right-left (need override)
+    0x0664: 0x00b4,     #  ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    0x0665: 0x00b5,     #  ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    0x0666: 0x00b6,     #  ARABIC-INDIC DIGIT SIX, right-left (need override)
+    0x0667: 0x00b7,     #  ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    0x0668: 0x00b8,     #  ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    0x0669: 0x00b9,     #  ARABIC-INDIC DIGIT NINE, right-left (need override)
+    0x066a: 0x00a5,     #  ARABIC PERCENT SIGN
+    0x0679: 0x00f4,     #  ARABIC LETTER TTEH
+    0x067e: 0x00f3,     #  ARABIC LETTER PEH
+    0x0686: 0x00f5,     #  ARABIC LETTER TCHEH
+    0x0688: 0x00f9,     #  ARABIC LETTER DDAL
+    0x0691: 0x00fa,     #  ARABIC LETTER RREH
+    0x0698: 0x00fe,     #  ARABIC LETTER JEH
+    0x06a4: 0x00f7,     #  ARABIC LETTER VEH
+    0x06af: 0x00f8,     #  ARABIC LETTER GAF
+    0x06ba: 0x008b,     #  ARABIC LETTER NOON GHUNNA
+    0x06d2: 0x00ff,     #  ARABIC LETTER YEH BARREE
+    0x06d5: 0x00f6,     #  ARABIC LETTER AE
+    0x2026: 0x0093,     #  HORIZONTAL ELLIPSIS, right-left
+    0x274a: 0x00c0,     #  EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+}
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_croatian.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_croatian.py
new file mode 100644
index 0000000..4a92fe6
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_croatian.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_croatian generated from 'MAPPINGS/VENDORS/APPLE/CROATIAN.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-croatian',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u2206'   #  0xB4 -> INCREMENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\uf8ff'   #  0xD8 -> Apple logo
+    '\xa9'     #  0xD9 -> COPYRIGHT SIGN
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\xc6'     #  0xDE -> LATIN CAPITAL LETTER AE
+    '\xbb'     #  0xDF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2013'   #  0xE0 -> EN DASH
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u03c0'   #  0xF9 -> GREEK SMALL LETTER PI
+    '\xcb'     #  0xFA -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\xca'     #  0xFD -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xe6'     #  0xFE -> LATIN SMALL LETTER AE
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_cyrillic.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_cyrillic.py
new file mode 100644
index 0000000..d20272a
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_cyrillic.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_cyrillic generated from 'MAPPINGS/VENDORS/APPLE/CYRILLIC.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-cyrillic',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\u0410'   #  0x80 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0x81 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0x82 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0x83 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0x84 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0x85 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0x86 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0x87 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0x88 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0x89 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0x8A -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0x8B -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0x8C -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0x8D -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0x8E -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0x8F -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0x90 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0x91 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0x92 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0x93 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0x94 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0x95 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0x96 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0x97 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0x98 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0x99 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0x9A -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0x9B -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0x9C -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0x9D -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0x9E -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0x9F -> CYRILLIC CAPITAL LETTER YA
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\u0490'   #  0xA2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\u0406'   #  0xA7 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\u0402'   #  0xAB -> CYRILLIC CAPITAL LETTER DJE
+    '\u0452'   #  0xAC -> CYRILLIC SMALL LETTER DJE
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0403'   #  0xAE -> CYRILLIC CAPITAL LETTER GJE
+    '\u0453'   #  0xAF -> CYRILLIC SMALL LETTER GJE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u0456'   #  0xB4 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u0491'   #  0xB6 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
+    '\u0408'   #  0xB7 -> CYRILLIC CAPITAL LETTER JE
+    '\u0404'   #  0xB8 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0454'   #  0xB9 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0407'   #  0xBA -> CYRILLIC CAPITAL LETTER YI
+    '\u0457'   #  0xBB -> CYRILLIC SMALL LETTER YI
+    '\u0409'   #  0xBC -> CYRILLIC CAPITAL LETTER LJE
+    '\u0459'   #  0xBD -> CYRILLIC SMALL LETTER LJE
+    '\u040a'   #  0xBE -> CYRILLIC CAPITAL LETTER NJE
+    '\u045a'   #  0xBF -> CYRILLIC SMALL LETTER NJE
+    '\u0458'   #  0xC0 -> CYRILLIC SMALL LETTER JE
+    '\u0405'   #  0xC1 -> CYRILLIC CAPITAL LETTER DZE
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u040b'   #  0xCB -> CYRILLIC CAPITAL LETTER TSHE
+    '\u045b'   #  0xCC -> CYRILLIC SMALL LETTER TSHE
+    '\u040c'   #  0xCD -> CYRILLIC CAPITAL LETTER KJE
+    '\u045c'   #  0xCE -> CYRILLIC SMALL LETTER KJE
+    '\u0455'   #  0xCF -> CYRILLIC SMALL LETTER DZE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u201e'   #  0xD7 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u040e'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT U
+    '\u040f'   #  0xDA -> CYRILLIC CAPITAL LETTER DZHE
+    '\u045f'   #  0xDB -> CYRILLIC SMALL LETTER DZHE
+    '\u2116'   #  0xDC -> NUMERO SIGN
+    '\u0401'   #  0xDD -> CYRILLIC CAPITAL LETTER IO
+    '\u0451'   #  0xDE -> CYRILLIC SMALL LETTER IO
+    '\u044f'   #  0xDF -> CYRILLIC SMALL LETTER YA
+    '\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u20ac'   #  0xFF -> EURO SIGN
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_farsi.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_farsi.py
new file mode 100644
index 0000000..e357d43
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_farsi.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_farsi generated from 'MAPPINGS/VENDORS/APPLE/FARSI.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-farsi',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE, left-right
+    '!'        #  0x21 -> EXCLAMATION MARK, left-right
+    '"'        #  0x22 -> QUOTATION MARK, left-right
+    '#'        #  0x23 -> NUMBER SIGN, left-right
+    '$'        #  0x24 -> DOLLAR SIGN, left-right
+    '%'        #  0x25 -> PERCENT SIGN, left-right
+    '&'        #  0x26 -> AMPERSAND, left-right
+    "'"        #  0x27 -> APOSTROPHE, left-right
+    '('        #  0x28 -> LEFT PARENTHESIS, left-right
+    ')'        #  0x29 -> RIGHT PARENTHESIS, left-right
+    '*'        #  0x2A -> ASTERISK, left-right
+    '+'        #  0x2B -> PLUS SIGN, left-right
+    ','        #  0x2C -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
+    '-'        #  0x2D -> HYPHEN-MINUS, left-right
+    '.'        #  0x2E -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
+    '/'        #  0x2F -> SOLIDUS, left-right
+    '0'        #  0x30 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
+    ':'        #  0x3A -> COLON, left-right
+    ';'        #  0x3B -> SEMICOLON, left-right
+    '<'        #  0x3C -> LESS-THAN SIGN, left-right
+    '='        #  0x3D -> EQUALS SIGN, left-right
+    '>'        #  0x3E -> GREATER-THAN SIGN, left-right
+    '?'        #  0x3F -> QUESTION MARK, left-right
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET, left-right
+    '\\'       #  0x5C -> REVERSE SOLIDUS, left-right
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET, left-right
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT, left-right
+    '_'        #  0x5F -> LOW LINE, left-right
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET, left-right
+    '|'        #  0x7C -> VERTICAL LINE, left-right
+    '}'        #  0x7D -> RIGHT CURLY BRACKET, left-right
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xa0'     #  0x81 -> NO-BREAK SPACE, right-left
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u06ba'   #  0x8B -> ARABIC LETTER NOON GHUNNA
+    '\xab'     #  0x8C -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u2026'   #  0x93 -> HORIZONTAL ELLIPSIS, right-left
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xbb'     #  0x98 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0x9B -> DIVISION SIGN, right-left
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    ' '        #  0xA0 -> SPACE, right-left
+    '!'        #  0xA1 -> EXCLAMATION MARK, right-left
+    '"'        #  0xA2 -> QUOTATION MARK, right-left
+    '#'        #  0xA3 -> NUMBER SIGN, right-left
+    '$'        #  0xA4 -> DOLLAR SIGN, right-left
+    '\u066a'   #  0xA5 -> ARABIC PERCENT SIGN
+    '&'        #  0xA6 -> AMPERSAND, right-left
+    "'"        #  0xA7 -> APOSTROPHE, right-left
+    '('        #  0xA8 -> LEFT PARENTHESIS, right-left
+    ')'        #  0xA9 -> RIGHT PARENTHESIS, right-left
+    '*'        #  0xAA -> ASTERISK, right-left
+    '+'        #  0xAB -> PLUS SIGN, right-left
+    '\u060c'   #  0xAC -> ARABIC COMMA
+    '-'        #  0xAD -> HYPHEN-MINUS, right-left
+    '.'        #  0xAE -> FULL STOP, right-left
+    '/'        #  0xAF -> SOLIDUS, right-left
+    '\u06f0'   #  0xB0 -> EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    '\u06f1'   #  0xB1 -> EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
+    '\u06f2'   #  0xB2 -> EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
+    '\u06f3'   #  0xB3 -> EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
+    '\u06f4'   #  0xB4 -> EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    '\u06f5'   #  0xB5 -> EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    '\u06f6'   #  0xB6 -> EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
+    '\u06f7'   #  0xB7 -> EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    '\u06f8'   #  0xB8 -> EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    '\u06f9'   #  0xB9 -> EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
+    ':'        #  0xBA -> COLON, right-left
+    '\u061b'   #  0xBB -> ARABIC SEMICOLON
+    '<'        #  0xBC -> LESS-THAN SIGN, right-left
+    '='        #  0xBD -> EQUALS SIGN, right-left
+    '>'        #  0xBE -> GREATER-THAN SIGN, right-left
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\u274a'   #  0xC0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\u0637'   #  0xD7 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xD9 -> ARABIC LETTER AIN
+    '\u063a'   #  0xDA -> ARABIC LETTER GHAIN
+    '['        #  0xDB -> LEFT SQUARE BRACKET, right-left
+    '\\'       #  0xDC -> REVERSE SOLIDUS, right-left
+    ']'        #  0xDD -> RIGHT SQUARE BRACKET, right-left
+    '^'        #  0xDE -> CIRCUMFLEX ACCENT, right-left
+    '_'        #  0xDF -> LOW LINE, right-left
+    '\u0640'   #  0xE0 -> ARABIC TATWEEL
+    '\u0641'   #  0xE1 -> ARABIC LETTER FEH
+    '\u0642'   #  0xE2 -> ARABIC LETTER QAF
+    '\u0643'   #  0xE3 -> ARABIC LETTER KAF
+    '\u0644'   #  0xE4 -> ARABIC LETTER LAM
+    '\u0645'   #  0xE5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE6 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE7 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE8 -> ARABIC LETTER WAW
+    '\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xEA -> ARABIC LETTER YEH
+    '\u064b'   #  0xEB -> ARABIC FATHATAN
+    '\u064c'   #  0xEC -> ARABIC DAMMATAN
+    '\u064d'   #  0xED -> ARABIC KASRATAN
+    '\u064e'   #  0xEE -> ARABIC FATHA
+    '\u064f'   #  0xEF -> ARABIC DAMMA
+    '\u0650'   #  0xF0 -> ARABIC KASRA
+    '\u0651'   #  0xF1 -> ARABIC SHADDA
+    '\u0652'   #  0xF2 -> ARABIC SUKUN
+    '\u067e'   #  0xF3 -> ARABIC LETTER PEH
+    '\u0679'   #  0xF4 -> ARABIC LETTER TTEH
+    '\u0686'   #  0xF5 -> ARABIC LETTER TCHEH
+    '\u06d5'   #  0xF6 -> ARABIC LETTER AE
+    '\u06a4'   #  0xF7 -> ARABIC LETTER VEH
+    '\u06af'   #  0xF8 -> ARABIC LETTER GAF
+    '\u0688'   #  0xF9 -> ARABIC LETTER DDAL
+    '\u0691'   #  0xFA -> ARABIC LETTER RREH
+    '{'        #  0xFB -> LEFT CURLY BRACKET, right-left
+    '|'        #  0xFC -> VERTICAL LINE, right-left
+    '}'        #  0xFD -> RIGHT CURLY BRACKET, right-left
+    '\u0698'   #  0xFE -> ARABIC LETTER JEH
+    '\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_greek.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_greek.py
new file mode 100644
index 0000000..d3d0c4f
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_greek.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_greek generated from 'MAPPINGS/VENDORS/APPLE/GREEK.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-greek',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xb9'     #  0x81 -> SUPERSCRIPT ONE
+    '\xb2'     #  0x82 -> SUPERSCRIPT TWO
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xb3'     #  0x84 -> SUPERSCRIPT THREE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0385'   #  0x87 -> GREEK DIALYTIKA TONOS
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0384'   #  0x8B -> GREEK TONOS
+    '\xa8'     #  0x8C -> DIAERESIS
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xa3'     #  0x92 -> POUND SIGN
+    '\u2122'   #  0x93 -> TRADE MARK SIGN
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u2022'   #  0x96 -> BULLET
+    '\xbd'     #  0x97 -> VULGAR FRACTION ONE HALF
+    '\u2030'   #  0x98 -> PER MILLE SIGN
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xa6'     #  0x9B -> BROKEN BAR
+    '\u20ac'   #  0x9C -> EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\u0393'   #  0xA1 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xA2 -> GREEK CAPITAL LETTER DELTA
+    '\u0398'   #  0xA3 -> GREEK CAPITAL LETTER THETA
+    '\u039b'   #  0xA4 -> GREEK CAPITAL LETTER LAMDA
+    '\u039e'   #  0xA5 -> GREEK CAPITAL LETTER XI
+    '\u03a0'   #  0xA6 -> GREEK CAPITAL LETTER PI
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u03a3'   #  0xAA -> GREEK CAPITAL LETTER SIGMA
+    '\u03aa'   #  0xAB -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\xa7'     #  0xAC -> SECTION SIGN
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xb0'     #  0xAE -> DEGREE SIGN
+    '\xb7'     #  0xAF -> MIDDLE DOT
+    '\u0391'   #  0xB0 -> GREEK CAPITAL LETTER ALPHA
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\u0392'   #  0xB5 -> GREEK CAPITAL LETTER BETA
+    '\u0395'   #  0xB6 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xB7 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xB8 -> GREEK CAPITAL LETTER ETA
+    '\u0399'   #  0xB9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xBA -> GREEK CAPITAL LETTER KAPPA
+    '\u039c'   #  0xBB -> GREEK CAPITAL LETTER MU
+    '\u03a6'   #  0xBC -> GREEK CAPITAL LETTER PHI
+    '\u03ab'   #  0xBD -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03a8'   #  0xBE -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xBF -> GREEK CAPITAL LETTER OMEGA
+    '\u03ac'   #  0xC0 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u039d'   #  0xC1 -> GREEK CAPITAL LETTER NU
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u039f'   #  0xC3 -> GREEK CAPITAL LETTER OMICRON
+    '\u03a1'   #  0xC4 -> GREEK CAPITAL LETTER RHO
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u03a4'   #  0xC6 -> GREEK CAPITAL LETTER TAU
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u03a5'   #  0xCB -> GREEK CAPITAL LETTER UPSILON
+    '\u03a7'   #  0xCC -> GREEK CAPITAL LETTER CHI
+    '\u0386'   #  0xCD -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0xCE -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2015'   #  0xD1 -> HORIZONTAL BAR
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u0389'   #  0xD7 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xD8 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0xD9 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0xDA -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u03ad'   #  0xDB -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDC -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDD -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0xDE -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u038f'   #  0xDF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u03cd'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03c8'   #  0xE3 -> GREEK SMALL LETTER PSI
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03c6'   #  0xE6 -> GREEK SMALL LETTER PHI
+    '\u03b3'   #  0xE7 -> GREEK SMALL LETTER GAMMA
+    '\u03b7'   #  0xE8 -> GREEK SMALL LETTER ETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03be'   #  0xEA -> GREEK SMALL LETTER XI
+    '\u03ba'   #  0xEB -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEC -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xED -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xEE -> GREEK SMALL LETTER NU
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03ce'   #  0xF1 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u03c1'   #  0xF2 -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03b8'   #  0xF5 -> GREEK SMALL LETTER THETA
+    '\u03c9'   #  0xF6 -> GREEK SMALL LETTER OMEGA
+    '\u03c2'   #  0xF7 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c7'   #  0xF8 -> GREEK SMALL LETTER CHI
+    '\u03c5'   #  0xF9 -> GREEK SMALL LETTER UPSILON
+    '\u03b6'   #  0xFA -> GREEK SMALL LETTER ZETA
+    '\u03ca'   #  0xFB -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFC -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u0390'   #  0xFD -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03b0'   #  0xFE -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\xad'     #  0xFF -> SOFT HYPHEN # before Mac OS 9.2.2, was undefined
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_iceland.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_iceland.py
new file mode 100644
index 0000000..add10f4
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_iceland.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_iceland generated from 'MAPPINGS/VENDORS/APPLE/ICELAND.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-iceland',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xA0 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\xd0'     #  0xDC -> LATIN CAPITAL LETTER ETH
+    '\xf0'     #  0xDD -> LATIN SMALL LETTER ETH
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xfe'     #  0xDF -> LATIN SMALL LETTER THORN
+    '\xfd'     #  0xE0 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_latin2.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_latin2.py
new file mode 100644
index 0000000..da9d4b1
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_latin2.py
@@ -0,0 +1,312 @@
+""" Python Character Mapping Codec mac_latin2 generated from 'MAPPINGS/VENDORS/MICSFT/MAC/LATIN2.TXT' with gencodec.py.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+(c) Copyright 2000 Guido van Rossum.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-latin2',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0100'   #  0x81 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0101'   #  0x82 -> LATIN SMALL LETTER A WITH MACRON
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0104'   #  0x84 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\u0105'   #  0x88 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u010c'   #  0x89 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u010d'   #  0x8B -> LATIN SMALL LETTER C WITH CARON
+    '\u0106'   #  0x8C -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\u0107'   #  0x8D -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u017a'   #  0x90 -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u010e'   #  0x91 -> LATIN CAPITAL LETTER D WITH CARON
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u010f'   #  0x93 -> LATIN SMALL LETTER D WITH CARON
+    '\u0112'   #  0x94 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0113'   #  0x95 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0116'   #  0x96 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u0117'   #  0x98 -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\u011a'   #  0x9D -> LATIN CAPITAL LETTER E WITH CARON
+    '\u011b'   #  0x9E -> LATIN SMALL LETTER E WITH CARON
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\u0118'   #  0xA2 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\u0119'   #  0xAB -> LATIN SMALL LETTER E WITH OGONEK
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0123'   #  0xAE -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u012e'   #  0xAF -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u012f'   #  0xB0 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u012a'   #  0xB1 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
+    '\u0136'   #  0xB5 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u0142'   #  0xB8 -> LATIN SMALL LETTER L WITH STROKE
+    '\u013b'   #  0xB9 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u013c'   #  0xBA -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u013d'   #  0xBB -> LATIN CAPITAL LETTER L WITH CARON
+    '\u013e'   #  0xBC -> LATIN SMALL LETTER L WITH CARON
+    '\u0139'   #  0xBD -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u013a'   #  0xBE -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0145'   #  0xBF -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u0146'   #  0xC0 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u0143'   #  0xC1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0144'   #  0xC4 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0147'   #  0xC5 -> LATIN CAPITAL LETTER N WITH CARON
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u0148'   #  0xCB -> LATIN SMALL LETTER N WITH CARON
+    '\u0150'   #  0xCC -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0151'   #  0xCE -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\u014c'   #  0xCF -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\u014d'   #  0xD8 -> LATIN SMALL LETTER O WITH MACRON
+    '\u0154'   #  0xD9 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\u0155'   #  0xDA -> LATIN SMALL LETTER R WITH ACUTE
+    '\u0158'   #  0xDB -> LATIN CAPITAL LETTER R WITH CARON
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0159'   #  0xDE -> LATIN SMALL LETTER R WITH CARON
+    '\u0156'   #  0xDF -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\u0157'   #  0xE0 -> LATIN SMALL LETTER R WITH CEDILLA
+    '\u0160'   #  0xE1 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u0161'   #  0xE4 -> LATIN SMALL LETTER S WITH CARON
+    '\u015a'   #  0xE5 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0xE6 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\u0164'   #  0xE8 -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0165'   #  0xE9 -> LATIN SMALL LETTER T WITH CARON
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\u017d'   #  0xEB -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017e'   #  0xEC -> LATIN SMALL LETTER Z WITH CARON
+    '\u016a'   #  0xED -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u016b'   #  0xF0 -> LATIN SMALL LETTER U WITH MACRON
+    '\u016e'   #  0xF1 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u016f'   #  0xF3 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\u0170'   #  0xF4 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\u0171'   #  0xF5 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\u0172'   #  0xF6 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0173'   #  0xF7 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xdd'     #  0xF8 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xfd'     #  0xF9 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0137'   #  0xFA -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u017b'   #  0xFB -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u0141'   #  0xFC -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0122'   #  0xFE -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_roman.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_roman.py
new file mode 100644
index 0000000..b74b002
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_roman.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_roman generated from 'MAPPINGS/VENDORS/APPLE/ROMAN.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-roman',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufb01'   #  0xDE -> LATIN SMALL LIGATURE FI
+    '\ufb02'   #  0xDF -> LATIN SMALL LIGATURE FL
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_romanian.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_romanian.py
new file mode 100644
index 0000000..d141b4c
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_romanian.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_romanian generated from 'MAPPINGS/VENDORS/APPLE/ROMANIAN.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-romanian',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0102'   #  0xAE -> LATIN CAPITAL LETTER A WITH BREVE
+    '\u0218'   #  0xAF -> LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\u0103'   #  0xBE -> LATIN SMALL LETTER A WITH BREVE
+    '\u0219'   #  0xBF -> LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u021b'   #  0xDF -> LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mac_turkish.py b/linux-x64/clang/python3/lib/python3.9/encodings/mac_turkish.py
new file mode 100644
index 0000000..044d4cb
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mac_turkish.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec mac_turkish generated from 'MAPPINGS/VENDORS/APPLE/TURKISH.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mac-turkish',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u011e'   #  0xDA -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u011f'   #  0xDB -> LATIN SMALL LETTER G WITH BREVE
+    '\u0130'   #  0xDC -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u0131'   #  0xDD -> LATIN SMALL LETTER DOTLESS I
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u015f'   #  0xDF -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\uf8a0'   #  0xF5 -> undefined1
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/mbcs.py b/linux-x64/clang/python3/lib/python3.9/encodings/mbcs.py
new file mode 100644
index 0000000..baf46cb
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/mbcs.py
@@ -0,0 +1,47 @@
+""" Python 'mbcs' Codec for Windows
+
+
+Cloned by Mark Hammond (mhammond@skippinet.com.au) from ascii.py,
+which was written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+# Import them explicitly to cause an ImportError
+# on non-Windows systems
+from codecs import mbcs_encode, mbcs_decode
+# for IncrementalDecoder, IncrementalEncoder, ...
+import codecs
+
+### Codec APIs
+
+encode = mbcs_encode
+
+def decode(input, errors='strict'):
+    return mbcs_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return mbcs_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = mbcs_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = mbcs_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = mbcs_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='mbcs',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/oem.py b/linux-x64/clang/python3/lib/python3.9/encodings/oem.py
new file mode 100644
index 0000000..2c3426b
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/oem.py
@@ -0,0 +1,41 @@
+""" Python 'oem' Codec for Windows
+
+"""
+# Import them explicitly to cause an ImportError
+# on non-Windows systems
+from codecs import oem_encode, oem_decode
+# for IncrementalDecoder, IncrementalEncoder, ...
+import codecs
+
+### Codec APIs
+
+encode = oem_encode
+
+def decode(input, errors='strict'):
+    return oem_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return oem_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = oem_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = oem_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = oem_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='oem',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/palmos.py b/linux-x64/clang/python3/lib/python3.9/encodings/palmos.py
new file mode 100644
index 0000000..c506d65
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/palmos.py
@@ -0,0 +1,308 @@
+""" Python Character Mapping Codec for PalmOS 3.5.
+
+Written by Sjoerd Mullender (sjoerd@acm.org); based on iso8859_15.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='palmos',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\x81'     #  0x81 -> <control>
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\u2666'   #  0x8D -> BLACK DIAMOND SUIT
+    '\u2663'   #  0x8E -> BLACK CLUB SUIT
+    '\u2665'   #  0x8F -> BLACK HEART SUIT
+    '\u2660'   #  0x90 -> BLACK SPADE SUIT
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\x9b'     #  0x9B -> <control>
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/ptcp154.py b/linux-x64/clang/python3/lib/python3.9/encodings/ptcp154.py
new file mode 100644
index 0000000..656b79d
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/ptcp154.py
@@ -0,0 +1,312 @@
+""" Python Character Mapping Codec generated from 'PTCP154.txt' with gencodec.py.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+(c) Copyright 2000 Guido van Rossum.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='ptcp154',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE (DEL)
+    '\u0496'   #  0x80 -> CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+    '\u0492'   #  0x81 -> CYRILLIC CAPITAL LETTER GHE WITH STROKE
+    '\u04ee'   #  0x82 -> CYRILLIC CAPITAL LETTER U WITH MACRON
+    '\u0493'   #  0x83 -> CYRILLIC SMALL LETTER GHE WITH STROKE
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u04b6'   #  0x86 -> CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+    '\u04ae'   #  0x87 -> CYRILLIC CAPITAL LETTER STRAIGHT U
+    '\u04b2'   #  0x88 -> CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+    '\u04af'   #  0x89 -> CYRILLIC SMALL LETTER STRAIGHT U
+    '\u04a0'   #  0x8A -> CYRILLIC CAPITAL LETTER BASHKIR KA
+    '\u04e2'   #  0x8B -> CYRILLIC CAPITAL LETTER I WITH MACRON
+    '\u04a2'   #  0x8C -> CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+    '\u049a'   #  0x8D -> CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+    '\u04ba'   #  0x8E -> CYRILLIC CAPITAL LETTER SHHA
+    '\u04b8'   #  0x8F -> CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+    '\u0497'   #  0x90 -> CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u04b3'   #  0x98 -> CYRILLIC SMALL LETTER HA WITH DESCENDER
+    '\u04b7'   #  0x99 -> CYRILLIC SMALL LETTER CHE WITH DESCENDER
+    '\u04a1'   #  0x9A -> CYRILLIC SMALL LETTER BASHKIR KA
+    '\u04e3'   #  0x9B -> CYRILLIC SMALL LETTER I WITH MACRON
+    '\u04a3'   #  0x9C -> CYRILLIC SMALL LETTER EN WITH DESCENDER
+    '\u049b'   #  0x9D -> CYRILLIC SMALL LETTER KA WITH DESCENDER
+    '\u04bb'   #  0x9E -> CYRILLIC SMALL LETTER SHHA
+    '\u04b9'   #  0x9F -> CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u040e'   #  0xA1 -> CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+    '\u045e'   #  0xA2 -> CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+    '\u0408'   #  0xA3 -> CYRILLIC CAPITAL LETTER JE
+    '\u04e8'   #  0xA4 -> CYRILLIC CAPITAL LETTER BARRED O
+    '\u0498'   #  0xA5 -> CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+    '\u04b0'   #  0xA6 -> CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0401'   #  0xA8 -> CYRILLIC CAPITAL LETTER IO
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u04d8'   #  0xAA -> CYRILLIC CAPITAL LETTER SCHWA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\u04ef'   #  0xAD -> CYRILLIC SMALL LETTER U WITH MACRON
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u049c'   #  0xAF -> CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u04b1'   #  0xB1 -> CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+    '\u0406'   #  0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0456'   #  0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0499'   #  0xB4 -> CYRILLIC SMALL LETTER ZE WITH DESCENDER
+    '\u04e9'   #  0xB5 -> CYRILLIC SMALL LETTER BARRED O
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0451'   #  0xB8 -> CYRILLIC SMALL LETTER IO
+    '\u2116'   #  0xB9 -> NUMERO SIGN
+    '\u04d9'   #  0xBA -> CYRILLIC SMALL LETTER SCHWA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0458'   #  0xBC -> CYRILLIC SMALL LETTER JE
+    '\u04aa'   #  0xBD -> CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+    '\u04ab'   #  0xBE -> CYRILLIC SMALL LETTER ES WITH DESCENDER
+    '\u049d'   #  0xBF -> CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+    '\u0410'   #  0xC0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xC1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0xC2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0xC3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0xC4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xC5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0xC6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0xC7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0xC8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xCA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xCB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xCC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xCD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xCE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xCF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0xD0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xD1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xD2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xD3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0xD4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0xD5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0xD6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0xD7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0xDB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0xDD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0xDE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0xDF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0xFF -> CYRILLIC SMALL LETTER YA
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/punycode.py b/linux-x64/clang/python3/lib/python3.9/encodings/punycode.py
new file mode 100644
index 0000000..1c57264
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/punycode.py
@@ -0,0 +1,237 @@
+""" Codec for the Punicode encoding, as specified in RFC 3492
+
+Written by Martin v. Löwis.
+"""
+
+import codecs
+
+##################### Encoding #####################################
+
+def segregate(str):
+    """3.1 Basic code point segregation"""
+    base = bytearray()
+    extended = set()
+    for c in str:
+        if ord(c) < 128:
+            base.append(ord(c))
+        else:
+            extended.add(c)
+    extended = sorted(extended)
+    return bytes(base), extended
+
+def selective_len(str, max):
+    """Return the length of str, considering only characters below max."""
+    res = 0
+    for c in str:
+        if ord(c) < max:
+            res += 1
+    return res
+
+def selective_find(str, char, index, pos):
+    """Return a pair (index, pos), indicating the next occurrence of
+    char in str. index is the position of the character considering
+    only ordinals up to and including char, and pos is the position in
+    the full string. index/pos is the starting position in the full
+    string."""
+
+    l = len(str)
+    while 1:
+        pos += 1
+        if pos == l:
+            return (-1, -1)
+        c = str[pos]
+        if c == char:
+            return index+1, pos
+        elif c < char:
+            index += 1
+
+def insertion_unsort(str, extended):
+    """3.2 Insertion unsort coding"""
+    oldchar = 0x80
+    result = []
+    oldindex = -1
+    for c in extended:
+        index = pos = -1
+        char = ord(c)
+        curlen = selective_len(str, char)
+        delta = (curlen+1) * (char - oldchar)
+        while 1:
+            index,pos = selective_find(str,c,index,pos)
+            if index == -1:
+                break
+            delta += index - oldindex
+            result.append(delta-1)
+            oldindex = index
+            delta = 0
+        oldchar = char
+
+    return result
+
+def T(j, bias):
+    # Punycode parameters: tmin = 1, tmax = 26, base = 36
+    res = 36 * (j + 1) - bias
+    if res < 1: return 1
+    if res > 26: return 26
+    return res
+
+digits = b"abcdefghijklmnopqrstuvwxyz0123456789"
+def generate_generalized_integer(N, bias):
+    """3.3 Generalized variable-length integers"""
+    result = bytearray()
+    j = 0
+    while 1:
+        t = T(j, bias)
+        if N < t:
+            result.append(digits[N])
+            return bytes(result)
+        result.append(digits[t + ((N - t) % (36 - t))])
+        N = (N - t) // (36 - t)
+        j += 1
+
+def adapt(delta, first, numchars):
+    if first:
+        delta //= 700
+    else:
+        delta //= 2
+    delta += delta // numchars
+    # ((base - tmin) * tmax) // 2 == 455
+    divisions = 0
+    while delta > 455:
+        delta = delta // 35 # base - tmin
+        divisions += 36
+    bias = divisions + (36 * delta // (delta + 38))
+    return bias
+
+
+def generate_integers(baselen, deltas):
+    """3.4 Bias adaptation"""
+    # Punycode parameters: initial bias = 72, damp = 700, skew = 38
+    result = bytearray()
+    bias = 72
+    for points, delta in enumerate(deltas):
+        s = generate_generalized_integer(delta, bias)
+        result.extend(s)
+        bias = adapt(delta, points==0, baselen+points+1)
+    return bytes(result)
+
+def punycode_encode(text):
+    base, extended = segregate(text)
+    deltas = insertion_unsort(text, extended)
+    extended = generate_integers(len(base), deltas)
+    if base:
+        return base + b"-" + extended
+    return extended
+
+##################### Decoding #####################################
+
+def decode_generalized_number(extended, extpos, bias, errors):
+    """3.3 Generalized variable-length integers"""
+    result = 0
+    w = 1
+    j = 0
+    while 1:
+        try:
+            char = ord(extended[extpos])
+        except IndexError:
+            if errors == "strict":
+                raise UnicodeError("incomplete punicode string")
+            return extpos + 1, None
+        extpos += 1
+        if 0x41 <= char <= 0x5A: # A-Z
+            digit = char - 0x41
+        elif 0x30 <= char <= 0x39:
+            digit = char - 22 # 0x30-26
+        elif errors == "strict":
+            raise UnicodeError("Invalid extended code point '%s'"
+                               % extended[extpos-1])
+        else:
+            return extpos, None
+        t = T(j, bias)
+        result += digit * w
+        if digit < t:
+            return extpos, result
+        w = w * (36 - t)
+        j += 1
+
+
+def insertion_sort(base, extended, errors):
+    """3.2 Insertion unsort coding"""
+    char = 0x80
+    pos = -1
+    bias = 72
+    extpos = 0
+    while extpos < len(extended):
+        newpos, delta = decode_generalized_number(extended, extpos,
+                                                  bias, errors)
+        if delta is None:
+            # There was an error in decoding. We can't continue because
+            # synchronization is lost.
+            return base
+        pos += delta+1
+        char += pos // (len(base) + 1)
+        if char > 0x10FFFF:
+            if errors == "strict":
+                raise UnicodeError("Invalid character U+%x" % char)
+            char = ord('?')
+        pos = pos % (len(base) + 1)
+        base = base[:pos] + chr(char) + base[pos:]
+        bias = adapt(delta, (extpos == 0), len(base))
+        extpos = newpos
+    return base
+
+def punycode_decode(text, errors):
+    if isinstance(text, str):
+        text = text.encode("ascii")
+    if isinstance(text, memoryview):
+        text = bytes(text)
+    pos = text.rfind(b"-")
+    if pos == -1:
+        base = ""
+        extended = str(text, "ascii").upper()
+    else:
+        base = str(text[:pos], "ascii", errors)
+        extended = str(text[pos+1:], "ascii").upper()
+    return insertion_sort(base, extended, errors)
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self, input, errors='strict'):
+        res = punycode_encode(input)
+        return res, len(input)
+
+    def decode(self, input, errors='strict'):
+        if errors not in ('strict', 'replace', 'ignore'):
+            raise UnicodeError("Unsupported error handling "+errors)
+        res = punycode_decode(input, errors)
+        return res, len(input)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return punycode_encode(input)
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        if self.errors not in ('strict', 'replace', 'ignore'):
+            raise UnicodeError("Unsupported error handling "+self.errors)
+        return punycode_decode(input, self.errors)
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='punycode',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/quopri_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/quopri_codec.py
new file mode 100644
index 0000000..496cb76
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/quopri_codec.py
@@ -0,0 +1,56 @@
+"""Codec for quoted-printable encoding.
+
+This codec de/encodes from bytes to bytes.
+"""
+
+import codecs
+import quopri
+from io import BytesIO
+
+def quopri_encode(input, errors='strict'):
+    assert errors == 'strict'
+    f = BytesIO(input)
+    g = BytesIO()
+    quopri.encode(f, g, quotetabs=True)
+    return (g.getvalue(), len(input))
+
+def quopri_decode(input, errors='strict'):
+    assert errors == 'strict'
+    f = BytesIO(input)
+    g = BytesIO()
+    quopri.decode(f, g)
+    return (g.getvalue(), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return quopri_encode(input, errors)
+    def decode(self, input, errors='strict'):
+        return quopri_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return quopri_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return quopri_decode(input, self.errors)[0]
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+# encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='quopri',
+        encode=quopri_encode,
+        decode=quopri_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+        _is_text_encoding=False,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/raw_unicode_escape.py b/linux-x64/clang/python3/lib/python3.9/encodings/raw_unicode_escape.py
new file mode 100644
index 0000000..2b919b4
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/raw_unicode_escape.py
@@ -0,0 +1,45 @@
+""" Python 'raw-unicode-escape' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    # Note: Binding these as C functions will result in the class not
+    # converting them to methods. This is intended.
+    encode = codecs.raw_unicode_escape_encode
+    decode = codecs.raw_unicode_escape_decode
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.raw_unicode_escape_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.raw_unicode_escape_decode(input, self.errors)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='raw-unicode-escape',
+        encode=Codec.encode,
+        decode=Codec.decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/rot_13.py b/linux-x64/clang/python3/lib/python3.9/encodings/rot_13.py
new file mode 100755
index 0000000..5627bfb
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/rot_13.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+""" Python Character Mapping Codec for ROT13.
+
+This codec de/encodes from str to str.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+"""
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return (str.translate(input, rot13_map), len(input))
+
+    def decode(self, input, errors='strict'):
+        return (str.translate(input, rot13_map), len(input))
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return str.translate(input, rot13_map)
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return str.translate(input, rot13_map)
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='rot-13',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+        _is_text_encoding=False,
+    )
+
+### Map
+
+rot13_map = codecs.make_identity_dict(range(256))
+rot13_map.update({
+   0x0041: 0x004e,
+   0x0042: 0x004f,
+   0x0043: 0x0050,
+   0x0044: 0x0051,
+   0x0045: 0x0052,
+   0x0046: 0x0053,
+   0x0047: 0x0054,
+   0x0048: 0x0055,
+   0x0049: 0x0056,
+   0x004a: 0x0057,
+   0x004b: 0x0058,
+   0x004c: 0x0059,
+   0x004d: 0x005a,
+   0x004e: 0x0041,
+   0x004f: 0x0042,
+   0x0050: 0x0043,
+   0x0051: 0x0044,
+   0x0052: 0x0045,
+   0x0053: 0x0046,
+   0x0054: 0x0047,
+   0x0055: 0x0048,
+   0x0056: 0x0049,
+   0x0057: 0x004a,
+   0x0058: 0x004b,
+   0x0059: 0x004c,
+   0x005a: 0x004d,
+   0x0061: 0x006e,
+   0x0062: 0x006f,
+   0x0063: 0x0070,
+   0x0064: 0x0071,
+   0x0065: 0x0072,
+   0x0066: 0x0073,
+   0x0067: 0x0074,
+   0x0068: 0x0075,
+   0x0069: 0x0076,
+   0x006a: 0x0077,
+   0x006b: 0x0078,
+   0x006c: 0x0079,
+   0x006d: 0x007a,
+   0x006e: 0x0061,
+   0x006f: 0x0062,
+   0x0070: 0x0063,
+   0x0071: 0x0064,
+   0x0072: 0x0065,
+   0x0073: 0x0066,
+   0x0074: 0x0067,
+   0x0075: 0x0068,
+   0x0076: 0x0069,
+   0x0077: 0x006a,
+   0x0078: 0x006b,
+   0x0079: 0x006c,
+   0x007a: 0x006d,
+})
+
+### Filter API
+
+def rot13(infile, outfile):
+    outfile.write(codecs.encode(infile.read(), 'rot-13'))
+
+if __name__ == '__main__':
+    import sys
+    rot13(sys.stdin, sys.stdout)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis.py b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis.py
new file mode 100644
index 0000000..8338117
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis.py
@@ -0,0 +1,39 @@
+#
+# shift_jis.py: Python Unicode Codec for SHIFT_JIS
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('shift_jis')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='shift_jis',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis_2004.py b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis_2004.py
new file mode 100644
index 0000000..161b1e8
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jis_2004.py
@@ -0,0 +1,39 @@
+#
+# shift_jis_2004.py: Python Unicode Codec for SHIFT_JIS_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('shift_jis_2004')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='shift_jis_2004',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/shift_jisx0213.py b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jisx0213.py
new file mode 100644
index 0000000..cb653f5
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/shift_jisx0213.py
@@ -0,0 +1,39 @@
+#
+# shift_jisx0213.py: Python Unicode Codec for SHIFT_JISX0213
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+#
+
+import _codecs_jp, codecs
+import _multibytecodec as mbc
+
+codec = _codecs_jp.getcodec('shift_jisx0213')
+
+class Codec(codecs.Codec):
+    encode = codec.encode
+    decode = codec.decode
+
+class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
+                         codecs.IncrementalEncoder):
+    codec = codec
+
+class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
+                         codecs.IncrementalDecoder):
+    codec = codec
+
+class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
+    codec = codec
+
+class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
+    codec = codec
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='shift_jisx0213',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/tis_620.py b/linux-x64/clang/python3/lib/python3.9/encodings/tis_620.py
new file mode 100644
index 0000000..e288386
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/tis_620.py
@@ -0,0 +1,307 @@
+""" Python Character Mapping Codec tis_620 generated from 'python-mappings/TIS-620.TXT' with gencodec.py.
+
+"""#"
+
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        return codecs.charmap_encode(input,errors,encoding_table)
+
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_table)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='tis-620',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
+
+
+### Decoding Table
+
+decoding_table = (
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\ufffe'
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+)
+
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/undefined.py b/linux-x64/clang/python3/lib/python3.9/encodings/undefined.py
new file mode 100644
index 0000000..4690288
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/undefined.py
@@ -0,0 +1,49 @@
+""" Python 'undefined' Codec
+
+    This codec will always raise a ValueError exception when being
+    used. It is intended for use by the site.py file to switch off
+    automatic string to Unicode coercion.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    def encode(self,input,errors='strict'):
+        raise UnicodeError("undefined encoding")
+
+    def decode(self,input,errors='strict'):
+        raise UnicodeError("undefined encoding")
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        raise UnicodeError("undefined encoding")
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        raise UnicodeError("undefined encoding")
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='undefined',
+        encode=Codec().encode,
+        decode=Codec().decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/unicode_escape.py b/linux-x64/clang/python3/lib/python3.9/encodings/unicode_escape.py
new file mode 100644
index 0000000..817f932
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/unicode_escape.py
@@ -0,0 +1,45 @@
+""" Python 'unicode-escape' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+class Codec(codecs.Codec):
+
+    # Note: Binding these as C functions will result in the class not
+    # converting them to methods. This is intended.
+    encode = codecs.unicode_escape_encode
+    decode = codecs.unicode_escape_decode
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.unicode_escape_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return codecs.unicode_escape_decode(input, self.errors)[0]
+
+class StreamWriter(Codec,codecs.StreamWriter):
+    pass
+
+class StreamReader(Codec,codecs.StreamReader):
+    pass
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='unicode-escape',
+        encode=Codec.encode,
+        decode=Codec.decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamwriter=StreamWriter,
+        streamreader=StreamReader,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_16.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16.py
new file mode 100644
index 0000000..c612482
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16.py
@@ -0,0 +1,155 @@
+""" Python 'utf-16' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs, sys
+
+### Codec APIs
+
+encode = codecs.utf_16_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_16_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict'):
+        codecs.IncrementalEncoder.__init__(self, errors)
+        self.encoder = None
+
+    def encode(self, input, final=False):
+        if self.encoder is None:
+            result = codecs.utf_16_encode(input, self.errors)[0]
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_16_le_encode
+            else:
+                self.encoder = codecs.utf_16_be_encode
+            return result
+        return self.encoder(input, self.errors)[0]
+
+    def reset(self):
+        codecs.IncrementalEncoder.reset(self)
+        self.encoder = None
+
+    def getstate(self):
+        # state info we return to the caller:
+        # 0: stream is in natural order for this platform
+        # 2: endianness hasn't been determined yet
+        # (we're never writing in unnatural order)
+        return (2 if self.encoder is None else 0)
+
+    def setstate(self, state):
+        if state:
+            self.encoder = None
+        else:
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_16_le_encode
+            else:
+                self.encoder = codecs.utf_16_be_encode
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def __init__(self, errors='strict'):
+        codecs.BufferedIncrementalDecoder.__init__(self, errors)
+        self.decoder = None
+
+    def _buffer_decode(self, input, errors, final):
+        if self.decoder is None:
+            (output, consumed, byteorder) = \
+                codecs.utf_16_ex_decode(input, errors, 0, final)
+            if byteorder == -1:
+                self.decoder = codecs.utf_16_le_decode
+            elif byteorder == 1:
+                self.decoder = codecs.utf_16_be_decode
+            elif consumed >= 2:
+                raise UnicodeError("UTF-16 stream does not start with BOM")
+            return (output, consumed)
+        return self.decoder(input, self.errors, final)
+
+    def reset(self):
+        codecs.BufferedIncrementalDecoder.reset(self)
+        self.decoder = None
+
+    def getstate(self):
+        # additional state info from the base class must be None here,
+        # as it isn't passed along to the caller
+        state = codecs.BufferedIncrementalDecoder.getstate(self)[0]
+        # additional state info we pass to the caller:
+        # 0: stream is in natural order for this platform
+        # 1: stream is in unnatural order
+        # 2: endianness hasn't been determined yet
+        if self.decoder is None:
+            return (state, 2)
+        addstate = int((sys.byteorder == "big") !=
+                       (self.decoder is codecs.utf_16_be_decode))
+        return (state, addstate)
+
+    def setstate(self, state):
+        # state[1] will be ignored by BufferedIncrementalDecoder.setstate()
+        codecs.BufferedIncrementalDecoder.setstate(self, state)
+        state = state[1]
+        if state == 0:
+            self.decoder = (codecs.utf_16_be_decode
+                            if sys.byteorder == "big"
+                            else codecs.utf_16_le_decode)
+        elif state == 1:
+            self.decoder = (codecs.utf_16_le_decode
+                            if sys.byteorder == "big"
+                            else codecs.utf_16_be_decode)
+        else:
+            self.decoder = None
+
+class StreamWriter(codecs.StreamWriter):
+    def __init__(self, stream, errors='strict'):
+        codecs.StreamWriter.__init__(self, stream, errors)
+        self.encoder = None
+
+    def reset(self):
+        codecs.StreamWriter.reset(self)
+        self.encoder = None
+
+    def encode(self, input, errors='strict'):
+        if self.encoder is None:
+            result = codecs.utf_16_encode(input, errors)
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_16_le_encode
+            else:
+                self.encoder = codecs.utf_16_be_encode
+            return result
+        else:
+            return self.encoder(input, errors)
+
+class StreamReader(codecs.StreamReader):
+
+    def reset(self):
+        codecs.StreamReader.reset(self)
+        try:
+            del self.decode
+        except AttributeError:
+            pass
+
+    def decode(self, input, errors='strict'):
+        (object, consumed, byteorder) = \
+            codecs.utf_16_ex_decode(input, errors, 0, False)
+        if byteorder == -1:
+            self.decode = codecs.utf_16_le_decode
+        elif byteorder == 1:
+            self.decode = codecs.utf_16_be_decode
+        elif consumed>=2:
+            raise UnicodeError("UTF-16 stream does not start with BOM")
+        return (object, consumed)
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-16',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_be.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_be.py
new file mode 100644
index 0000000..86b458e
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_be.py
@@ -0,0 +1,42 @@
+""" Python 'utf-16-be' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_16_be_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_16_be_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_16_be_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_16_be_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_16_be_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_16_be_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-16-be',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_le.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_le.py
new file mode 100644
index 0000000..ec45414
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_16_le.py
@@ -0,0 +1,42 @@
+""" Python 'utf-16-le' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_16_le_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_16_le_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_16_le_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_16_le_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_16_le_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_16_le_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-16-le',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_32.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32.py
new file mode 100644
index 0000000..cdf84d1
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32.py
@@ -0,0 +1,150 @@
+"""
+Python 'utf-32' Codec
+"""
+import codecs, sys
+
+### Codec APIs
+
+encode = codecs.utf_32_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_32_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict'):
+        codecs.IncrementalEncoder.__init__(self, errors)
+        self.encoder = None
+
+    def encode(self, input, final=False):
+        if self.encoder is None:
+            result = codecs.utf_32_encode(input, self.errors)[0]
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_32_le_encode
+            else:
+                self.encoder = codecs.utf_32_be_encode
+            return result
+        return self.encoder(input, self.errors)[0]
+
+    def reset(self):
+        codecs.IncrementalEncoder.reset(self)
+        self.encoder = None
+
+    def getstate(self):
+        # state info we return to the caller:
+        # 0: stream is in natural order for this platform
+        # 2: endianness hasn't been determined yet
+        # (we're never writing in unnatural order)
+        return (2 if self.encoder is None else 0)
+
+    def setstate(self, state):
+        if state:
+            self.encoder = None
+        else:
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_32_le_encode
+            else:
+                self.encoder = codecs.utf_32_be_encode
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def __init__(self, errors='strict'):
+        codecs.BufferedIncrementalDecoder.__init__(self, errors)
+        self.decoder = None
+
+    def _buffer_decode(self, input, errors, final):
+        if self.decoder is None:
+            (output, consumed, byteorder) = \
+                codecs.utf_32_ex_decode(input, errors, 0, final)
+            if byteorder == -1:
+                self.decoder = codecs.utf_32_le_decode
+            elif byteorder == 1:
+                self.decoder = codecs.utf_32_be_decode
+            elif consumed >= 4:
+                raise UnicodeError("UTF-32 stream does not start with BOM")
+            return (output, consumed)
+        return self.decoder(input, self.errors, final)
+
+    def reset(self):
+        codecs.BufferedIncrementalDecoder.reset(self)
+        self.decoder = None
+
+    def getstate(self):
+        # additional state info from the base class must be None here,
+        # as it isn't passed along to the caller
+        state = codecs.BufferedIncrementalDecoder.getstate(self)[0]
+        # additional state info we pass to the caller:
+        # 0: stream is in natural order for this platform
+        # 1: stream is in unnatural order
+        # 2: endianness hasn't been determined yet
+        if self.decoder is None:
+            return (state, 2)
+        addstate = int((sys.byteorder == "big") !=
+                       (self.decoder is codecs.utf_32_be_decode))
+        return (state, addstate)
+
+    def setstate(self, state):
+        # state[1] will be ignored by BufferedIncrementalDecoder.setstate()
+        codecs.BufferedIncrementalDecoder.setstate(self, state)
+        state = state[1]
+        if state == 0:
+            self.decoder = (codecs.utf_32_be_decode
+                            if sys.byteorder == "big"
+                            else codecs.utf_32_le_decode)
+        elif state == 1:
+            self.decoder = (codecs.utf_32_le_decode
+                            if sys.byteorder == "big"
+                            else codecs.utf_32_be_decode)
+        else:
+            self.decoder = None
+
+class StreamWriter(codecs.StreamWriter):
+    def __init__(self, stream, errors='strict'):
+        self.encoder = None
+        codecs.StreamWriter.__init__(self, stream, errors)
+
+    def reset(self):
+        codecs.StreamWriter.reset(self)
+        self.encoder = None
+
+    def encode(self, input, errors='strict'):
+        if self.encoder is None:
+            result = codecs.utf_32_encode(input, errors)
+            if sys.byteorder == 'little':
+                self.encoder = codecs.utf_32_le_encode
+            else:
+                self.encoder = codecs.utf_32_be_encode
+            return result
+        else:
+            return self.encoder(input, errors)
+
+class StreamReader(codecs.StreamReader):
+
+    def reset(self):
+        codecs.StreamReader.reset(self)
+        try:
+            del self.decode
+        except AttributeError:
+            pass
+
+    def decode(self, input, errors='strict'):
+        (object, consumed, byteorder) = \
+            codecs.utf_32_ex_decode(input, errors, 0, False)
+        if byteorder == -1:
+            self.decode = codecs.utf_32_le_decode
+        elif byteorder == 1:
+            self.decode = codecs.utf_32_be_decode
+        elif consumed>=4:
+            raise UnicodeError("UTF-32 stream does not start with BOM")
+        return (object, consumed)
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-32',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_be.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_be.py
new file mode 100644
index 0000000..fe272b5
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_be.py
@@ -0,0 +1,37 @@
+"""
+Python 'utf-32-be' Codec
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_32_be_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_32_be_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_32_be_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_32_be_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_32_be_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_32_be_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-32-be',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_le.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_le.py
new file mode 100644
index 0000000..9e48210
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_32_le.py
@@ -0,0 +1,37 @@
+"""
+Python 'utf-32-le' Codec
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_32_le_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_32_le_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_32_le_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_32_le_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_32_le_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_32_le_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-32-le',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_7.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_7.py
new file mode 100644
index 0000000..8e0567f
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_7.py
@@ -0,0 +1,38 @@
+""" Python 'utf-7' Codec
+
+Written by Brian Quinlan (brian@sweetapp.com).
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_7_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_7_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_7_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_7_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_7_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_7_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-7',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_8.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_8.py
new file mode 100644
index 0000000..1bf6336
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_8.py
@@ -0,0 +1,42 @@
+""" Python 'utf-8' Codec
+
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+
+(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
+
+"""
+import codecs
+
+### Codec APIs
+
+encode = codecs.utf_8_encode
+
+def decode(input, errors='strict'):
+    return codecs.utf_8_decode(input, errors, True)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return codecs.utf_8_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    _buffer_decode = codecs.utf_8_decode
+
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_8_encode
+
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_8_decode
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-8',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/utf_8_sig.py b/linux-x64/clang/python3/lib/python3.9/encodings/utf_8_sig.py
new file mode 100644
index 0000000..1bb4792
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/utf_8_sig.py
@@ -0,0 +1,130 @@
+""" Python 'utf-8-sig' Codec
+This work similar to UTF-8 with the following changes:
+
+* On encoding/writing a UTF-8 encoded BOM will be prepended/written as the
+  first three bytes.
+
+* On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these
+  bytes will be skipped.
+"""
+import codecs
+
+### Codec APIs
+
+def encode(input, errors='strict'):
+    return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0],
+            len(input))
+
+def decode(input, errors='strict'):
+    prefix = 0
+    if input[:3] == codecs.BOM_UTF8:
+        input = input[3:]
+        prefix = 3
+    (output, consumed) = codecs.utf_8_decode(input, errors, True)
+    return (output, consumed+prefix)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict'):
+        codecs.IncrementalEncoder.__init__(self, errors)
+        self.first = 1
+
+    def encode(self, input, final=False):
+        if self.first:
+            self.first = 0
+            return codecs.BOM_UTF8 + \
+                   codecs.utf_8_encode(input, self.errors)[0]
+        else:
+            return codecs.utf_8_encode(input, self.errors)[0]
+
+    def reset(self):
+        codecs.IncrementalEncoder.reset(self)
+        self.first = 1
+
+    def getstate(self):
+        return self.first
+
+    def setstate(self, state):
+        self.first = state
+
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def __init__(self, errors='strict'):
+        codecs.BufferedIncrementalDecoder.__init__(self, errors)
+        self.first = 1
+
+    def _buffer_decode(self, input, errors, final):
+        if self.first:
+            if len(input) < 3:
+                if codecs.BOM_UTF8.startswith(input):
+                    # not enough data to decide if this really is a BOM
+                    # => try again on the next call
+                    return ("", 0)
+                else:
+                    self.first = 0
+            else:
+                self.first = 0
+                if input[:3] == codecs.BOM_UTF8:
+                    (output, consumed) = \
+                       codecs.utf_8_decode(input[3:], errors, final)
+                    return (output, consumed+3)
+        return codecs.utf_8_decode(input, errors, final)
+
+    def reset(self):
+        codecs.BufferedIncrementalDecoder.reset(self)
+        self.first = 1
+
+    def getstate(self):
+        state = codecs.BufferedIncrementalDecoder.getstate(self)
+        # state[1] must be 0 here, as it isn't passed along to the caller
+        return (state[0], self.first)
+
+    def setstate(self, state):
+        # state[1] will be ignored by BufferedIncrementalDecoder.setstate()
+        codecs.BufferedIncrementalDecoder.setstate(self, state)
+        self.first = state[1]
+
+class StreamWriter(codecs.StreamWriter):
+    def reset(self):
+        codecs.StreamWriter.reset(self)
+        try:
+            del self.encode
+        except AttributeError:
+            pass
+
+    def encode(self, input, errors='strict'):
+        self.encode = codecs.utf_8_encode
+        return encode(input, errors)
+
+class StreamReader(codecs.StreamReader):
+    def reset(self):
+        codecs.StreamReader.reset(self)
+        try:
+            del self.decode
+        except AttributeError:
+            pass
+
+    def decode(self, input, errors='strict'):
+        if len(input) < 3:
+            if codecs.BOM_UTF8.startswith(input):
+                # not enough data to decide if this is a BOM
+                # => try again on the next call
+                return ("", 0)
+        elif input[:3] == codecs.BOM_UTF8:
+            self.decode = codecs.utf_8_decode
+            (output, consumed) = codecs.utf_8_decode(input[3:],errors)
+            return (output, consumed+3)
+        # (else) no BOM present
+        self.decode = codecs.utf_8_decode
+        return codecs.utf_8_decode(input, errors)
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='utf-8-sig',
+        encode=encode,
+        decode=decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/uu_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/uu_codec.py
new file mode 100644
index 0000000..4e58c62
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/uu_codec.py
@@ -0,0 +1,103 @@
+"""Python 'uu_codec' Codec - UU content transfer encoding.
+
+This codec de/encodes from bytes to bytes.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
+adapted from uu.py which was written by Lance Ellinghouse and
+modified by Jack Jansen and Fredrik Lundh.
+"""
+
+import codecs
+import binascii
+from io import BytesIO
+
+### Codec APIs
+
+def uu_encode(input, errors='strict', filename='<data>', mode=0o666):
+    assert errors == 'strict'
+    infile = BytesIO(input)
+    outfile = BytesIO()
+    read = infile.read
+    write = outfile.write
+
+    # Remove newline chars from filename
+    filename = filename.replace('\n','\\n')
+    filename = filename.replace('\r','\\r')
+
+    # Encode
+    write(('begin %o %s\n' % (mode & 0o777, filename)).encode('ascii'))
+    chunk = read(45)
+    while chunk:
+        write(binascii.b2a_uu(chunk))
+        chunk = read(45)
+    write(b' \nend\n')
+
+    return (outfile.getvalue(), len(input))
+
+def uu_decode(input, errors='strict'):
+    assert errors == 'strict'
+    infile = BytesIO(input)
+    outfile = BytesIO()
+    readline = infile.readline
+    write = outfile.write
+
+    # Find start of encoded data
+    while 1:
+        s = readline()
+        if not s:
+            raise ValueError('Missing "begin" line in input data')
+        if s[:5] == b'begin':
+            break
+
+    # Decode
+    while True:
+        s = readline()
+        if not s or s == b'end\n':
+            break
+        try:
+            data = binascii.a2b_uu(s)
+        except binascii.Error as v:
+            # Workaround for broken uuencoders by /Fredrik Lundh
+            nbytes = (((s[0]-32) & 63) * 4 + 5) // 3
+            data = binascii.a2b_uu(s[:nbytes])
+            #sys.stderr.write("Warning: %s\n" % str(v))
+        write(data)
+    if not s:
+        raise ValueError('Truncated input data')
+
+    return (outfile.getvalue(), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return uu_encode(input, errors)
+
+    def decode(self, input, errors='strict'):
+        return uu_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def encode(self, input, final=False):
+        return uu_encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def decode(self, input, final=False):
+        return uu_decode(input, self.errors)[0]
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='uu',
+        encode=uu_encode,
+        decode=uu_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+        _is_text_encoding=False,
+    )
diff --git a/linux-x64/clang/python3/lib/python3.9/encodings/zlib_codec.py b/linux-x64/clang/python3/lib/python3.9/encodings/zlib_codec.py
new file mode 100644
index 0000000..95908a4
--- /dev/null
+++ b/linux-x64/clang/python3/lib/python3.9/encodings/zlib_codec.py
@@ -0,0 +1,77 @@
+"""Python 'zlib_codec' Codec - zlib compression encoding.
+
+This codec de/encodes from bytes to bytes.
+
+Written by Marc-Andre Lemburg (mal@lemburg.com).
+"""
+
+import codecs
+import zlib # this codec needs the optional zlib module !
+
+### Codec APIs
+
+def zlib_encode(input, errors='strict'):
+    assert errors == 'strict'
+    return (zlib.compress(input), len(input))
+
+def zlib_decode(input, errors='strict'):
+    assert errors == 'strict'
+    return (zlib.decompress(input), len(input))
+
+class Codec(codecs.Codec):
+    def encode(self, input, errors='strict'):
+        return zlib_encode(input, errors)
+    def decode(self, input, errors='strict'):
+        return zlib_decode(input, errors)
+
+class IncrementalEncoder(codecs.IncrementalEncoder):
+    def __init__(self, errors='strict'):
+        assert errors == 'strict'
+        self.errors = errors
+        self.compressobj = zlib.compressobj()
+
+    def encode(self, input, final=False):
+        if final:
+            c = self.compressobj.compress(input)
+            return c + self.compressobj.flush()
+        else:
+            return self.compressobj.compress(input)
+
+    def reset(self):
+        self.compressobj = zlib.compressobj()
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+    def __init__(self, errors='strict'):
+        assert errors == 'strict'
+        self.errors = errors
+        self.decompressobj = zlib.decompressobj()
+
+    def decode(self, input, final=False):
+        if final:
+            c = self.decompressobj.decompress(input)
+            return c + self.decompressobj.flush()
+        else:
+            return self.decompressobj.decompress(input)
+
+    def reset(self):
+        self.decompressobj = zlib.decompressobj()
+
+class StreamWriter(Codec, codecs.StreamWriter):
+    charbuffertype = bytes
+
+class StreamReader(Codec, codecs.StreamReader):
+    charbuffertype = bytes
+
+### encodings module API
+
+def getregentry():
+    return codecs.CodecInfo(
+        name='zlib',
+        encode=zlib_encode,
+        decode=zlib_decode,
+        incrementalencoder=IncrementalEncoder,
+        incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
+        _is_text_encoding=False,
+    )