1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _SYS_KICONV_JA_H 28 #define _SYS_KICONV_JA_H 29 30 #pragma ident "%Z%%M% %I% %E% SMI" 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 #include <sys/kiconv.h> 37 38 /* 39 * kiconv_ja specific definition 40 */ 41 42 #define KICONV_JA_TBLID_EUCJP (0x00) 43 #define KICONV_JA_TBLID_EUCJP_MS (0x01) 44 #define KICONV_JA_TBLID_SJIS (0x02) 45 #define KICONV_JA_TBLID_CP932 (0x03) 46 47 #define KICONV_JA_MAX_MAPPING_TBLID (0x03) 48 49 #define KICONV_JA_DEF_SINGLE KICONV_ASCII_REPLACEMENT_CHAR 50 #define KICONV_JA_REPLACE (0xfffd) 51 #define KICONV_JA_NODEST (0xffff) 52 #define KICONV_JA_IFHISUR(x) ((0xd800 <= (x)) && ((x) <= 0xdbff)) 53 #define KICONV_JA_IFLOSUR(x) ((0xdc00 <= (x)) && ((x) <= 0xdfff)) 54 55 #define KICONV_JA_RETERROR(no) {\ 56 *errno = (no);\ 57 rv = ((size_t)-1);\ 58 goto ret;\ 59 } 60 61 #define KICONV_JA_NGET(c) \ 62 if (ileft == 0) {\ 63 KICONV_JA_RETERROR(EINVAL)\ 64 } else {\ 65 ileft--;\ 66 (c) = *ip++;\ 67 } 68 69 #define KICONV_JA_NGET_REP_FR_MB(c) \ 70 if (ileft == 0) {\ 71 KICONV_JA_PUTU(KICONV_JA_REPLACE)\ 72 rv++;\ 73 goto next;\ 74 } else {\ 75 ileft--;\ 76 (c) = *ip++;\ 77 } 78 79 #define KICONV_JA_NGET_REP_TO_MB(c) \ 80 if (ileft == 0) {\ 81 l = KICONV_JA_DEF_SINGLE;\ 82 *repnum = 1;\ 83 goto ret;\ 84 } else {\ 85 ileft--;\ 86 (c) = *ip++;\ 87 } 88 89 #define KICONV_JA_NPUT(c) \ 90 if (oleft == 0) {\ 91 KICONV_JA_RETERROR(E2BIG)\ 92 } else {\ 93 oleft--;\ 94 *op++ = (uint8_t)(c);\ 95 } 96 97 #define KICONV_JA_GETU(pu32, flag) \ 98 read_len = read_unicode((pu32), &ip, &ileft, errno, (flag), &rv); \ 99 switch (read_len) { \ 100 case (size_t)-1: \ 101 /* errno has been set in read_unicode() */ \ 102 rv = (size_t)-1; \ 103 goto ret; \ 104 case (size_t)0: \ 105 /* character read was handled in the read_unicode() */ \ 106 /* no further evaluation needed in caller side */ \ 107 goto next; \ 108 default: \ 109 break; \ 110 } 111 112 #define KICONV_JA_PUTU(u32) \ 113 if (write_unicode((u32), &op, &oleft, errno) \ 114 == (size_t)-1) { \ 115 rv = ((size_t)-1);\ 116 goto ret; \ 117 } 118 119 #define KICONV_JA_CHECK_UTF8_BOM(inbuf, inleft) \ 120 if (((kiconv_state_t)kcd)->bom_processed == 0 && (inleft) >= 3 && \ 121 *(inbuf) == 0xef && \ 122 *((inbuf) + 1) == 0xbb && \ 123 *((inbuf) + 2) == 0xbf) { \ 124 (inbuf) += 3; \ 125 (inleft) -= 3; \ 126 } \ 127 ((kiconv_state_t)kcd)->bom_processed = 1 128 129 #define KICONV_JA_CHECK_UTF8_BOM_WITHOUT_STATE(inbuf, inleft) \ 130 if ((inleft) >= 3 && *(inbuf) == 0xef && \ 131 *((inbuf) + 1) == 0xbb && \ 132 *((inbuf) + 2) == 0xbf) { \ 133 (inbuf) += 3; \ 134 (inleft) -= 3; \ 135 } 136 137 #define KICONV_JA_ERR_RETURN (-1) /* result code on error */ 138 139 /* 140 * KICONV_JA_ISXXXX(c) macros below assume (c) is of type ushort_t 141 */ 142 /* is a valid code as ascii? */ 143 #define KICONV_JA_ISASC(c) ((c) <= 0x7f) 144 145 /* is a valid code as C1 control? */ 146 #define KICONV_JA_ISC1CTRL(c) (((c) >= 0x80) && ((c) <= 0x9f)) 147 148 /* is a valid code as C1 control allowed in EUC? */ 149 #define KICONV_JA_ISC1CTRLEUC(c) ((((c) >= 0x80) && ((c) <= 0x8d)) ||\ 150 (((c) >= 0x90) && ((c) <= 0x9f))) 151 152 /* is a valid 1st or 2nd byte of EUC codeset 1? */ 153 #define KICONV_JA_ISCS1(c) (((c) >= 0xa1) && ((c) <= 0xfe)) 154 155 /* is a valid 1st byte of EUC codeset 1 and in range row 1 thru 84? */ 156 #define KICONV_JA_ISCS1_0208(c) (((c) >= 0xa1) && ((c) <= 0xf4)) 157 158 /* is a valid 1st byte of UDC area in EUC codeset 1? */ 159 #define KICONV_JA_ISCS1_UDC(c) (((c) >= 0xf5) && ((c) <= 0xfe)) 160 161 /* is a valid 2nd (1st byte is SS2) byte of EUC codeset 2? */ 162 #define KICONV_JA_ISCS2(c) (((c) >= 0xa1) && ((c) <= 0xdf)) 163 164 /* is a valid 2nd or 3rd (1st byte is SS3) byte of EUC codeset 3? */ 165 #define KICONV_JA_ISCS3(c) (((c) >= 0xa1) && ((c) <= 0xfe)) 166 167 /* is a valid 2nd (1st byte is SS3) byte of UDC area in EUC codeset 3? */ 168 #define KICONV_JA_ISCS3_UDC(c) (((c) >= 0xf5) && ((c) <= 0xfe)) 169 170 /* is a valid hankaku_katakana for SJIS? */ 171 #define KICONV_JA_ISSJKANA(c) (((c) >= 0xa1) && ((c) <= 0xdf)) 172 173 /* is a valid character for the first byte of SJIS multibyte? */ 174 #define KICONV_JA_ISSJMB_1(c) \ 175 ((((c) >= 0x81) && ((c) <= 0x9f)) || \ 176 (((c) >= 0xe0) && ((c) <= 0xfc))) 177 178 /* is a valid character for the first byte of SJIS kanji? */ 179 #define KICONV_JA_ISSJKANJI1(c) \ 180 ((((c) >= 0x81) && ((c) <= 0x9f)) || \ 181 (((c) >= 0xe0) && ((c) <= 0xea)) || \ 182 (((c) >= 0xf0) && ((c) <= 0xf4))) 183 184 /* is a valid character for the first byte of a part of Suppl. SJIS? */ 185 #define KICONV_JA_ISSJSUPKANJI1(c) (((c) >= 0xf5) && ((c) <= 0xf9)) 186 187 /* is a valid character for the first byte of SJIS UDC? */ 188 #define KICONV_JA_ISSJUDC_1(c) (((c) >= 0xf0) && ((c) <= 0xf9)) 189 190 /* is a valid character for the first byte of ibm character set */ 191 #define KICONV_JA_ISSJIBM(c) (((c) >= 0xfa) && ((c) <= 0xfc)) 192 193 /* is a valid character for the first byte of ibm character set */ 194 #define KICONV_JA_ISSJNECIBM(c) (((c) >= 0xed) && ((c) <= 0xef)) 195 196 /* is a valid character for the second byte of SJIS kanji? */ 197 #define KICONV_JA_ISSJKANJI2(c) \ 198 ((((c) >= 0x40) && ((c) <= 0x7e)) || \ 199 (((c) >= 0x80) && ((c) <= 0xfc))) 200 201 /* is a valid character for UTF8 UDC ? */ 202 #define KICONV_JA_ISUTF8UDC(c) (((c) >= 0xe000) && ((c) <= 0xf8ff)) 203 204 #define KICONV_JA_CMASK 0x7f 205 #define KICONV_JA_CMSB 0x80 206 207 /* 208 * Remap NEC/IBM codes to IBM codes 209 * if dest == 0xffff, that means the source 210 * code point is illegal in the current spec. 211 */ 212 #define KICONV_JA_REMAP_NEC(dest) \ 213 if ((0xed40 <= (dest)) && \ 214 ((dest) <= 0xed62)) { \ 215 (dest) += 0xd1c; \ 216 } else if ((0xed63 <= (dest)) && \ 217 ((dest) <= 0xed7e)) { \ 218 (dest) += 0xd1d; \ 219 } else if ((0xed80 <= (dest)) && \ 220 ((dest) <= 0xede0)) { \ 221 (dest) += 0xd1c; \ 222 } else if ((0xede1 <= (dest)) && \ 223 ((dest) <= 0xedfc)) { \ 224 (dest) += 0xd5f; \ 225 } else if ((0xee40 <= (dest)) && \ 226 ((dest) <= 0xee62)) { \ 227 (dest) += 0xd1c; \ 228 } else if ((0xee63 <= (dest)) && \ 229 ((dest) <= 0xee7e)) { \ 230 (dest) += 0xd1d; \ 231 } else if ((0xee80 <= (dest)) && \ 232 ((dest) <= 0xeee0)) { \ 233 (dest) += 0xd1c; \ 234 } else if ((0xeee1 <= (dest)) && \ 235 ((dest) <= 0xeeec)) { \ 236 (dest) += 0xd5f; \ 237 } else if ((0xeeef <= (dest)) && \ 238 ((dest) <= 0xeef8)) { \ 239 (dest) += 0xb51; \ 240 } else if ((0xeef9 <= (dest)) && \ 241 ((dest) <= 0xeefc)) { \ 242 (dest) += 0xb5b; \ 243 } else { \ 244 (dest) = 0xffff; \ 245 } 246 247 typedef ushort_t kiconv_ja_euc16_t; 248 typedef ushort_t kiconv_ja_ucs2_t; 249 250 /* 251 * The following 6 vectors show JIS and SJIS mapping table. 252 */ 253 static const uchar_t kiconv_ja_sjtojis1[] = { 254 0xff, 0x21, 0x23, 0x25, 0x27, 0x29, 0x2b, 0x2d, 255 0x2f, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3b, 0x3d, 256 0x3f, 0x41, 0x43, 0x45, 0x47, 0x49, 0x4b, 0x4d, 257 0x4f, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5b, 0x5d, 258 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 259 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 260 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 261 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 262 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 263 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 264 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 265 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 266 0x5f, 0x61, 0x63, 0x65, 0x67, 0x69, 0x6b, 0x6d, 267 0x6f, 0x71, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 268 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x75, 0x77, 0x79, 269 0x7b, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 270 }; 271 static const uchar_t kiconv_ja_sjtojis2[] = { 272 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 273 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 274 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 275 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 276 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 277 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 278 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 279 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 280 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 281 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 282 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 283 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 284 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 285 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 286 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 287 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0xff, 288 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 289 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 290 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 291 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x21, 292 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 293 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 294 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 295 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 296 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 297 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 298 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 299 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 300 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 301 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 302 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 303 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0xff, 0xff, 0xff, 304 }; 305 static const uchar_t kiconv_ja_jis208tosj1[] = { 306 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 307 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 308 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 309 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 310 0xff, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 311 0x84, 0x85, 0x85, 0x86, 0x86, 0x87, 0x87, 0x88, 312 0x88, 0x89, 0x89, 0x8a, 0x8a, 0x8b, 0x8b, 0x8c, 313 0x8c, 0x8d, 0x8d, 0x8e, 0x8e, 0x8f, 0x8f, 0x90, 314 0x90, 0x91, 0x91, 0x92, 0x92, 0x93, 0x93, 0x94, 315 0x94, 0x95, 0x95, 0x96, 0x96, 0x97, 0x97, 0x98, 316 0x98, 0x99, 0x99, 0x9a, 0x9a, 0x9b, 0x9b, 0x9c, 317 0x9c, 0x9d, 0x9d, 0x9e, 0x9e, 0x9f, 0x9f, 0xe0, 318 0xe0, 0xe1, 0xe1, 0xe2, 0xe2, 0xe3, 0xe3, 0xe4, 319 0xe4, 0xe5, 0xe5, 0xe6, 0xe6, 0xe7, 0xe7, 0xe8, 320 0xe8, 0xe9, 0xe9, 0xea, 0xea, 0xf0, 0xf0, 0xf1, 321 0xf1, 0xf2, 0xf2, 0xf3, 0xf3, 0xf4, 0xf4, 0xff, 322 }; 323 static const uchar_t kiconv_ja_jis212tosj1[] = { 324 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 325 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 326 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 327 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 328 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 329 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 330 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 331 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 332 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 333 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 334 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 335 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 336 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 337 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 338 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xf6, 339 0xf6, 0xf7, 0xf7, 0xf8, 0xf8, 0xf9, 0xf9, 0xff, 340 }; 341 static const uchar_t kiconv_ja_jistosj2[] = { 342 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 343 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 344 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 345 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 346 0xff, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 347 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 348 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 349 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 350 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 351 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 352 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 353 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 354 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 355 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 356 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 357 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0xff, 358 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 359 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 360 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 361 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 362 0xff, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 363 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 364 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 365 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 366 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 367 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 368 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 369 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 370 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 371 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 372 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 373 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xff, 374 }; 375 static const ushort_t kiconv_ja_sjtoibmext[] = { 376 0xf3f3, 0xf3f4, 0xf3f5, 0xf3f6, 0xf3f7, 0xf3f8, 0xf3f9, 0xf3fa, 377 0xf3fb, 0xf3fc, 0xf3fd, 0xf3fe, 0xf4a1, 0xf4a2, 0xf4a3, 0xf4a4, 378 0xf4a5, 0xf4a6, 0xf4a7, 0xf4a8, 0xffff, 0xa2c3, 0xf4a9, 0xf4aa, 379 0xf4ab, 0xf4ac, 0xf4ad, 0xffff, 0xd4e3, 0xdcdf, 0xe4e9, 0xe3f8, 380 0xd9a1, 0xb1bb, 0xf4ae, 0xc2ad, 0xc3fc, 0xe4d0, 0xc2bf, 0xbcf4, 381 0xb0a9, 0xb0c8, 0xf4af, 0xb0d2, 0xb0d4, 0xb0e3, 0xb0ee, 0xb1a7, 382 0xb1a3, 0xb1ac, 0xb1a9, 0xb1be, 0xb1df, 0xb1d8, 0xb1c8, 0xb1d7, 383 0xb1e3, 0xb1f4, 0xb1e1, 0xb2a3, 0xf4b0, 0xb2bb, 0xb2e6, 0xffff, 384 0xb2ed, 0xb2f5, 0xb2fc, 0xf4b1, 0xb3b5, 0xb3d8, 0xb3db, 0xb3e5, 385 0xb3ee, 0xb3fb, 0xf4b2, 0xf4b3, 0xb4c0, 0xb4c7, 0xb4d0, 0xb4de, 386 0xf4b4, 0xb5aa, 0xf4b5, 0xb5af, 0xb5c4, 0xb5e8, 0xf4b6, 0xb7c2, 387 0xb7e4, 0xb7e8, 0xb7e7, 0xf4b7, 0xf4b8, 0xf4b9, 0xb8ce, 0xb8e1, 388 0xb8f5, 0xb8f7, 0xb8f8, 0xb8fc, 0xb9af, 0xb9b7, 0xbabe, 0xbadb, 389 0xcdaa, 0xbae1, 0xf4ba, 0xbaeb, 0xbbb3, 0xbbb8, 0xf4bb, 0xbbca, 390 0xf4bc, 0xf4bd, 0xbbd0, 0xbbde, 0xbbf4, 0xbbf5, 0xbbf9, 0xbce4, 391 0xbced, 0xbcfe, 0xf4be, 0xbdc2, 0xbde7, 0xf4bf, 0xbdf0, 0xbeb0, 392 0xbeac, 0xf4c0, 0xbeb3, 0xbebd, 0xbecd, 0xbec9, 0xbee4, 0xbfa8, 393 0xbfc9, 0xc0c4, 0xc0e4, 0xc0f4, 0xc1a6, 0xf4c1, 0xc1f5, 0xc1fc, 394 0xf4c2, 0xc1f8, 0xc2ab, 0xc2a1, 0xc2a5, 0xf4c3, 0xc2b8, 0xc2ba, 395 0xf4c4, 0xc2c4, 0xc2d2, 0xc2d7, 0xc2db, 0xc2de, 0xc2ed, 0xc2f0, 396 0xf4c5, 0xc3a1, 0xc3b5, 0xc3c9, 0xc3b9, 0xf4c6, 0xc3d8, 0xc3fe, 397 0xf4c7, 0xc4cc, 0xf4c8, 0xc4d9, 0xc4ea, 0xc4fd, 0xf4c9, 0xc5a7, 398 0xc5b5, 0xc5b6, 0xf4ca, 0xc5d5, 0xc6b8, 0xc6d7, 0xc6e0, 0xc6ea, 399 0xc6e3, 0xc7a1, 0xc7ab, 0xc7c7, 0xc7c3, 0xffff, 0xffff, 0xffff, 400 0xc7cb, 0xc7cf, 0xc7d9, 0xf4cb, 0xf4cc, 0xc7e6, 0xc7ee, 0xc7fc, 401 0xc7eb, 0xc7f0, 0xc8b1, 0xc8e5, 0xc8f8, 0xc9a6, 0xc9ab, 0xc9ad, 402 0xf4cd, 0xc9ca, 0xc9d3, 0xc9e9, 0xc9e3, 0xc9fc, 0xc9f4, 0xc9f5, 403 0xf4ce, 0xcab3, 0xcabd, 0xcaef, 0xcaf1, 0xcbae, 0xf4cf, 0xcbca, 404 0xcbe6, 0xcbea, 0xcbf0, 0xcbf4, 0xcbee, 0xcca5, 0xcbf9, 0xccab, 405 0xccae, 0xccad, 0xccb2, 0xccc2, 0xccd0, 0xccd9, 0xf4d0, 0xcdbb, 406 0xf4d1, 0xcebb, 0xf4d2, 0xceba, 0xcec3, 0xf4d3, 0xcef2, 0xb3dd, 407 0xcfd5, 0xcfe2, 0xcfe9, 0xcfed, 0xf4d4, 0xf4d5, 0xf4d6, 0xffff, 408 0xf4d7, 0xd0e5, 0xf4d8, 0xd0e9, 0xd1e8, 0xf4d9, 0xf4da, 0xd1ec, 409 0xd2bb, 0xf4db, 0xd3e1, 0xd3e8, 0xd4a7, 0xf4dc, 0xf4dd, 0xd4d4, 410 0xd4f2, 0xd5ae, 0xf4de, 0xd7de, 0xf4df, 0xd8a2, 0xd8b7, 0xd8c1, 411 0xd8d1, 0xd8f4, 0xd9c6, 0xd9c8, 0xd9d1, 0xf4e0, 0xf4e1, 0xf4e2, 412 0xf4e3, 0xf4e4, 0xdcd3, 0xddc8, 0xddd4, 0xddea, 0xddfa, 0xdea4, 413 0xdeb0, 0xf4e5, 0xdeb5, 0xdecb, 0xf4e6, 0xdfb9, 0xf4e7, 0xdfc3, 414 0xf4e8, 0xf4e9, 0xe0d9, 0xf4ea, 0xf4eb, 0xe1e2, 0xf4ec, 0xf4ed, 415 0xf4ee, 0xe2c7, 0xe3a8, 0xe3a6, 0xe3a9, 0xe3af, 0xe3b0, 0xe3aa, 416 0xe3ab, 0xe3bc, 0xe3c1, 0xe3bf, 0xe3d5, 0xe3d8, 0xe3d6, 0xe3df, 417 0xe3e3, 0xe3e1, 0xe3d4, 0xe3e9, 0xe4a6, 0xe3f1, 0xe3f2, 0xe4cb, 418 0xe4c1, 0xe4c3, 0xe4be, 0xf4ef, 0xe4c0, 0xe4c7, 0xe4bf, 0xe4e0, 419 0xe4de, 0xe4d1, 0xf4f0, 0xe4dc, 0xe4d2, 0xe4db, 0xe4d4, 0xe4fa, 420 0xe4ef, 0xe5b3, 0xe5bf, 0xe5c9, 0xe5d0, 0xe5e2, 0xe5ea, 0xe5eb, 421 0xf4f1, 0xf4f2, 0xf4f3, 0xe6e8, 0xe6ef, 0xe7ac, 0xf4f4, 0xe7ae, 422 0xf4f5, 0xe7b1, 0xf4f6, 0xe7b2, 0xe8b1, 0xe8b6, 0xf4f7, 0xf4f8, 423 0xe8dd, 0xf4f9, 0xf4fa, 0xe9d1, 0xf4fb, 0xffff, 0xffff, 0xffff, 424 0xe9ed, 0xeacd, 0xf4fc, 0xeadb, 0xeae6, 0xeaea, 0xeba5, 0xebfb, 425 0xebfa, 0xf4fd, 0xecd6, 0xf4fe, 0xffff, 0xffff, 0xffff, 0xffff, 426 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 427 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 428 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 429 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 430 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 431 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 432 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 433 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 434 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 435 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 436 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 437 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 438 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 439 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 440 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 441 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 442 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 443 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 444 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 445 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 446 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 447 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 448 }; 449 450 #ifdef __cplusplus 451 } 452 #endif 453 454 #endif /* _SYS_KICONV_JA_H */ 455