1*16d86563SAlexander Pyhalov/* 2*16d86563SAlexander Pyhalov * CDDL HEADER START 3*16d86563SAlexander Pyhalov * 4*16d86563SAlexander Pyhalov * The contents of this file are subject to the terms of the 5*16d86563SAlexander Pyhalov * Common Development and Distribution License (the "License"). 6*16d86563SAlexander Pyhalov * You may not use this file except in compliance with the License. 7*16d86563SAlexander Pyhalov * 8*16d86563SAlexander Pyhalov * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE 9*16d86563SAlexander Pyhalov * or http://www.opensolaris.org/os/licensing. 10*16d86563SAlexander Pyhalov * See the License for the specific language governing permissions 11*16d86563SAlexander Pyhalov * and limitations under the License. 12*16d86563SAlexander Pyhalov * 13*16d86563SAlexander Pyhalov * When distributing Covered Code, include this CDDL HEADER in each 14*16d86563SAlexander Pyhalov * file and include the License file at src/OPENSOLARIS.LICENSE. 15*16d86563SAlexander Pyhalov * If applicable, add the following below this CDDL HEADER, with the 16*16d86563SAlexander Pyhalov * fields enclosed by brackets "[]" replaced with your own identifying 17*16d86563SAlexander Pyhalov * information: Portions Copyright [yyyy] [name of copyright owner] 18*16d86563SAlexander Pyhalov * 19*16d86563SAlexander Pyhalov * CDDL HEADER END 20*16d86563SAlexander Pyhalov */ 21*16d86563SAlexander Pyhalov/* 22*16d86563SAlexander Pyhalov * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23*16d86563SAlexander Pyhalov * Use is subject to license terms. 24*16d86563SAlexander Pyhalov */ 25*16d86563SAlexander Pyhalov/* 26*16d86563SAlexander Pyhalov * ICU License - ICU 1.8.1 and later 27*16d86563SAlexander Pyhalov * 28*16d86563SAlexander Pyhalov * COPYRIGHT AND PERMISSION NOTICE 29*16d86563SAlexander Pyhalov * 30*16d86563SAlexander Pyhalov * Copyright (c) 1995-2005 International Business Machines Corporation and others 31*16d86563SAlexander Pyhalov * All rights reserved. 32*16d86563SAlexander Pyhalov * 33*16d86563SAlexander Pyhalov * Permission is hereby granted, free of charge, to any person obtaining a 34*16d86563SAlexander Pyhalov * copy of this software and associated documentation files (the 35*16d86563SAlexander Pyhalov * "Software"), to deal in the Software without restriction, including 36*16d86563SAlexander Pyhalov * without limitation the rights to use, copy, modify, merge, publish, 37*16d86563SAlexander Pyhalov * distribute, and/or sell copies of the Software, and to permit persons 38*16d86563SAlexander Pyhalov * to whom the Software is furnished to do so, provided that the above 39*16d86563SAlexander Pyhalov * copyright notice(s) and this permission notice appear in all copies of 40*16d86563SAlexander Pyhalov * the Software and that both the above copyright notice(s) and this 41*16d86563SAlexander Pyhalov * permission notice appear in supporting documentation. 42*16d86563SAlexander Pyhalov * 43*16d86563SAlexander Pyhalov * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 44*16d86563SAlexander Pyhalov * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 45*16d86563SAlexander Pyhalov * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 46*16d86563SAlexander Pyhalov * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 47*16d86563SAlexander Pyhalov * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 48*16d86563SAlexander Pyhalov * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING 49*16d86563SAlexander Pyhalov * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 50*16d86563SAlexander Pyhalov * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 51*16d86563SAlexander Pyhalov * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 52*16d86563SAlexander Pyhalov * 53*16d86563SAlexander Pyhalov * Except as contained in this notice, the name of a copyright holder 54*16d86563SAlexander Pyhalov * shall not be used in advertising or otherwise to promote the sale, use 55*16d86563SAlexander Pyhalov * or other dealings in this Software without prior written authorization 56*16d86563SAlexander Pyhalov * of the copyright holder. 57*16d86563SAlexander Pyhalov * 58*16d86563SAlexander Pyhalov * -------------------------------------------------------------------------- 59*16d86563SAlexander Pyhalov * All trademarks and registered trademarks mentioned herein are the property 60*16d86563SAlexander Pyhalov * of their respective owners. 61*16d86563SAlexander Pyhalov */ 62*16d86563SAlexander Pyhalov 63*16d86563SAlexander Pyhalov#include <sys/errno.h> 64*16d86563SAlexander Pyhalovutf8%system { 65*16d86563SAlexander Pyhalov direction { 66*16d86563SAlexander Pyhalov @condition { 67*16d86563SAlexander Pyhalov inputsize >= 1; 68*16d86563SAlexander Pyhalov @between 0X0...0X7F; 69*16d86563SAlexander Pyhalov } @map { 70*16d86563SAlexander Pyhalov 0x00 0x00 // U+0000 71*16d86563SAlexander Pyhalov 0x01 0x01 // U+0001 72*16d86563SAlexander Pyhalov 0x02 0x02 // U+0002 73*16d86563SAlexander Pyhalov 0x03 0x03 // U+0003 74*16d86563SAlexander Pyhalov 0x04 0x37 // U+0004 75*16d86563SAlexander Pyhalov 0x05 0x2D // U+0005 76*16d86563SAlexander Pyhalov 0x06 0x2E // U+0006 77*16d86563SAlexander Pyhalov 0x07 0x2F // U+0007 78*16d86563SAlexander Pyhalov 0x08 0x16 // U+0008 79*16d86563SAlexander Pyhalov 0x09 0x05 // U+0009 80*16d86563SAlexander Pyhalov 0x0A 0x25 // U+000a 81*16d86563SAlexander Pyhalov 0x0B 0x0B // U+000b 82*16d86563SAlexander Pyhalov 0x0C 0x0C // U+000c 83*16d86563SAlexander Pyhalov 0x0D 0x0D // U+000d 84*16d86563SAlexander Pyhalov 0x0E 0x0E // U+000e 85*16d86563SAlexander Pyhalov 0x0F 0x0F // U+000f 86*16d86563SAlexander Pyhalov 0x10 0x10 // U+0010 87*16d86563SAlexander Pyhalov 0x11 0x11 // U+0011 88*16d86563SAlexander Pyhalov 0x12 0x12 // U+0012 89*16d86563SAlexander Pyhalov 0x13 0x13 // U+0013 90*16d86563SAlexander Pyhalov 0x14 0x3C // U+0014 91*16d86563SAlexander Pyhalov 0x15 0x3D // U+0015 92*16d86563SAlexander Pyhalov 0x16 0x32 // U+0016 93*16d86563SAlexander Pyhalov 0x17 0x26 // U+0017 94*16d86563SAlexander Pyhalov 0x18 0x18 // U+0018 95*16d86563SAlexander Pyhalov 0x19 0x19 // U+0019 96*16d86563SAlexander Pyhalov 0x1A 0x3F // U+001a 97*16d86563SAlexander Pyhalov 0x1B 0x27 // U+001b 98*16d86563SAlexander Pyhalov 0x1C 0x1C // U+001c 99*16d86563SAlexander Pyhalov 0x1D 0x1D // U+001d 100*16d86563SAlexander Pyhalov 0x1E 0x1E // U+001e 101*16d86563SAlexander Pyhalov 0x1F 0x1F // U+001f 102*16d86563SAlexander Pyhalov 0x20 0x40 // U+0020 103*16d86563SAlexander Pyhalov 0x21 0x4F // U+0021 104*16d86563SAlexander Pyhalov 0x22 0x7F // U+0022 105*16d86563SAlexander Pyhalov 0x23 0x7B // U+0023 106*16d86563SAlexander Pyhalov 0x24 0x5B // U+0024 107*16d86563SAlexander Pyhalov 0x25 0x6C // U+0025 108*16d86563SAlexander Pyhalov 0x26 0x50 // U+0026 109*16d86563SAlexander Pyhalov 0x27 0x7D // U+0027 110*16d86563SAlexander Pyhalov 0x28 0x4D // U+0028 111*16d86563SAlexander Pyhalov 0x29 0x5D // U+0029 112*16d86563SAlexander Pyhalov 0x2A 0x5C // U+002a 113*16d86563SAlexander Pyhalov 0x2B 0x4E // U+002b 114*16d86563SAlexander Pyhalov 0x2C 0x6B // U+002c 115*16d86563SAlexander Pyhalov 0x2D 0x60 // U+002d 116*16d86563SAlexander Pyhalov 0x2E 0x4B // U+002e 117*16d86563SAlexander Pyhalov 0x2F 0x61 // U+002f 118*16d86563SAlexander Pyhalov 0x30 0xF0 // U+0030 119*16d86563SAlexander Pyhalov 0x31 0xF1 // U+0031 120*16d86563SAlexander Pyhalov 0x32 0xF2 // U+0032 121*16d86563SAlexander Pyhalov 0x33 0xF3 // U+0033 122*16d86563SAlexander Pyhalov 0x34 0xF4 // U+0034 123*16d86563SAlexander Pyhalov 0x35 0xF5 // U+0035 124*16d86563SAlexander Pyhalov 0x36 0xF6 // U+0036 125*16d86563SAlexander Pyhalov 0x37 0xF7 // U+0037 126*16d86563SAlexander Pyhalov 0x38 0xF8 // U+0038 127*16d86563SAlexander Pyhalov 0x39 0xF9 // U+0039 128*16d86563SAlexander Pyhalov 0x3A 0x7A // U+003a 129*16d86563SAlexander Pyhalov 0x3B 0x5E // U+003b 130*16d86563SAlexander Pyhalov 0x3C 0x4C // U+003c 131*16d86563SAlexander Pyhalov 0x3D 0x7E // U+003d 132*16d86563SAlexander Pyhalov 0x3E 0x6E // U+003e 133*16d86563SAlexander Pyhalov 0x3F 0x6F // U+003f 134*16d86563SAlexander Pyhalov 0x40 0x7C // U+0040 135*16d86563SAlexander Pyhalov 0x41 0xC1 // U+0041 136*16d86563SAlexander Pyhalov 0x42 0xC2 // U+0042 137*16d86563SAlexander Pyhalov 0x43 0xC3 // U+0043 138*16d86563SAlexander Pyhalov 0x44 0xC4 // U+0044 139*16d86563SAlexander Pyhalov 0x45 0xC5 // U+0045 140*16d86563SAlexander Pyhalov 0x46 0xC6 // U+0046 141*16d86563SAlexander Pyhalov 0x47 0xC7 // U+0047 142*16d86563SAlexander Pyhalov 0x48 0xC8 // U+0048 143*16d86563SAlexander Pyhalov 0x49 0xC9 // U+0049 144*16d86563SAlexander Pyhalov 0x4A 0xD1 // U+004a 145*16d86563SAlexander Pyhalov 0x4B 0xD2 // U+004b 146*16d86563SAlexander Pyhalov 0x4C 0xD3 // U+004c 147*16d86563SAlexander Pyhalov 0x4D 0xD4 // U+004d 148*16d86563SAlexander Pyhalov 0x4E 0xD5 // U+004e 149*16d86563SAlexander Pyhalov 0x4F 0xD6 // U+004f 150*16d86563SAlexander Pyhalov 0x50 0xD7 // U+0050 151*16d86563SAlexander Pyhalov 0x51 0xD8 // U+0051 152*16d86563SAlexander Pyhalov 0x52 0xD9 // U+0052 153*16d86563SAlexander Pyhalov 0x53 0xE2 // U+0053 154*16d86563SAlexander Pyhalov 0x54 0xE3 // U+0054 155*16d86563SAlexander Pyhalov 0x55 0xE4 // U+0055 156*16d86563SAlexander Pyhalov 0x56 0xE5 // U+0056 157*16d86563SAlexander Pyhalov 0x57 0xE6 // U+0057 158*16d86563SAlexander Pyhalov 0x58 0xE7 // U+0058 159*16d86563SAlexander Pyhalov 0x59 0xE8 // U+0059 160*16d86563SAlexander Pyhalov 0x5A 0xE9 // U+005a 161*16d86563SAlexander Pyhalov 0x5B 0x4A // U+005b 162*16d86563SAlexander Pyhalov 0x5C 0xE0 // U+005c 163*16d86563SAlexander Pyhalov 0x5D 0x5A // U+005d 164*16d86563SAlexander Pyhalov 0x5E 0x5F // U+005e 165*16d86563SAlexander Pyhalov 0x5F 0x6D // U+005f 166*16d86563SAlexander Pyhalov 0x60 0x79 // U+0060 167*16d86563SAlexander Pyhalov 0x61 0x81 // U+0061 168*16d86563SAlexander Pyhalov 0x62 0x82 // U+0062 169*16d86563SAlexander Pyhalov 0x63 0x83 // U+0063 170*16d86563SAlexander Pyhalov 0x64 0x84 // U+0064 171*16d86563SAlexander Pyhalov 0x65 0x85 // U+0065 172*16d86563SAlexander Pyhalov 0x66 0x86 // U+0066 173*16d86563SAlexander Pyhalov 0x67 0x87 // U+0067 174*16d86563SAlexander Pyhalov 0x68 0x88 // U+0068 175*16d86563SAlexander Pyhalov 0x69 0x89 // U+0069 176*16d86563SAlexander Pyhalov 0x6A 0x91 // U+006a 177*16d86563SAlexander Pyhalov 0x6B 0x92 // U+006b 178*16d86563SAlexander Pyhalov 0x6C 0x93 // U+006c 179*16d86563SAlexander Pyhalov 0x6D 0x94 // U+006d 180*16d86563SAlexander Pyhalov 0x6E 0x95 // U+006e 181*16d86563SAlexander Pyhalov 0x6F 0x96 // U+006f 182*16d86563SAlexander Pyhalov 0x70 0x97 // U+0070 183*16d86563SAlexander Pyhalov 0x71 0x98 // U+0071 184*16d86563SAlexander Pyhalov 0x72 0x99 // U+0072 185*16d86563SAlexander Pyhalov 0x73 0xA2 // U+0073 186*16d86563SAlexander Pyhalov 0x74 0xA3 // U+0074 187*16d86563SAlexander Pyhalov 0x75 0xA4 // U+0075 188*16d86563SAlexander Pyhalov 0x76 0xA5 // U+0076 189*16d86563SAlexander Pyhalov 0x77 0xA6 // U+0077 190*16d86563SAlexander Pyhalov 0x78 0xA7 // U+0078 191*16d86563SAlexander Pyhalov 0x79 0xA8 // U+0079 192*16d86563SAlexander Pyhalov 0x7A 0xA9 // U+007a 193*16d86563SAlexander Pyhalov 0x7B 0xC0 // U+007b 194*16d86563SAlexander Pyhalov 0x7C 0x6A // U+007c 195*16d86563SAlexander Pyhalov 0x7D 0xD0 // U+007d 196*16d86563SAlexander Pyhalov 0x7E 0xA1 // U+007e 197*16d86563SAlexander Pyhalov 0x7F 0x07 // U+007f 198*16d86563SAlexander Pyhalov default 0x6f 199*16d86563SAlexander Pyhalov }; 200*16d86563SAlexander Pyhalov @condition { 201*16d86563SAlexander Pyhalov inputsize <= 1; 202*16d86563SAlexander Pyhalov @between 0XC0...0XFD; 203*16d86563SAlexander Pyhalov } @operation { 204*16d86563SAlexander Pyhalov error EINVAL; 205*16d86563SAlexander Pyhalov }; 206*16d86563SAlexander Pyhalov @condition { 207*16d86563SAlexander Pyhalov inputsize >= 2; 208*16d86563SAlexander Pyhalov @between 0XC080...0XDFBF; 209*16d86563SAlexander Pyhalov } @map { 210*16d86563SAlexander Pyhalov 0xC280 0x20 // U+0080 211*16d86563SAlexander Pyhalov 0xC281 0x21 // U+0081 212*16d86563SAlexander Pyhalov 0xC282 0x22 // U+0082 213*16d86563SAlexander Pyhalov 0xC283 0x23 // U+0083 214*16d86563SAlexander Pyhalov 0xC284 0x24 // U+0084 215*16d86563SAlexander Pyhalov 0xC285 0x15 // U+0085 216*16d86563SAlexander Pyhalov 0xC286 0x06 // U+0086 217*16d86563SAlexander Pyhalov 0xC287 0x17 // U+0087 218*16d86563SAlexander Pyhalov 0xC288 0x28 // U+0088 219*16d86563SAlexander Pyhalov 0xC289 0x29 // U+0089 220*16d86563SAlexander Pyhalov 0xC28A 0x2A // U+008a 221*16d86563SAlexander Pyhalov 0xC28B 0x2B // U+008b 222*16d86563SAlexander Pyhalov 0xC28C 0x2C // U+008c 223*16d86563SAlexander Pyhalov 0xC28D 0x09 // U+008d 224*16d86563SAlexander Pyhalov 0xC28E 0x0A // U+008e 225*16d86563SAlexander Pyhalov 0xC28F 0x1B // U+008f 226*16d86563SAlexander Pyhalov 0xC290 0x30 // U+0090 227*16d86563SAlexander Pyhalov 0xC291 0x31 // U+0091 228*16d86563SAlexander Pyhalov 0xC292 0x1A // U+0092 229*16d86563SAlexander Pyhalov 0xC293 0x33 // U+0093 230*16d86563SAlexander Pyhalov 0xC294 0x34 // U+0094 231*16d86563SAlexander Pyhalov 0xC295 0x35 // U+0095 232*16d86563SAlexander Pyhalov 0xC296 0x36 // U+0096 233*16d86563SAlexander Pyhalov 0xC297 0x08 // U+0097 234*16d86563SAlexander Pyhalov 0xC298 0x38 // U+0098 235*16d86563SAlexander Pyhalov 0xC299 0x39 // U+0099 236*16d86563SAlexander Pyhalov 0xC29A 0x3A // U+009a 237*16d86563SAlexander Pyhalov 0xC29B 0x3B // U+009b 238*16d86563SAlexander Pyhalov 0xC29C 0x04 // U+009c 239*16d86563SAlexander Pyhalov 0xC29D 0x14 // U+009d 240*16d86563SAlexander Pyhalov 0xC29E 0x3E // U+009e 241*16d86563SAlexander Pyhalov 0xC29F 0xFF // U+009f 242*16d86563SAlexander Pyhalov 0xC2A0 0x41 // U+00a0 243*16d86563SAlexander Pyhalov 0xC2A4 0x9F // U+00a4 244*16d86563SAlexander Pyhalov 0xC2A7 0xB5 // U+00a7 245*16d86563SAlexander Pyhalov 0xC2A8 0xBD // U+00a8 246*16d86563SAlexander Pyhalov 0xC2AD 0xCA // U+00ad 247*16d86563SAlexander Pyhalov 0xC2B0 0x90 // U+00b0 248*16d86563SAlexander Pyhalov 0xC2B4 0xBE // U+00b4 249*16d86563SAlexander Pyhalov 0xC2B8 0x9D // U+00b8 250*16d86563SAlexander Pyhalov 0xC381 0x65 // U+00c1 251*16d86563SAlexander Pyhalov 0xC382 0x62 // U+00c2 252*16d86563SAlexander Pyhalov 0xC384 0x63 // U+00c4 253*16d86563SAlexander Pyhalov 0xC387 0x68 // U+00c7 254*16d86563SAlexander Pyhalov 0xC389 0x71 // U+00c9 255*16d86563SAlexander Pyhalov 0xC38B 0x73 // U+00cb 256*16d86563SAlexander Pyhalov 0xC38D 0x75 // U+00cd 257*16d86563SAlexander Pyhalov 0xC38E 0x76 // U+00ce 258*16d86563SAlexander Pyhalov 0xC393 0xEE // U+00d3 259*16d86563SAlexander Pyhalov 0xC394 0xEB // U+00d4 260*16d86563SAlexander Pyhalov 0xC396 0xEC // U+00d6 261*16d86563SAlexander Pyhalov 0xC397 0xBF // U+00d7 262*16d86563SAlexander Pyhalov 0xC39A 0xFE // U+00da 263*16d86563SAlexander Pyhalov 0xC39C 0xFC // U+00dc 264*16d86563SAlexander Pyhalov 0xC39D 0xAD // U+00dd 265*16d86563SAlexander Pyhalov 0xC39F 0x59 // U+00df 266*16d86563SAlexander Pyhalov 0xC3A1 0x45 // U+00e1 267*16d86563SAlexander Pyhalov 0xC3A2 0x42 // U+00e2 268*16d86563SAlexander Pyhalov 0xC3A4 0x43 // U+00e4 269*16d86563SAlexander Pyhalov 0xC3A7 0x48 // U+00e7 270*16d86563SAlexander Pyhalov 0xC3A9 0x51 // U+00e9 271*16d86563SAlexander Pyhalov 0xC3AB 0x53 // U+00eb 272*16d86563SAlexander Pyhalov 0xC3AD 0x55 // U+00ed 273*16d86563SAlexander Pyhalov 0xC3AE 0x56 // U+00ee 274*16d86563SAlexander Pyhalov 0xC3B3 0xCE // U+00f3 275*16d86563SAlexander Pyhalov 0xC3B4 0xCB // U+00f4 276*16d86563SAlexander Pyhalov 0xC3B6 0xCC // U+00f6 277*16d86563SAlexander Pyhalov 0xC3B7 0xE1 // U+00f7 278*16d86563SAlexander Pyhalov 0xC3BA 0xDE // U+00fa 279*16d86563SAlexander Pyhalov 0xC3BC 0xDC // U+00fc 280*16d86563SAlexander Pyhalov 0xC3BD 0x8D // U+00fd 281*16d86563SAlexander Pyhalov 0xC482 0x66 // U+0102 282*16d86563SAlexander Pyhalov 0xC483 0x46 // U+0103 283*16d86563SAlexander Pyhalov 0xC484 0xB1 // U+0104 284*16d86563SAlexander Pyhalov 0xC485 0xA0 // U+0105 285*16d86563SAlexander Pyhalov 0xC486 0x69 // U+0106 286*16d86563SAlexander Pyhalov 0xC487 0x49 // U+0107 287*16d86563SAlexander Pyhalov 0xC48C 0x67 // U+010c 288*16d86563SAlexander Pyhalov 0xC48D 0x47 // U+010d 289*16d86563SAlexander Pyhalov 0xC48E 0xFA // U+010e 290*16d86563SAlexander Pyhalov 0xC48F 0xEA // U+010f 291*16d86563SAlexander Pyhalov 0xC490 0xAC // U+0110 292*16d86563SAlexander Pyhalov 0xC491 0x8C // U+0111 293*16d86563SAlexander Pyhalov 0xC498 0x72 // U+0118 294*16d86563SAlexander Pyhalov 0xC499 0x52 // U+0119 295*16d86563SAlexander Pyhalov 0xC49A 0xDA // U+011a 296*16d86563SAlexander Pyhalov 0xC49B 0xDF // U+011b 297*16d86563SAlexander Pyhalov 0xC4B9 0x78 // U+0139 298*16d86563SAlexander Pyhalov 0xC4BA 0x58 // U+013a 299*16d86563SAlexander Pyhalov 0xC4BD 0x77 // U+013d 300*16d86563SAlexander Pyhalov 0xC4BE 0x57 // U+013e 301*16d86563SAlexander Pyhalov 0xC581 0xBA // U+0141 302*16d86563SAlexander Pyhalov 0xC582 0x9A // U+0142 303*16d86563SAlexander Pyhalov 0xC583 0xBB // U+0143 304*16d86563SAlexander Pyhalov 0xC584 0x9B // U+0144 305*16d86563SAlexander Pyhalov 0xC587 0xAB // U+0147 306*16d86563SAlexander Pyhalov 0xC588 0x8B // U+0148 307*16d86563SAlexander Pyhalov 0xC590 0xEF // U+0150 308*16d86563SAlexander Pyhalov 0xC591 0xCF // U+0151 309*16d86563SAlexander Pyhalov 0xC594 0xED // U+0154 310*16d86563SAlexander Pyhalov 0xC595 0xCD // U+0155 311*16d86563SAlexander Pyhalov 0xC598 0xAE // U+0158 312*16d86563SAlexander Pyhalov 0xC599 0x8E // U+0159 313*16d86563SAlexander Pyhalov 0xC59A 0xAA // U+015a 314*16d86563SAlexander Pyhalov 0xC59B 0x8A // U+015b 315*16d86563SAlexander Pyhalov 0xC59E 0xAF // U+015e 316*16d86563SAlexander Pyhalov 0xC59F 0x8F // U+015f 317*16d86563SAlexander Pyhalov 0xC5A0 0xBC // U+0160 318*16d86563SAlexander Pyhalov 0xC5A1 0x9C // U+0161 319*16d86563SAlexander Pyhalov 0xC5A2 0xB3 // U+0162 320*16d86563SAlexander Pyhalov 0xC5A3 0x44 // U+0163 321*16d86563SAlexander Pyhalov 0xC5A4 0xFD // U+0164 322*16d86563SAlexander Pyhalov 0xC5A5 0xDD // U+0165 323*16d86563SAlexander Pyhalov 0xC5AE 0x74 // U+016e 324*16d86563SAlexander Pyhalov 0xC5AF 0x54 // U+016f 325*16d86563SAlexander Pyhalov 0xC5B0 0xFB // U+0170 326*16d86563SAlexander Pyhalov 0xC5B1 0xDB // U+0171 327*16d86563SAlexander Pyhalov 0xC5B9 0xB9 // U+0179 328*16d86563SAlexander Pyhalov 0xC5BA 0xB7 // U+017a 329*16d86563SAlexander Pyhalov 0xC5BB 0xB4 // U+017b 330*16d86563SAlexander Pyhalov 0xC5BC 0xB2 // U+017c 331*16d86563SAlexander Pyhalov 0xC5BD 0xB8 // U+017d 332*16d86563SAlexander Pyhalov 0xC5BE 0xB6 // U+017e 333*16d86563SAlexander Pyhalov 0xCB87 0x70 // U+02c7 334*16d86563SAlexander Pyhalov 0xCB98 0x80 // U+02d8 335*16d86563SAlexander Pyhalov 0xCB99 0xB0 // U+02d9 336*16d86563SAlexander Pyhalov 0xCB9B 0x9E // U+02db 337*16d86563SAlexander Pyhalov 0xCB9D 0x64 // U+02dd 338*16d86563SAlexander Pyhalov default 0x6f 339*16d86563SAlexander Pyhalov }; // for last @map syntax 340*16d86563SAlexander Pyhalov @condition { 341*16d86563SAlexander Pyhalov inputsize <= 2; 342*16d86563SAlexander Pyhalov @between 0XE0...0XFD; 343*16d86563SAlexander Pyhalov } @operation { 344*16d86563SAlexander Pyhalov error EINVAL; 345*16d86563SAlexander Pyhalov }; 346*16d86563SAlexander Pyhalov @condition { 347*16d86563SAlexander Pyhalov inputsize >= 3; 348*16d86563SAlexander Pyhalov @between 0XE08080...0XECBFBF, 0XED8080...0XED9FBF, 0XEE8080...0XEFBFBF; 349*16d86563SAlexander Pyhalov } @operation { 350*16d86563SAlexander Pyhalov if (input == 0xefbfbe || input == 0xefbfbf) { 351*16d86563SAlexander Pyhalov error EILSEQ; 352*16d86563SAlexander Pyhalov }; 353*16d86563SAlexander Pyhalov output = 0x6f; 354*16d86563SAlexander Pyhalov discard 3; 355*16d86563SAlexander Pyhalov }; 356*16d86563SAlexander Pyhalov @condition { 357*16d86563SAlexander Pyhalov inputsize <= 3; 358*16d86563SAlexander Pyhalov @between 0XF0...0XFD; 359*16d86563SAlexander Pyhalov } @operation { 360*16d86563SAlexander Pyhalov error EINVAL; 361*16d86563SAlexander Pyhalov }; 362*16d86563SAlexander Pyhalov @condition { 363*16d86563SAlexander Pyhalov inputsize >= 4; 364*16d86563SAlexander Pyhalov @between 0XF0808080...0XF7BFBFBF; 365*16d86563SAlexander Pyhalov } @operation { 366*16d86563SAlexander Pyhalov output = 0x6f; 367*16d86563SAlexander Pyhalov discard 4; 368*16d86563SAlexander Pyhalov }; 369*16d86563SAlexander Pyhalov @condition { 370*16d86563SAlexander Pyhalov inputsize <= 4; 371*16d86563SAlexander Pyhalov @between 0XF8...0XFD; 372*16d86563SAlexander Pyhalov } @operation { 373*16d86563SAlexander Pyhalov error EINVAL; 374*16d86563SAlexander Pyhalov }; 375*16d86563SAlexander Pyhalov @condition { 376*16d86563SAlexander Pyhalov inputsize >= 5; 377*16d86563SAlexander Pyhalov @between 0XF880808080...0XFBBFBFBFBF; 378*16d86563SAlexander Pyhalov } @operation { 379*16d86563SAlexander Pyhalov output = 0x6f; 380*16d86563SAlexander Pyhalov discard 5; 381*16d86563SAlexander Pyhalov }; 382*16d86563SAlexander Pyhalov @condition { 383*16d86563SAlexander Pyhalov inputsize <= 5; 384*16d86563SAlexander Pyhalov @between 0XFC...0XFD; 385*16d86563SAlexander Pyhalov } @operation { 386*16d86563SAlexander Pyhalov error EINVAL; 387*16d86563SAlexander Pyhalov }; 388*16d86563SAlexander Pyhalov @condition { 389*16d86563SAlexander Pyhalov inputsize >= 6; 390*16d86563SAlexander Pyhalov @between 0XFC8080808080...0XFDBFBFBFBFBF; 391*16d86563SAlexander Pyhalov } @operation { 392*16d86563SAlexander Pyhalov output = 0x6f; 393*16d86563SAlexander Pyhalov discard 6; 394*16d86563SAlexander Pyhalov }; 395*16d86563SAlexander Pyhalov }; // for direction 396*16d86563SAlexander Pyhalov} // for conversion name 397