# ***************************************************************************
# *
# *   Copyright (C) 1995-2002, International Business Machines
# *   Corporation and others.  All Rights Reserved.
# *
# ***************************************************************************
#
# File created by rptp2ucm (compiled on Dec  3 2002)
# from source files 34B004E9.RPMAP100 and 04E934B0.TPMAP100
#
<code_set_name>               "ibm-1257_P100-1995"
<char_name_mask>              "AXXXX"
<mb_cur_max>                  1
<mb_cur_min>                  1
<uconv_class>                 "SBCS"
<subchar>                     \x1A
<icu:charsetFamily>           "ASCII"
<icu:alias>                   "ibm-1257_STD"

CHARMAP
<U0000> \x00 |0
<U0001> \x01 |0
<U0002> \x02 |0
<U0003> \x03 |0
<U0004> \x04 |0
<U0005> \x05 |0
<U0006> \x06 |0
<U0007> \x07 |0
<U0008> \x08 |0
<U0009> \x09 |0
<U000A> \x0A |0
<U000B> \x0B |0
<U000C> \x0C |0
<U000D> \x0D |0
<U000E> \x0E |0
<U000F> \x0F |0
<U0010> \x10 |0
<U0011> \x11 |0
<U0012> \x12 |0
<U0013> \x13 |0
<U0014> \x14 |0
<U0015> \x15 |0
<U0016> \x16 |0
<U0017> \x17 |0
<U0018> \x18 |0
<U0019> \x19 |0
<U001A> \x1A |0
<U001B> \x1B |0
<U001C> \x1C |0
<U001D> \x1D |0
<U001E> \x1E |0
<U001F> \x1F |0
<U0020> \x20 |0
<U0021> \x21 |0
<U0022> \x22 |0
<U0023> \x23 |0
<U0024> \x24 |0
<U0025> \x25 |0
<U0026> \x26 |0
<U0027> \x27 |0
<U0028> \x28 |0
<U0029> \x29 |0
<U002A> \x2A |0
<U002B> \x2B |0
<U002C> \x2C |0
<U002D> \x2D |0
<U002E> \x2E |0
<U002F> \x2F |0
<U0030> \x30 |0
<U0031> \x31 |0
<U0032> \x32 |0
<U0033> \x33 |0
<U0034> \x34 |0
<U0035> \x35 |0
<U0036> \x36 |0
<U0037> \x37 |0
<U0038> \x38 |0
<U0039> \x39 |0
<U003A> \x3A |0
<U003B> \x3B |0
<U003C> \x3C |0
<U003D> \x3D |0
<U003E> \x3E |0
<U003F> \x3F |0
<U0040> \x40 |0
<U0041> \x41 |0
<U0042> \x42 |0
<U0043> \x43 |0
<U0044> \x44 |0
<U0045> \x45 |0
<U0046> \x46 |0
<U0047> \x47 |0
<U0048> \x48 |0
<U0049> \x49 |0
<U004A> \x4A |0
<U004B> \x4B |0
<U004C> \x4C |0
<U004D> \x4D |0
<U004E> \x4E |0
<U004F> \x4F |0
<U0050> \x50 |0
<U0051> \x51 |0
<U0052> \x52 |0
<U0053> \x53 |0
<U0054> \x54 |0
<U0055> \x55 |0
<U0056> \x56 |0
<U0057> \x57 |0
<U0058> \x58 |0
<U0059> \x59 |0
<U005A> \x5A |0
<U005B> \x5B |0
<U005C> \x5C |0
<U005D> \x5D |0
<U005E> \x5E |0
<U005F> \x5F |0
<U0060> \x60 |0
<U0061> \x61 |0
<U0062> \x62 |0
<U0063> \x63 |0
<U0064> \x64 |0
<U0065> \x65 |0
<U0066> \x66 |0
<U0067> \x67 |0
<U0068> \x68 |0
<U0069> \x69 |0
<U006A> \x6A |0
<U006B> \x6B |0
<U006C> \x6C |0
<U006D> \x6D |0
<U006E> \x6E |0
<U006F> \x6F |0
<U0070> \x70 |0
<U0071> \x71 |0
<U0072> \x72 |0
<U0073> \x73 |0
<U0074> \x74 |0
<U0075> \x75 |0
<U0076> \x76 |0
<U0077> \x77 |0
<U0078> \x78 |0
<U0079> \x79 |0
<U007A> \x7A |0
<U007B> \x7B |0
<U007C> \x7C |0
<U007D> \x7D |0
<U007E> \x7E |0
<U007F> \x7F |0
<U0080> \x80 |0
<U0081> \x81 |0
<U0083> \x83 |0
<U0088> \x88 |0
<U008A> \x8A |0
<U008C> \x8C |0
<U008D> \x8D |0
<U008E> \x8E |0
<U008F> \x8F |0
<U0090> \x90 |0
<U0098> \x98 |0
<U009A> \x9A |0
<U009C> \x9C |0
<U009D> \x9D |0
<U009E> \x9E |0
<U009F> \x9F |0
<U00A0> \xA0 |0
<U00A2> \xA2 |0
<U00A3> \xA3 |0
<U00A4> \xA4 |0
<U00A6> \xA6 |0
<U00A7> \xA7 |0
<U00A9> \xA9 |0
<U00AB> \xAB |0
<U00AC> \xAC |0
<U00AD> \xAD |0
<U00AE> \xAE |0
<U00B0> \xB0 |0
<U00B1> \xB1 |0
<U00B2> \xB2 |0
<U00B3> \xB3 |0
<U00B5> \xB5 |0
<U00B6> \xB6 |0
<U00B7> \xB7 |0
<U00B9> \xB9 |0
<U00BB> \xBB |0
<U00BC> \xBC |0
<U00BD> \xBD |0
<U00BE> \xBE |0
<U00C4> \xC4 |0
<U00C5> \xC5 |0
<U00C6> \xAF |0
<U00C9> \xC9 |0
<U00D3> \xD3 |0
<U00D5> \xD5 |0
<U00D6> \xD6 |0
<U00D7> \xD7 |0
<U00D8> \xA8 |0
<U00DC> \xDC |0
<U00DF> \xDF |0
<U00E4> \xE4 |0
<U00E5> \xE5 |0
<U00E6> \xBF |0
<U00E9> \xE9 |0
<U00F3> \xF3 |0
<U00F5> \xF5 |0
<U00F6> \xF6 |0
<U00F7> \xF7 |0
<U00F8> \xB8 |0
<U00FC> \xFC |0
<U0100> \xC2 |0
<U0101> \xE2 |0
<U0104> \xC0 |0
<U0105> \xE0 |0
<U0106> \xC3 |0
<U0107> \xE3 |0
<U010C> \xC8 |0
<U010D> \xE8 |0
<U0112> \xC7 |0
<U0113> \xE7 |0
<U0116> \xCB |0
<U0117> \xEB |0
<U0118> \xC6 |0
<U0119> \xE6 |0
<U0122> \xCC |0
<U0123> \xEC |0
<U012A> \xCE |0
<U012B> \xEE |0
<U012E> \xC1 |0
<U012F> \xE1 |0
<U0136> \xCD |0
<U0137> \xED |0
<U013B> \xCF |0
<U013C> \xEF |0
<U0141> \xD9 |0
<U0142> \xF9 |0
<U0143> \xD1 |0
<U0144> \xF1 |0
<U0145> \xD2 |0
<U0146> \xF2 |0
<U014C> \xD4 |0
<U014D> \xF4 |0
<U0156> \xAA |0
<U0157> \xBA |0
<U015A> \xDA |0
<U015B> \xFA |0
<U0160> \xD0 |0
<U0161> \xF0 |0
<U016A> \xDB |0
<U016B> \xFB |0
<U0172> \xD8 |0
<U0173> \xF8 |0
<U0179> \xCA |0
<U017A> \xEA |0
<U017B> \xDD |0
<U017C> \xFD |0
<U017D> \xDE |0
<U017E> \xFE |0
<U2013> \x96 |0
<U2014> \x97 |0
<U2018> \x91 |0
<U2019> \x92 |0
<U201A> \x82 |0
<U201C> \x93 |0
<U201D> \x94 |0
<U201E> \x84 |0
<U2020> \x86 |0
<U2021> \x87 |0
<U2022> \x95 |0
<U2026> \x85 |0
<U2030> \x89 |0
<U2039> \x8B |0
<U203A> \x9B |0
<U2122> \x99 |0
<UFF01> \x21 |1
<UFF02> \x22 |1
<UFF03> \x23 |1
<UFF04> \x24 |1
<UFF05> \x25 |1
<UFF06> \x26 |1
<UFF07> \x27 |1
<UFF08> \x28 |1
<UFF09> \x29 |1
<UFF0A> \x2A |1
<UFF0B> \x2B |1
<UFF0C> \x2C |1
<UFF0D> \x2D |1
<UFF0E> \x2E |1
<UFF0F> \x2F |1
<UFF10> \x30 |1
<UFF11> \x31 |1
<UFF12> \x32 |1
<UFF13> \x33 |1
<UFF14> \x34 |1
<UFF15> \x35 |1
<UFF16> \x36 |1
<UFF17> \x37 |1
<UFF18> \x38 |1
<UFF19> \x39 |1
<UFF1A> \x3A |1
<UFF1B> \x3B |1
<UFF1C> \x3C |1
<UFF1D> \x3D |1
<UFF1E> \x3E |1
<UFF1F> \x3F |1
<UFF20> \x40 |1
<UFF21> \x41 |1
<UFF22> \x42 |1
<UFF23> \x43 |1
<UFF24> \x44 |1
<UFF25> \x45 |1
<UFF26> \x46 |1
<UFF27> \x47 |1
<UFF28> \x48 |1
<UFF29> \x49 |1
<UFF2A> \x4A |1
<UFF2B> \x4B |1
<UFF2C> \x4C |1
<UFF2D> \x4D |1
<UFF2E> \x4E |1
<UFF2F> \x4F |1
<UFF30> \x50 |1
<UFF31> \x51 |1
<UFF32> \x52 |1
<UFF33> \x53 |1
<UFF34> \x54 |1
<UFF35> \x55 |1
<UFF36> \x56 |1
<UFF37> \x57 |1
<UFF38> \x58 |1
<UFF39> \x59 |1
<UFF3A> \x5A |1
<UFF3B> \x5B |1
<UFF3C> \x5C |1
<UFF3D> \x5D |1
<UFF3E> \x5E |1
<UFF3F> \x5F |1
<UFF40> \x60 |1
<UFF41> \x61 |1
<UFF42> \x62 |1
<UFF43> \x63 |1
<UFF44> \x64 |1
<UFF45> \x65 |1
<UFF46> \x66 |1
<UFF47> \x67 |1
<UFF48> \x68 |1
<UFF49> \x69 |1
<UFF4A> \x6A |1
<UFF4B> \x6B |1
<UFF4C> \x6C |1
<UFF4D> \x6D |1
<UFF4E> \x6E |1
<UFF4F> \x6F |1
<UFF50> \x70 |1
<UFF51> \x71 |1
<UFF52> \x72 |1
<UFF53> \x73 |1
<UFF54> \x74 |1
<UFF55> \x75 |1
<UFF56> \x76 |1
<UFF57> \x77 |1
<UFF58> \x78 |1
<UFF59> \x79 |1
<UFF5A> \x7A |1
<UFF5B> \x7B |1
<UFF5C> \x7C |1
<UFF5D> \x7D |1
<UFF5E> \x7E |1
END CHARMAP
