# ***************************************************************************
# *
# *   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 44B014E5.RPMAP100 and 14E544B0.TPMAP100
#
<code_set_name>               "ibm-5349_P100-1998"
<char_name_mask>              "AXXXX"
<mb_cur_max>                  1
<mb_cur_min>                  1
<uconv_class>                 "SBCS"
<subchar>                     \x1A
<icu:charsetFamily>           "ASCII"
<icu:alias>                   "ibm-5349_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
<U0081> \x81 |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
<U00A3> \xA3 |0
<U00A4> \xA4 |0
<U00A5> \xA5 |0
<U00A6> \xA6 |0
<U00A7> \xA7 |0
<U00A8> \xA8 |0
<U00A9> \xA9 |0
<U00AA> \xAA |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
<U00BB> \xBB |0
<U00BD> \xBD |0
<U0192> \x83 |0
<U0384> \xB4 |0
<U0385> \xA1 |0
<U0386> \xA2 |0
<U0388> \xB8 |0
<U0389> \xB9 |0
<U038A> \xBA |0
<U038C> \xBC |0
<U038E> \xBE |0
<U038F> \xBF |0
<U0390> \xC0 |0
<U0391> \xC1 |0
<U0392> \xC2 |0
<U0393> \xC3 |0
<U0394> \xC4 |0
<U0395> \xC5 |0
<U0396> \xC6 |0
<U0397> \xC7 |0
<U0398> \xC8 |0
<U0399> \xC9 |0
<U039A> \xCA |0
<U039B> \xCB |0
<U039C> \xCC |0
<U039D> \xCD |0
<U039E> \xCE |0
<U039F> \xCF |0
<U03A0> \xD0 |0
<U03A1> \xD1 |0
<U03A3> \xD3 |0
<U03A4> \xD4 |0
<U03A5> \xD5 |0
<U03A6> \xD6 |0
<U03A7> \xD7 |0
<U03A8> \xD8 |0
<U03A9> \xD9 |0
<U03AA> \xDA |0
<U03AB> \xDB |0
<U03AC> \xDC |0
<U03AD> \xDD |0
<U03AE> \xDE |0
<U03AF> \xDF |0
<U03B0> \xE0 |0
<U03B1> \xE1 |0
<U03B2> \xE2 |0
<U03B3> \xE3 |0
<U03B4> \xE4 |0
<U03B5> \xE5 |0
<U03B6> \xE6 |0
<U03B7> \xE7 |0
<U03B8> \xE8 |0
<U03B9> \xE9 |0
<U03BA> \xEA |0
<U03BB> \xEB |0
<U03BC> \xEC |0
<U03BD> \xED |0
<U03BE> \xEE |0
<U03BF> \xEF |0
<U03C0> \xF0 |0
<U03C1> \xF1 |0
<U03C2> \xF2 |0
<U03C3> \xF3 |0
<U03C4> \xF4 |0
<U03C5> \xF5 |0
<U03C6> \xF6 |0
<U03C7> \xF7 |0
<U03C8> \xF8 |0
<U03C9> \xF9 |0
<U03CA> \xFA |0
<U03CB> \xFB |0
<U03CC> \xFC |0
<U03CD> \xFD |0
<U03CE> \xFE |0
<U03D5> \xF6 |1
<U2013> \x96 |0
<U2014> \x97 |0
<U2015> \xAF |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
<U20AC> \x80 |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
